共用方式為


Refs - Update Refs

建立、更新或刪除 refs (分支) 。

更新 ref 表示讓它指向與用來不同的認可。 您必須同時指定舊認可和新認可,以避免競爭狀況。

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

URI 參數

名稱 位於 必要 類型 Description
organization
path True

string

Azure DevOps 組織的名稱。

repositoryId
path True

string

存放庫的名稱或識別碼。

project
path

string

專案識別碼或專案名稱

api-version
query True

string

要使用的 API 版本。 這應該設定為 '5.0' 以使用此版本的 API。

projectId
query

string

小組專案的識別碼或名稱。 如果指定存放庫的識別碼,則為選擇性。

要求本文

名稱 類型 Description
body

GitRefUpdate[]

嘗試執行的 ref 更新清單

回應

名稱 類型 Description
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

名稱 Description
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=5.0

[
  {
    "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
}

定義

名稱 Description
GitRefUpdate
GitRefUpdateResult
GitRefUpdateStatus

TFS 伺服器的更新狀態。

GitRefUpdate

名稱 類型 Description
isLocked

boolean

name

string

newObjectId

string

oldObjectId

string

repositoryId

string

GitRefUpdateResult

名稱 類型 Description
customMessage

string

結果物件的自訂訊息 For instance, Reason for 失敗。

isLocked

boolean

ref 是否已鎖定

name

string

Ref 名稱

newObjectId

string

新增物件識別碼

oldObjectId

string

舊物件識別碼

rejectedBy

string

拒絕更新之外掛程式的名稱。

repositoryId

string

存放庫識別碼

success

boolean

如果 ref 更新成功,則為 True,否則為 false

updateStatus

GitRefUpdateStatus

TFS 伺服器的更新狀態。

GitRefUpdateStatus

TFS 伺服器的更新狀態。

名稱 類型 Description
createBranchPermissionRequired

string

無法完成 ref 更新要求,因為使用者缺少建立分支的許可權

createTagPermissionRequired

string

無法完成 ref 更新要求,因為使用者缺少建立標記的許可權

forcePushRequired

string

表示無法完成 ref 更新要求,因為此變更會中斷圖形的一部分,而呼叫端沒有存放庫的 ForcePush 許可權。

invalidRefName

string

表示無法完成 ref 更新要求,因為要求中顯示的 ref 名稱無效。

locked

string

無法完成 ref 更新,因為 ref 已由其他使用者鎖定。

manageNotePermissionRequired

string

無法完成 ref 更新要求,因為使用者缺少寫入此附注所需的附注建立許可權

refNameConflict

string

無法完成 ref 更新,因為不區分大小寫的模式,ref 名稱與現有的不同大小寫 ref 名稱衝突。

rejectedByPlugin

string

無法完成 ref 更新,因為外掛程式遭到拒絕。

rejectedByPolicy

string

無法完成 ref 更新,因為它遭到原則拒絕。

staleOldObjectId

string

表示無法完成 ref 更新要求,因為要求中顯示的舊物件識別碼不是資料庫嘗試更新時 ref 的物件識別碼。 最可能的情況是呼叫端失去競爭以更新 ref。

succeeded

string

指出 ref 更新要求已順利完成。

succeededCorruptRef

string

表示 ref 更新要求已順利完成,但傳入的 ref 已損毀,如同在 中,舊的物件識別碼不正確。 這應該只會在刪除期間發生。

succeededNonExistentRef

string

表示 ref 更新要求已順利完成,但 ref 實際上不存在,因此不會進行任何變更。 這應該只會在刪除期間發生。

unprocessed

string

未處理要求

unresolvableToCommit

string

無法完成 ref 更新要求,因為 ref 的新物件識別碼無法解析為認可物件, (可能透過任意數目的標記)

writePermissionRequired

string

無法完成 ref 更新要求,因為使用者缺少寫入此 ref 所需的寫入權限