Refs - Update Refs

Создание, обновление или удаление refs(ветвей).

Обновление ссылки означает, что она указывает на фиксацию, отличную от используемой. Чтобы избежать условий гонки, необходимо указать как старую, так и новую фиксацию.

POST https://dev.azure.com/{organization}/{project}/_apis/git/repositories/{repositoryId}/refs?api-version=7.1-preview.1
POST https://dev.azure.com/{organization}/{project}/_apis/git/repositories/{repositoryId}/refs?projectId={projectId}&api-version=7.1-preview.1

Параметры URI

Имя В Обязательно Тип Описание
organization
path True

string

Название организации Azure DevOps.

repositoryId
path True

string

Имя или идентификатор репозитория.

project
path

string

Идентификатор или имя проекта

api-version
query True

string

Используемая версия API. Для использования этой версии API необходимо задать значение 7.1-preview.1.

projectId
query

string

Идентификатор или имя командного проекта. Необязательно при указании идентификатора для репозитория.

Текст запроса

Имя Тип Описание
body

GitRefUpdate[]

Список ссылочных обновлений для выполнения

Ответы

Имя Тип Описание
200 OK

GitRefUpdateResult[]

успешная операция

Безопасность

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

Имя Описание
vso.code_write Предоставляет возможность чтения, обновления и удаления исходного кода, доступа к метаданным о фиксациях, наборах изменений, ветвях и других артефактах управления версиями. Кроме того, предоставляет возможность создавать запросы на вытягивание и проверки кода и управлять ими, а также получать уведомления о событиях управления версиями с помощью перехватчиков служб.

Примеры

Create/Update/Delete a ref by repositoryId

Sample Request

POST https://dev.azure.com/fabrikam/_apis/git/repositories/{repositoryId}/refs?api-version=7.1-preview.1

[
  {
    "name": "refs/heads/vsts-api-sample/answer-woman-flame",
    "oldObjectId": "0000000000000000000000000000000000000000",
    "newObjectId": "ffe9cba521f00d7f60e322845072238635edb451"
  }
]

Sample Response

transfer-Encoding: chunked
{
  "value": [
    {
      "repositoryId": "d3d1760b-311c-4175-a726-20dfc6a7f885",
      "name": "refs/heads/vsts-api-sample/answer-woman-flame",
      "oldObjectId": "0000000000000000000000000000000000000000",
      "newObjectId": "ffe9cba521f00d7f60e322845072238635edb451",
      "isLocked": false,
      "updateStatus": "succeeded",
      "success": true
    }
  ],
  "count": 1
}

Определения

Имя Описание
GitRefUpdate
GitRefUpdateResult
GitRefUpdateStatus

Состояние обновления с сервера TFS.

GitRefUpdate

Имя Тип Описание
isLocked

boolean

name

string

newObjectId

string

oldObjectId

string

repositoryId

string

GitRefUpdateResult

Имя Тип Описание
customMessage

string

Настраиваемое сообщение для результирующих объектов. Например, причина сбоя.

isLocked

boolean

Указывает, заблокирована ли ссылка

name

string

Имя ссылки

newObjectId

string

Новый идентификатор объекта

oldObjectId

string

Старый идентификатор объекта

rejectedBy

string

Имя подключаемого модуля, который отклонил обновленный.

repositoryId

string

Идентификатор репозитория

success

boolean

Значение true, если обновление ссылки выполнено успешно, в противном случае — false.

updateStatus

GitRefUpdateStatus

Состояние обновления с сервера TFS.

GitRefUpdateStatus

Состояние обновления с сервера TFS.

Имя Тип Описание
createBranchPermissionRequired

string

Не удалось выполнить запрос на обновление ссылки, так как у пользователя нет разрешения на создание ветви.

createTagPermissionRequired

string

Не удалось выполнить запрос на обновление ссылки, так как у пользователя нет разрешения на создание тега

forcePushRequired

string

Указывает, что не удалось выполнить запрос на обновление ссылки, так как часть графа будет отключена этим изменением, а вызывающий объект не имеет разрешения ForcePush на репозиторий.

invalidRefName

string

Указывает, что не удалось выполнить запрос на обновление ссылки, так как имя ссылки, представленное в запросе, было недопустимым.

locked

string

Не удалось завершить обновление ссылки, так как ссылка заблокирована другим пользователем.

manageNotePermissionRequired

string

Не удалось выполнить запрос на обновление ссылки, так как пользователю не хватает разрешений на создание заметки, необходимых для записи этой заметки.

refNameConflict

string

Не удалось завершить обновление ссылки, так как в режиме без учета регистра имя ссылки конфликтует с существующим именем ссылки с другим регистром.

rejectedByPlugin

string

Не удалось завершить обновление ссылки, так как оно было отклонено подключаемым модулем.

rejectedByPolicy

string

Не удалось завершить обновление ссылки, так как оно было отклонено политикой.

staleOldObjectId

string

Указывает, что не удалось выполнить запрос на обновление ссылки, так как старый идентификатор объекта, представленный в запросе, не был идентификатором объекта ссылки при попытке обновления в базе данных. Наиболее вероятным сценарием является то, что вызывающий объект потерял гонку для обновления ссылки.

succeeded

string

Указывает, что запрос на обновление ссылки был успешно выполнен.

succeededCorruptRef

string

Указывает, что запрос на обновление ссылки был успешно выполнен, но переданная ссылка была повреждена . Как и в, старый идентификатор объекта был плохим. Это должно произойти только во время удаления.

succeededNonExistentRef

string

Указывает, что запрос на обновление ссылки был успешно выполнен, но ссылка на самом деле не существует, поэтому изменения не были внесены. Это должно произойти только во время удаления.

unprocessed

string

Запрос не был обработан

unresolvableToCommit

string

Не удалось выполнить запрос на обновление ссылки, так как новый идентификатор объекта для ссылки не может быть разрешен в объект фиксации (возможно, с помощью любого количества тегов).

writePermissionRequired

string

Не удалось выполнить запрос на обновление ссылки, так как у пользователя отсутствуют разрешения на запись, необходимые для записи этой ссылки.