Configurations - Create

Create a policy configuration of a given policy type.

POST https://{instance}/{collection}/{project}/_apis/policy/configurations/{configurationId}?api-version=5.0

URI Parameters

Name In Required Type Description
collection
path True

string

The name of the Azure DevOps collection.

instance
path True

string

Azure DevOps server name ({server:port})

project
path True

string

Project ID or project name

configurationId
path

integer

int32
api-version
query True

string

Version of the API to use. This should be set to '5.0' to use this version of the api.

Request Body

Name Type Description
_links

ReferenceLinks

The links to other objects related to this object.

createdBy

IdentityRef

A reference to the identity that created the policy.

createdDate

string

The date and time when the policy was created.

id

integer

The policy configuration ID.

isBlocking

boolean

Indicates whether the policy is blocking.

isDeleted

boolean

Indicates whether the policy has been (soft) deleted.

isEnabled

boolean

Indicates whether the policy is enabled.

revision

integer

The policy configuration revision ID.

settings

JObject

The policy configuration settings.

type

PolicyTypeRef

The policy configuration type.

url

string

The URL where the policy configuration can be retrieved.

Responses

Name Type Description
200 OK

PolicyConfiguration

successful operation

Security

oauth2

Type: oauth2
Flow: accessCode
Authorization URL: https://app.vssps.visualstudio.com/oauth2/authorize&response_type=Assertion
Token URL: https://app.vssps.visualstudio.com/oauth2/token?client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer&grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer

Scopes

Name Description
vso.code_write Grants the ability to read, update, and delete source code, access metadata about commits, changesets, branches, and other version control artifacts. Also grants the ability to create and manage pull requests and code reviews and to receive notifications about version control events via service hooks.

Examples

Approval count policy
Build policy
Example policy
Git case enforcement policy
Git maximum blob size policy
Merge strategy policy
Work item policy

Approval count policy

Sample Request

POST https://{instance}/fabrikam/fabrikam-fiber-git/_apis/policy/configurations?api-version=5.0

{
  "isEnabled": true,
  "isBlocking": false,
  "type": {
    "id": "fa4e907d-c16b-4a4c-9dfa-4906e5d171dd"
  },
  "settings": {
    "minimumApproverCount": 1,
    "creatorVoteCounts": false,
    "scope": [
      {
        "repositoryId": null,
        "refName": "refs/heads/master",
        "matchKind": "exact"
      }
    ]
  }
}

Sample Response

{
  "createdBy": {
    "id": "d6245f20-2af8-44f4-9451-8107cb2767db",
    "displayName": "Normal Paulk",
    "uniqueName": "fabrikamfiber16@hotmail.com",
    "url": "https://fabrikam:8080/tfs/_apis/Identities/d6245f20-2af8-44f4-9451-8107cb2767db",
    "imageUrl": "https://fabrikam:8080/tfs/_api/_common/identityImage?id=d6245f20-2af8-44f4-9451-8107cb2767db"
  },
  "createdDate": "2015-02-23T12:51:06.8887894",
  "isEnabled": true,
  "isBlocking": false,
  "settings": {
    "minimumApproverCount": 1,
    "creatorVoteCounts": false,
    "scope": [
      {
        "refName": "refs/heads/master",
        "matchKind": "Exact",
        "repositoryId": null
      }
    ]
  },
  "_links": {
    "self": {
      "href": "https://fabrikam:8080/tfs/_apis/policy/configurations/18"
    },
    "type": {
      "href": "https://fabrikam:8080/tfs/1be3fc5b-c58c-4173-8fd7-6647d11eccd1/_apis/policy/types/fa4e907d-c16b-4a4c-9dfa-4906e5d171dd"
    }
  },
  "revision": 1,
  "id": 18,
  "url": "https://fabrikam:8080/tfs/_apis/policy/configurations/18",
  "type": {
    "id": "fa4e907d-c16b-4a4c-9dfa-4906e5d171dd",
    "url": "https://fabrikam:8080/tfs/1be3fc5b-c58c-4173-8fd7-6647d11eccd1/_apis/policy/types/fa4e907d-c16b-4a4c-9dfa-4906e5d171dd",
    "displayName": "Minimum approval count"
  }
}

Build policy

Sample Request

POST https://{instance}/fabrikam/fabrikam-fiber-git/_apis/policy/configurations?api-version=5.0

{
  "isEnabled": true,
  "isBlocking": false,
  "type": {
    "id": "0609b952-1397-4640-95ec-e00a01b2c241"
  },
  "settings": {
    "buildDefinitionId": 5,
    "scope": [
      {
        "repositoryId": null,
        "refName": "refs/heads/features/",
        "matchKind": "prefix"
      }
    ]
  }
}

Sample Response

{
  "createdBy": {
    "id": "d6245f20-2af8-44f4-9451-8107cb2767db",
    "displayName": "Normal Paulk",
    "uniqueName": "fabrikamfiber16@hotmail.com",
    "url": "https://fabrikam:8080/tfs/_apis/Identities/d6245f20-2af8-44f4-9451-8107cb2767db",
    "imageUrl": "https://fabrikam:8080/tfs/_api/_common/identityImage?id=d6245f20-2af8-44f4-9451-8107cb2767db"
  },
  "createdDate": "2015-02-23T12:51:06.935666",
  "isEnabled": true,
  "isBlocking": false,
  "settings": {
    "buildDefinitionId": 5,
    "scope": [
      {
        "refName": "refs/heads/features/",
        "matchKind": "Prefix",
        "repositoryId": null
      }
    ]
  },
  "_links": {
    "self": {
      "href": "https://fabrikam:8080/tfs/_apis/policy/configurations/19"
    },
    "type": {
      "href": "https://fabrikam:8080/tfs/1be3fc5b-c58c-4173-8fd7-6647d11eccd1/_apis/policy/types/0609b952-1397-4640-95ec-e00a01b2c241"
    }
  },
  "revision": 1,
  "id": 19,
  "url": "https://fabrikam:8080/tfs/_apis/policy/configurations/19",
  "type": {
    "id": "0609b952-1397-4640-95ec-e00a01b2c241",
    "url": "https://fabrikam:8080/tfs/1be3fc5b-c58c-4173-8fd7-6647d11eccd1/_apis/policy/types/0609b952-1397-4640-95ec-e00a01b2c241",
    "displayName": "Build"
  }
}

Example policy

Sample Request

POST https://{instance}/fabrikam/fabrikam-fiber-git/_apis/policy/configurations?api-version=5.0

{
  "isEnabled": true,
  "isBlocking": true,
  "type": {
    "id": "fd2167ab-b0be-447a-8ec8-39368250530e"
  },
  "settings": {
    "requiredReviewerIds": [
      "1d1dad71-f27c-4370-810d-838ec41efd41"
    ],
    "filenamePatterns": [
      "*/API*.cs"
    ],
    "addedFilesOnly": false,
    "scope": [
      {
        "repositoryId": null,
        "refName": "refs/heads/master",
        "matchKind": "exact"
      },
      {
        "repositoryId": null,
        "refName": "refs/heads/releases/",
        "matchKind": "prefix"
      }
    ]
  }
}

Sample Response

{
  "createdBy": {
    "id": "d6245f20-2af8-44f4-9451-8107cb2767db",
    "displayName": "Normal Paulk",
    "uniqueName": "fabrikamfiber16@hotmail.com",
    "url": "https://fabrikam:8080/tfs/_apis/Identities/d6245f20-2af8-44f4-9451-8107cb2767db",
    "imageUrl": "https://fabrikam:8080/tfs/_api/_common/identityImage?id=d6245f20-2af8-44f4-9451-8107cb2767db"
  },
  "createdDate": "2015-02-23T12:51:06.8106632",
  "isEnabled": true,
  "isBlocking": true,
  "isDeleted": false,
  "settings": {
    "requiredReviewerIds": [
      "1d1dad71-f27c-4370-810d-838ec41efd41"
    ],
    "filenamePatterns": [
      "*/API*.cs"
    ],
    "addedFilesOnly": false,
    "message": null,
    "scope": [
      {
        "refName": "refs/heads/master",
        "matchKind": "Exact",
        "repositoryId": null
      },
      {
        "refName": "refs/heads/releases/",
        "matchKind": "Prefix",
        "repositoryId": null
      }
    ]
  },
  "_links": {
    "self": {
      "href": "https://fabrikam:8080/tfs/_apis/policy/configurations/17"
    },
    "type": {
      "href": "https://fabrikam:8080/tfs/1be3fc5b-c58c-4173-8fd7-6647d11eccd1/_apis/policy/types/fd2167ab-b0be-447a-8ec8-39368250530e"
    }
  },
  "revision": 1,
  "id": 17,
  "url": "https://fabrikam:8080/tfs/_apis/policy/configurations/17",
  "type": {
    "id": "fd2167ab-b0be-447a-8ec8-39368250530e",
    "url": "https://fabrikam:8080/tfs/1be3fc5b-c58c-4173-8fd7-6647d11eccd1/_apis/policy/types/fd2167ab-b0be-447a-8ec8-39368250530e",
    "displayName": "Required reviewers"
  }
}

Git case enforcement policy

Sample Request

POST https://{instance}/fabrikam/fabrikam-fiber-git/_apis/policy/configurations?api-version=5.0

{
  "isEnabled": true,
  "isBlocking": true,
  "type": {
    "id": "7ed39669-655c-494e-b4a0-a08b4da0fcce"
  },
  "settings": {
    "enforceConsistentCase": true,
    "scope": [
      {
        "repositoryId": null
      }
    ]
  }
}

Sample Response

{
  "createdBy": {
    "id": "d6245f20-2af8-44f4-9451-8107cb2767db",
    "displayName": "Normal Paulk",
    "uniqueName": "fabrikamfiber16@hotmail.com",
    "url": "https://fabrikam:8080/tfs/_apis/Identities/d6245f20-2af8-44f4-9451-8107cb2767db",
    "imageUrl": "https://fabrikam:8080/tfs/_api/_common/identityImage?id=d6245f20-2af8-44f4-9451-8107cb2767db"
  },
  "createdDate": "2015-02-23T12:51:06.8106632",
  "isEnabled": true,
  "isBlocking": true,
  "isDeleted": false,
  "settings": {
    "enforceConsistentCase": true,
    "scope": [
      {
        "repositoryId": null
      }
    ]
  },
  "_links": {
    "self": {
      "href": "https://fabrikam:8080/tfs/_apis/policy/configurations/17"
    },
    "type": {
      "href": "https://fabrikam:8080/tfs/1be3fc5b-c58c-4173-8fd7-6647d11eccd1/_apis/policy/types/7ed39669-655c-494e-b4a0-a08b4da0fcce"
    }
  },
  "revision": 1,
  "id": 17,
  "url": "https://fabrikam:8080/tfs/_apis/policy/configurations/17",
  "type": {
    "id": "7ed39669-655c-494e-b4a0-a08b4da0fcce",
    "url": "https://fabrikam:8080/tfs/1be3fc5b-c58c-4173-8fd7-6647d11eccd1/_apis/policy/types/7ed39669-655c-494e-b4a0-a08b4da0fcce",
    "displayName": "Required reviewers"
  }
}

Git maximum blob size policy

Sample Request

POST https://{instance}/fabrikam/fabrikam-fiber-git/_apis/policy/configurations?api-version=5.0

{
  "isEnabled": true,
  "isBlocking": true,
  "type": {
    "id": "2e26e725-8201-4edd-8bf5-978563c34a80"
  },
  "settings": {
    "MaximumGitBlobSizeInBytes": 5242880,
    "useUncompressedSize": false,
    "scope": [
      {
        "repositoryId": null
      }
    ]
  }
}

Sample Response

{
  "createdBy": {
    "id": "d6245f20-2af8-44f4-9451-8107cb2767db",
    "displayName": "Normal Paulk",
    "uniqueName": "fabrikamfiber16@hotmail.com",
    "url": "https://fabrikam:8080/tfs/_apis/Identities/d6245f20-2af8-44f4-9451-8107cb2767db",
    "imageUrl": "https://fabrikam:8080/tfs/_api/_common/identityImage?id=d6245f20-2af8-44f4-9451-8107cb2767db"
  },
  "createdDate": "2015-02-23T12:51:06.8106632",
  "isEnabled": true,
  "isBlocking": true,
  "isDeleted": false,
  "settings": {
    "MaximumGitBlobSizeInBytes": 5242880,
    "useUncompressedSize": false,
    "scope": [
      {
        "repositoryId": null
      }
    ]
  },
  "_links": {
    "self": {
      "href": "https://fabrikam:8080/tfs/_apis/policy/configurations/17"
    },
    "type": {
      "href": "https://fabrikam:8080/tfs/1be3fc5b-c58c-4173-8fd7-6647d11eccd1/_apis/policy/types/2e26e725-8201-4edd-8bf5-978563c34a80"
    }
  },
  "revision": 1,
  "id": 17,
  "url": "https://fabrikam:8080/tfs/_apis/policy/configurations/17",
  "type": {
    "id": "2e26e725-8201-4edd-8bf5-978563c34a80",
    "url": "https://fabrikam:8080/tfs/1be3fc5b-c58c-4173-8fd7-6647d11eccd1/_apis/policy/types/2e26e725-8201-4edd-8bf5-978563c34a80",
    "displayName": "Required reviewers"
  }
}

Merge strategy policy

Sample Request

POST https://{instance}/fabrikam/fabrikam-fiber-git/_apis/policy/configurations?api-version=5.0

{
  "isEnabled": true,
  "isBlocking": true,
  "type": {
    "id": "fa4e907d-c16b-4a4c-9dfa-4916e5d171ab"
  },
  "settings": {
    "useSquashMerge": true,
    "scope": [
      {
        "repositoryId": "1d1dad71-f27c-4370-810d-838ec41efd41",
        "refName": "refs/heads/master",
        "matchKind": "exact"
      }
    ]
  }
}

Sample Response

{
  "createdBy": {
    "id": "d6245f20-2af8-44f4-9451-8107cb2767db",
    "displayName": "Normal Paulk",
    "uniqueName": "fabrikamfiber16@hotmail.com",
    "url": "https://fabrikam:8080/tfs/_apis/Identities/d6245f20-2af8-44f4-9451-8107cb2767db",
    "imageUrl": "https://fabrikam:8080/tfs/_api/_common/identityImage?id=d6245f20-2af8-44f4-9451-8107cb2767db"
  },
  "createdDate": "2015-02-23T12:51:06.935666",
  "isEnabled": true,
  "isBlocking": true,
  "settings": {
    "useSquashMerge": true,
    "scope": [
      {
        "refName": "refs/heads/master",
        "matchKind": "Exact",
        "repositoryId": "1d1dad71-f27c-4370-810d-838ec41efd41"
      }
    ]
  },
  "_links": {
    "self": {
      "href": "https://fabrikam:8080/tfs/_apis/policy/configurations/19"
    },
    "type": {
      "href": "https://fabrikam:8080/tfs/1be3fc5b-c58c-4173-8fd7-6647d11eccd1/_apis/policy/types/fa4e907d-c16b-4a4c-9dfa-4916e5d171ab"
    }
  },
  "revision": 1,
  "id": 19,
  "url": "https://fabrikam:8080/tfs/_apis/policy/configurations/19",
  "type": {
    "id": "fa4e907d-c16b-4a4c-9dfa-4916e5d171ab",
    "url": "https://fabrikam:8080/tfs/1be3fc5b-c58c-4173-8fd7-6647d11eccd1/_apis/policy/types/fa4e907d-c16b-4a4c-9dfa-4916e5d171ab",
    "displayName": "Require a merge strategy"
  }
}

Work item policy

Sample Request

POST https://{instance}/fabrikam/fabrikam-fiber-git/_apis/policy/configurations?api-version=5.0

{
  "isEnabled": true,
  "isBlocking": false,
  "type": {
    "id": "40e92b44-2fe1-4dd6-b3d8-74a9c21d0c6e"
  },
  "settings": {
    "scope": [
      {
        "repositoryId": null,
        "refName": "refs/heads/master",
        "matchKind": "exact"
      }
    ]
  }
}

Sample Response

{
  "createdBy": {
    "id": "d6245f20-2af8-44f4-9451-8107cb2767db",
    "displayName": "Normal Paulk",
    "uniqueName": "fabrikamfiber16@hotmail.com",
    "url": "https://fabrikam:8080/tfs/_apis/Identities/d6245f20-2af8-44f4-9451-8107cb2767db",
    "imageUrl": "https://fabrikam:8080/tfs/_api/_common/identityImage?id=d6245f20-2af8-44f4-9451-8107cb2767db"
  },
  "createdDate": "2015-02-23T12:51:06.935666",
  "isEnabled": true,
  "isBlocking": false,
  "settings": {
    "scope": [
      {
        "refName": "refs/heads/master",
        "matchKind": "Exact",
        "repositoryId": null
      }
    ]
  },
  "_links": {
    "self": {
      "href": "https://fabrikam:8080/tfs/_apis/policy/configurations/19"
    },
    "type": {
      "href": "https://fabrikam:8080/tfs/1be3fc5b-c58c-4173-8fd7-6647d11eccd1/_apis/policy/types/40e92b44-2fe1-4dd6-b3d8-74a9c21d0c6e"
    }
  },
  "revision": 1,
  "id": 19,
  "url": "https://fabrikam:8080/tfs/_apis/policy/configurations/19",
  "type": {
    "id": "40e92b44-2fe1-4dd6-b3d8-74a9c21d0c6e",
    "url": "https://fabrikam:8080/tfs/1be3fc5b-c58c-4173-8fd7-6647d11eccd1/_apis/policy/types/40e92b44-2fe1-4dd6-b3d8-74a9c21d0c6e",
    "displayName": "Work item linking"
  }
}

Definitions

Name Description
IdentityRef
JObject
PolicyConfiguration

The full policy configuration with settings.

PolicyTypeRef

Policy type reference.

ReferenceLinks

The class to represent a collection of REST reference links.

IdentityRef

Name Type Description
_links

ReferenceLinks

This field contains zero or more interesting links about the graph subject. These links may be invoked to obtain additional relationships or more detailed information about this graph subject.

descriptor

string

The descriptor is the primary way to reference the graph subject while the system is running. This field will uniquely identify the same graph subject across both Accounts and collections.

directoryAlias

string

displayName

string

This is the non-unique display name of the graph subject. To change this field, you must alter its value in the source provider.

id

string

imageUrl

string

inactive

boolean

isAadIdentity

boolean

isContainer

boolean

isDeletedInOrigin

boolean

profileUrl

string

uniqueName

string

url

string

This url is the full route to the source resource of this graph subject.

JObject

Name Type Description
item

string

type

string

PolicyConfiguration

The full policy configuration with settings.

Name Type Description
_links

ReferenceLinks

The links to other objects related to this object.

createdBy

IdentityRef

A reference to the identity that created the policy.

createdDate

string

The date and time when the policy was created.

id

integer

The policy configuration ID.

isBlocking

boolean

Indicates whether the policy is blocking.

isDeleted

boolean

Indicates whether the policy has been (soft) deleted.

isEnabled

boolean

Indicates whether the policy is enabled.

revision

integer

The policy configuration revision ID.

settings

JObject

The policy configuration settings.

type

PolicyTypeRef

The policy configuration type.

url

string

The URL where the policy configuration can be retrieved.

PolicyTypeRef

Policy type reference.

Name Type Description
displayName

string

Display name of the policy type.

id

string

The policy type ID.

url

string

The URL where the policy type can be retrieved.

The class to represent a collection of REST reference links.

Name Type Description
links

object

The readonly view of the links. Because Reference links are readonly, we only want to expose them as read only.