Freigeben über


Refs - Update Refs

Erstellen, Aktualisieren oder Löschen von Refs(Branches).

Das Aktualisieren eines Bezugs bedeutet, dass er auf einen anderen Commit verweist als bei dem verwendeten Commit. Sie müssen sowohl den alten als auch den neuen Commit angeben, um Rennbedingungen zu vermeiden.

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

URI-Parameter

Name In Erforderlich Typ Beschreibung
organization
path True

string

Der Name der Azure DevOps-Organisation.

repositoryId
path True

string

Der Name oder die ID des Repositorys.

project
path

string

Projekt-ID oder Projektname

api-version
query True

string

Version der zu verwendenden API. Dies sollte auf "7.1" festgelegt werden, um diese Version der API zu verwenden.

projectId
query

string

ID oder Name des Teamprojekts. Optional, wenn Sie eine ID für das Repository angeben.

Anforderungstext

Name Typ Beschreibung
body

GitRefUpdate[]

Liste der Referenzaktualisierungen, die versucht werden sollen, auszuführen

Antworten

Name Typ Beschreibung
200 OK

GitRefUpdateResult[]

Erfolgreicher Vorgang

Sicherheit

oauth2

Typ: oauth2
Ablauf: accessCode
Autorisierungs-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

Bereiche

Name Beschreibung
vso.code_write Gewährt die Möglichkeit, Quellcode zu lesen, zu aktualisieren und zu löschen, auf Metadaten zu Commits, Änderungenets, Verzweigungen und anderen Versionssteuerungsartefakten zuzugreifen. Gewährt außerdem die Möglichkeit, Pullanforderungen und Codeüberprüfungen zu erstellen und zu verwalten und Benachrichtigungen über Versionssteuerungsereignisse über Dienst-Hooks zu erhalten.

Beispiele

Create/Update/Delete a ref by repositoryId

Beispielanforderung

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"
  }
]

Beispiel für eine Antwort

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
}

Definitionen

Name Beschreibung
GitRefUpdate
GitRefUpdateResult
GitRefUpdateStatus

Status des Updates vom TFS-Server.

GitRefUpdate

Name Typ Beschreibung
isLocked

boolean

name

string

newObjectId

string

oldObjectId

string

repositoryId

string (uuid)

GitRefUpdateResult

Name Typ Beschreibung
customMessage

string

Benutzerdefinierte Meldung für das Ergebnisobjekt, z. B. Grund für fehler.

isLocked

boolean

Gibt an, ob der Bezug gesperrt ist oder nicht.

name

string

Verweisname

newObjectId

string

Neue Objekt-ID

oldObjectId

string

Alte Objekt-ID

rejectedBy

string

Name des Plug-Ins, das die Aktualisierung abgelehnt hat.

repositoryId

string (uuid)

Repository-ID

success

boolean

True, wenn die Verweisaktualisierung erfolgreich war, andernfalls "false"

updateStatus

GitRefUpdateStatus

Status des Updates vom TFS-Server.

GitRefUpdateStatus

Status des Updates vom TFS-Server.

Wert Beschreibung
createBranchPermissionRequired

Die Anforderung für die Referenzaktualisierung konnte nicht abgeschlossen werden, da der Benutzer nicht über die Berechtigung zum Erstellen einer Verzweigung verfügt.

createTagPermissionRequired

Die Anforderung für die Referenzaktualisierung konnte nicht abgeschlossen werden, da der Benutzer nicht über die Berechtigung zum Erstellen eines Tags verfügt.

forcePushRequired

Gibt an, dass die Anforderung für die Referenzaktualisierung nicht abgeschlossen werden konnte, da ein Teil des Diagramms durch diese Änderung getrennt wurde und der Aufrufer keine ForcePush-Berechtigung für das Repository besitzt.

invalidRefName

Gibt an, dass die Verweisaktualisierungsanforderung nicht abgeschlossen werden konnte, da der in der Anforderung dargestellte Verweisname ungültig war.

locked

Die Verweisaktualisierung konnte nicht abgeschlossen werden, da der Verweis von einem anderen Benutzer gesperrt ist.

manageNotePermissionRequired

Die Anforderung zur Referenzaktualisierung konnte nicht abgeschlossen werden, da dem Benutzer keine Notizerstellungsberechtigungen zum Schreiben dieser Notiz fehlen.

refNameConflict

Die Referenzaktualisierung konnte nicht abgeschlossen werden, da der Verweisname im Modus ohne Groß-/Kleinschreibung mit einem vorhandenen, anders groß-groß-stehenden Verweisnamen in Konflikt stand.

rejectedByPlugin

Die Referenzaktualisierung konnte nicht abgeschlossen werden, da sie vom Plug-In abgelehnt wurde.

rejectedByPolicy

Die Verweisaktualisierung konnte nicht abgeschlossen werden, weil sie von der Richtlinie abgelehnt wurde.

staleOldObjectId

Gibt an, dass die Verweisaktualisierungsanforderung nicht abgeschlossen werden konnte, da die in der Anforderung dargestellte alte Objekt-ID nicht die Objekt-ID des Bezugs war, als die Datenbank versucht hat, die Aktualisierung auszuführen. Das wahrscheinlichste Szenario ist, dass der Anrufer ein Rennen verloren hat, um den Verweis zu aktualisieren.

succeeded

Gibt an, dass die Anforderung für die Referenzaktualisierung erfolgreich abgeschlossen wurde.

succeededCorruptRef

Gibt an, dass die Anforderung für die Verweisaktualisierung erfolgreich abgeschlossen wurde, aber die übergebene Referenz beschädigt war – wie in, die alte Objekt-ID war ungültig. Dies sollte nur bei Löschvorgangen geschehen.

succeededNonExistentRef

Gibt an, dass die Anforderung für die Verweisaktualisierung erfolgreich abgeschlossen wurde, aber der Verweis ist nicht tatsächlich vorhanden, sodass keine Änderungen vorgenommen wurden. Dies sollte nur bei Löschvorgangen geschehen.

unprocessed

Die Anforderung wurde nicht verarbeitet.

unresolvableToCommit

Die Anforderung für die Verweisaktualisierung konnte nicht abgeschlossen werden, da die neue Objekt-ID für den Verweis nicht in ein Commit-Objekt aufgelöst werden konnte (möglicherweise über eine beliebige Anzahl von Tags)

writePermissionRequired

Die Anforderung für die Referenzaktualisierung konnte nicht abgeschlossen werden, da dem Benutzer keine Schreibberechtigungen zum Schreiben dieser Referenz fehlen.