Ich folgte dieser Dokumentation, um einen Token-Wert und ein Token-Geheimnis von bitbucket zu erhalten:
Ссылка
Danach möchte ich mit diesem Token zu einem bestimmten Repo ziehen / ziehen.
Bei Github kann ich den Token wie folgt verwenden: Ссылка
Meine Frage ist, wie kann ich diese Art von HTTP-Autorisierung bei bitbucket (mercurial / git) verwenden?
Diese BitBucket-Seite erwähnt :
Wir haben vor kurzem OAuth 2 eingeführt und auch die Möglichkeit hinzugefügt, sie als HTTP-Basisauthentifizierungsdaten .
Klonen eines Repositorys mit einem Zugriffstoken
Da Add-Ons nicht in der Lage sind, ihre eigenen SSH-Schlüssel zum Klonen hochzuladen, können Zugriffstoken als einfache HTTP-Authentifizierungsinformationen verwendet werden, um sicher über HTTPS zu klonen.
%Vor%Die Literal-Zeichenfolge
x-token-auth
als Ersatz für den Benutzernamen ist erforderlich.Unser Prozess ist ähnlich wie GitHub, aber ein wenig anders: Der Unterschied ist, dass GitHub das tatsächliche Token in das Feld username legt.
Weitere Informationen finden Sie unter " OAuth in Bitbucket Cloud ", wie vorgeschlagen < a href="https://stackoverflow.com/questions/24965307/how-to-manipulate-bitbucket-repository-with-token#comment84443796_24967371"> in den Kommentaren von nick graziano .
Ich habe ein App-Passwort verwendet, das ich aus dem Bitbucket Cpanel unter Einstellungen - & gt; Zugriffsverwaltung (Seitenleiste) - & gt; App-Passwörter Nachdem ich das getan habe, habe ich das Repo geklont, indem ich meinen Benutzernamen und das neue App-Passwort wie folgt verwendet habe:
Zunächst einmal: Nur OAuth 2-Token können zum Reponieren von Repos verwendet werden
Während auf dieser Seite unklar ist, habe ich gesehen, dass Leute versuchen, OAuth 1-Zugriffstoken zu verwenden. Leider unterstützen Git und Mercurial OAuth 1 nicht und es ist daher nicht möglich, Repos so zu klonen.
Dies liegt daran, dass OAuth 1 erfordert, dass Anforderungen eindeutig signiert werden. Das Token selbst ist nur eine der Eingangsvariablen für den kryptografischen Signaturprozess, die git und hg nicht unterstützen.
Nun haben wir in der Tat kürzlich Unterstützung für OAuth 2 hinzugefügt, die trotz ihres Namens ein sehr unterschiedliches Protokoll ist und keine kryptographische Signatur enthält. Als Ergebnis können OAuth 2-Token zum Klonen über https verwendet werden.
Hier ist ein Dump von mir, der ein neues OAuth 2 Access / Bearer Token erstellt und damit eines meiner privaten Repos klont:
%Vor%Beachten Sie, dass OAuth 2-Tokens in einer Stunde ablaufen. Danach werden sie aufhören zu arbeiten. Je nachdem, wie Sie das Zugriffstoken erhalten haben, verfügen Sie möglicherweise über ein Aktualisierungstoken. Sie können dieses Aktualisierungs-Token verwenden, um unmittelbar vor dem Klonversuch ein neues Zugriffstoken auszugeben, um den Ablauf zu vermeiden.
So manipulieren Sie das Bitbucket-Repository mit token :
Zuerst erstellen Sie einen "Oauth" in der Zugriffsverwaltung Ihrer bitbucket-Kontoeinstellung. Dies gibt Ihnen einen "Schlüssel" und ein "Geheimnis". Sie haben dieses Bit getan.
Wenn Sie nun diese Schlüssel und Secret verwenden, fragen Sie Bitbucket nach einem Token. In meinem Fall habe ich eine HTTP-Anfrage an https://bitbucket.org/site/oauth2/access_token
gemacht. Ich könnte es mit Curl oder einer Ajax-Bibliothek wie folgt machen:
Alternativ dazu war meine HTTP-Anfrage wie folgt (mit superagent im Knoten) mit meinem Content-Type
auf application/x-www-form-urlencoded
gesetzt, den Sie postman verwenden können:
Das Ergebnis ist wie folgt:
%Vor%Jetzt, da Sie den "access_token" haben, klonen Sie einen privaten Repo damit. Aber die URL zu Ihrem Repo sollte so sein (halten Sie die Klammer um Token):
%Vor%