Condividi tramite


Refs - Update Refs

Creazione, aggiornamento o eliminazione di refs(rami).

L'aggiornamento di un riferimento indica che punta a un commit diverso rispetto a quello usato. È necessario specificare sia il commit precedente che quello nuovo per evitare le race condition.

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

Parametri dell'URI

Nome In Necessario Tipo Descrizione
organization
path True

string

Nome dell'organizzazione di Azure DevOps.

repositoryId
path True

string

Nome o ID del repository.

project
path

string

ID progetto o nome progetto

api-version
query True

string

Versione dell'API da usare. Deve essere impostato su '7.1' per usare questa versione dell'API.

projectId
query

string

ID o nome del progetto team. Facoltativo se si specifica un ID per il repository.

Corpo della richiesta

Nome Tipo Descrizione
body

GitRefUpdate[]

Elenco di aggiornamenti di riferimento per tentare di eseguire

Risposte

Nome Tipo Descrizione
200 OK

GitRefUpdateResult[]

operazione riuscita

Sicurezza

oauth2

Tipo: oauth2
Flow: accessCode
URL di autorizzazione: https://app.vssps.visualstudio.com/oauth2/authorize&response_type=Assertion
URL token: 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

Ambiti

Nome Descrizione
vso.code_write Concede la possibilità di leggere, aggiornare ed eliminare il codice sorgente, accedere ai metadati relativi a commit, insiemi di modifiche, rami e altri artefatti del controllo della versione. Concede inoltre la possibilità di creare e gestire richieste pull e revisioni del codice e di ricevere notifiche sugli eventi di controllo della versione tramite hook del servizio.

Esempio

Create/Update/Delete a ref by repositoryId

Esempio di richiesta

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

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

Risposta di esempio

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
}

Definizioni

Nome Descrizione
GitRefUpdate
GitRefUpdateResult
GitRefUpdateStatus

Stato dell'aggiornamento dal server TFS.

GitRefUpdate

Nome Tipo Descrizione
isLocked

boolean

name

string

newObjectId

string

oldObjectId

string

repositoryId

string (uuid)

GitRefUpdateResult

Nome Tipo Descrizione
customMessage

string

Messaggio personalizzato per l'oggetto risultato, ad esempio Motivo dell'errore.

isLocked

boolean

Indica se il riferimento è bloccato o meno

name

string

Nome riferimento

newObjectId

string

Nuovo ID oggetto

oldObjectId

string

ID oggetto precedente

rejectedBy

string

Nome del plug-in che ha rifiutato l'aggiornamento.

repositoryId

string (uuid)

Repository ID

success

boolean

True se l'aggiornamento di riferimento è riuscito; in caso contrario, false

updateStatus

GitRefUpdateStatus

Stato dell'aggiornamento dal server TFS.

GitRefUpdateStatus

Stato dell'aggiornamento dal server TFS.

Valore Descrizione
createBranchPermissionRequired

Impossibile completare la richiesta di aggiornamento ref perché l'utente non dispone dell'autorizzazione per creare un ramo

createTagPermissionRequired

Impossibile completare la richiesta di aggiornamento ref perché l'utente non dispone dell'autorizzazione per creare un tag

forcePushRequired

Indica che non è stato possibile completare la richiesta di aggiornamento ref perché parte del grafico verrebbe disconnessa da questa modifica e il chiamante non dispone dell'autorizzazione ForcePush per il repository.

invalidRefName

Indica che non è stato possibile completare la richiesta di aggiornamento ref perché il nome di riferimento presentato nella richiesta non è valido.

locked

Impossibile completare l'aggiornamento di riferimento perché il riferimento è bloccato da un altro utente.

manageNotePermissionRequired

Impossibile completare la richiesta di aggiornamento ref perché l'utente non dispone delle autorizzazioni di creazione note necessarie per scrivere questa nota

refNameConflict

Impossibile completare l'aggiornamento dei riferimenti perché, in modalità senza distinzione tra maiuscole e minuscole, il nome di riferimento è in conflitto con un nome di riferimento con maiuscole e minuscole esistente.

rejectedByPlugin

Impossibile completare l'aggiornamento di riferimento perché è stato rifiutato dal plug-in.

rejectedByPolicy

Impossibile completare l'aggiornamento di riferimento perché è stato rifiutato dai criteri.

staleOldObjectId

Indica che non è stato possibile completare la richiesta di aggiornamento ref perché l'ID oggetto precedente presentato nella richiesta non è l'ID oggetto del ref quando il database ha tentato l'aggiornamento. Lo scenario più probabile è che il chiamante ha perso una gara per aggiornare il riferimento.

succeeded

Indica che la richiesta di aggiornamento di riferimento è stata completata correttamente.

succeededCorruptRef

Indica che la richiesta di aggiornamento ref è stata completata correttamente, ma il riferimento passato è danneggiato, come in , l'ID oggetto precedente non è valido. Questa operazione dovrebbe verificarsi solo durante le eliminazioni.

succeededNonExistentRef

Indica che la richiesta di aggiornamento di riferimento è stata completata correttamente, ma il riferimento non esiste, quindi non sono state apportate modifiche. Questa operazione dovrebbe verificarsi solo durante le eliminazioni.

unprocessed

La richiesta non è stata elaborata

unresolvableToCommit

Impossibile completare la richiesta di aggiornamento ref perché non è stato possibile risolvere il nuovo ID oggetto per il riferimento in un oggetto commit (potenzialmente tramite un numero qualsiasi di tag)

writePermissionRequired

Impossibile completare la richiesta di aggiornamento ref perché l'utente non dispone delle autorizzazioni di scrittura necessarie per scrivere questo riferimento