Pull Request Properties - Update

Create or update pull request external properties. The patch operation can be add, replace or remove. For add operation, the path can be empty. If the path is empty, the value must be a list of key value pairs. For replace operation, the path cannot be empty. If the path does not exist, the property will be added to the collection. For remove operation, the path cannot be empty. If the path does not exist, no action will be performed.

PATCH https://dev.azure.com/{organization}/{project}/_apis/git/repositories/{repositoryId}/pullRequests/{pullRequestId}/properties?api-version=4.1-preview.1

URI Parameters

Name In Required Type Description
organization
path True

string

The name of the Azure DevOps organization.

pullRequestId
path True

integer

int32

ID of the pull request.

repositoryId
path True

string

The repository ID of the pull request’s target branch.

project
path

string

Project ID or project name

api-version
query True

string

Version of the API to use. This should be set to '4.1-preview.1' to use this version of the api.

Request Body

Media Types: "application/json-patch+json"

Name Type Description
from

string

The path to copy from for the Move/Copy operation.

op

Operation

The patch operation

path

string

The path for the operation

value

object

The value for the operation. This is either a primitive or a JToken.

Responses

Name Type Description
200 OK

PropertiesCollection

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

Add properties
Remove and replace properties

Add properties

Sample Request

PATCH https://dev.azure.com/fabrikam/_apis/git/repositories/{repositoryId}/pullRequests/{pullRequestId}/properties?api-version=4.1-preview.1

[
  {
    "op": "add",
    "path": "/sampleId",
    "from": null,
    "value": 8
  },
  {
    "op": "add",
    "path": "/startedDateTime",
    "from": null,
    "value": "2017-09-25T15:26:49.4760511Z"
  },
  {
    "op": "add",
    "path": "",
    "from": null,
    "value": {
      "bytes": "dGhpcyBpcyBzYW1wbGUgYmFzZTY0IGVuY29kZWQgc3RyaW5n",
      "globalId": "2c2ca1ab-a062-4329-83bd-33b2843c7d6d"
    }
  }
]

Sample Response

{
  "count": 6,
  "value": {
    "Microsoft.Git.PullRequest.SourceRefName": {
      "$type": "System.String",
      "$value": "refs/heads/vsts-api-sample/stage-range-cook"
    },
    "Microsoft.Git.PullRequest.TargetRefName": {
      "$type": "System.String",
      "$value": "refs/heads/master"
    },
    "sampleId": {
      "$type": "System.String",
      "$value": "8"
    },
    "startedDateTime": {
      "$type": "System.DateTime",
      "$value": "2017-09-25T15:26:49.477Z"
    },
    "bytes": {
      "$type": "System.String",
      "$value": "dGhpcyBpcyBzYW1wbGUgYmFzZTY0IGVuY29kZWQgc3RyaW5n"
    },
    "globalId": {
      "$type": "System.String",
      "$value": "2c2ca1ab-a062-4329-83bd-33b2843c7d6d"
    }
  }
}

Remove and replace properties

Sample Request

PATCH https://dev.azure.com/fabrikam/_apis/git/repositories/{repositoryId}/pullRequests/{pullRequestId}/properties?api-version=4.1-preview.1

[
  {
    "op": "replace",
    "path": "/sampleId",
    "from": null,
    "value": 12
  },
  {
    "op": "remove",
    "path": "/startedDateTime",
    "from": null,
    "value": null
  }
]

Sample Response

{
  "count": 3,
  "value": {
    "Microsoft.Git.PullRequest.SourceRefName": {
      "$type": "System.String",
      "$value": "refs/heads/vsts-api-sample/letter-field-verse"
    },
    "Microsoft.Git.PullRequest.TargetRefName": {
      "$type": "System.String",
      "$value": "refs/heads/master"
    },
    "sampleId": {
      "$type": "System.String",
      "$value": "12"
    }
  }
}

Definitions

Name Description
JsonPatchDocument

The JSON model for JSON Patch Operations

Operation

The patch operation

PropertiesCollection

The class represents a property bag as a collection of key-value pairs. Values of all primitive types (any type with a TypeCode != TypeCode.Object) except for DBNull are accepted. Values of type Byte[], Int32, Double, DateType and String preserve their type, other primitives are retuned as a String. Byte[] expected as base64 encoded string.

JsonPatchDocument

The JSON model for JSON Patch Operations

Name Type Description
from

string

The path to copy from for the Move/Copy operation.

op

Operation

The patch operation

path

string

The path for the operation

value

object

The value for the operation. This is either a primitive or a JToken.

Operation

The patch operation

Name Type Description
add

string

copy

string

move

string

remove

string

replace

string

test

string

PropertiesCollection

The class represents a property bag as a collection of key-value pairs. Values of all primitive types (any type with a TypeCode != TypeCode.Object) except for DBNull are accepted. Values of type Byte[], Int32, Double, DateType and String preserve their type, other primitives are retuned as a String. Byte[] expected as base64 encoded string.

Name Type Description
count

integer

The count of properties in the collection.

item

object

keys

string[]

The set of keys in the collection.

values

string[]

The set of values in the collection.