it-swarm.com.de

Bitbucket: Senden Sie eine Pull-Anfrage über die Befehlszeile?

Ich muss viele Pull-Anfragen senden, daher würde ich lieber die Bash-Befehlszeile als die Webschnittstelle von Bitbucket verwenden.

Anwendungsbeispiel: $ git-req username

Hier ist ein solches Skript für Github: http://Pastebin.com/F9n3nPuu

Gibt es einen für Bitbucket?

40
Nicolas Raoul

Bitbucket mit RESTful API 2.0 unterstützt das Verwalten von Pull-Anfragen ohne Schnittstelle. In CLI können Sie es mit CURL anfordern. Diese ältere Version der Dokumentation hat bessere Schnittstellendetails.

Holen Sie sich Pull-Anforderungsdaten mit CURL

Um vollständige Daten zu einer bestimmten Pull-Anfrage zu erhalten:

$ curl --user s3m3n:bbpassword https://bitbucket.org/api/2.0/repositories/s3m3n/reponame/pullrequests/4

Im Gegenzug bekomme ich JSON mit vollständigen Informationen zu meiner Pull-Anfrage # 4 (geben Sie Ihren Benutzernamen zweimal ein, geben Sie das Kennwort ein und geben Sie den Befehl erneut ein).

Erstellen Sie eine neue Pull-Anforderung mit RESTClient

Um einen neuen Pull-Auftrag erstellen zu können, müssen wir mit dem Befehl POST eine Menge Daten angeben, die unten in meinem RESTClient aussehen:

RESTClient Firefox

Nach dem Abfeuern zeigt Bitbucket sofort eine Pull-Anfrage:

Bitbucket screenshot

Neue Pull-Anfrage mit CURL erstellen

Sie können immer noch dieselbe Pull-Anfrage mit einem Liner erstellen:

$ curl -X POST -H "Content-Type: application/json" -u s3m3n:bbpassword https://bitbucket.org/api/2.0/repositories/s3m3n/reponame/pullrequests -d '{ "title": "Merge some branches", "description": "stackoverflow example", "source": { "branch": { "name": "choose branch to merge with" }, "repository": { "full_name": "s3m3n/reponame" } }, "destination": { "branch": { "name": "choose branch that is getting changes" } }, "reviewers": [ { "username": "some other user needed to review changes" } ], "close_source_branch": false }'

REST-Browser-Tool (abgesetzt)

Wenn Sie alle möglichen Methoden des API-Hops mit REST Browser-Tool von Bitbucket testen möchten. Es zeigt Ihnen alle möglichen Anforderungen und sendet gleichzeitig die Daten Ihres realen Repos zurück.

40
s3m3n

Es gibt 2 Repos auf Bitbucket, die helfen könnten:

das Attlassian-Team hat Vorräte (Ruby): https://bitbucket.org/atlassian/bitbucket-server-cli

Zhemao hat bitbucket-cli (Python): https://bitbucket.org/zhemao/bitbucket-cli

beide verfügen über eine Pull-Request-Funktion von der Befehlszeile.

7
karojosh

Ich war mit den Antworten in diesem Thread nicht sehr zufrieden, also habe ich ein Paket dafür erstellt: 

https://www.npmjs.com/package/bitbucket-pr

Anleitung:

npm i -g bitbucket-pr

... Wechseln Sie in den Ordner, in dem Sie eine Pull-Anfrage erstellen möchten ...

bitbucket-pr

2
Karamell

Ausprobiert und getestet : 

  1. Erstellen Sie ein persönliches Zugriffstoken durch Klicken auf hier

  2. Speichern Sie die eindeutige Token-ID und hängen Sie sie nach "Bearer in header" an. 

Zum Beispiel: "Autorisierung: Träger MDg4MzA4NTcfhtrhthyt/Thyythyh"

Komplettes JSON-Beispiel hier

Schritt 1 zur Eingabe der Details und erforderlichen Kopfzeilen

  1. Versuchen Sie es auszuführen Schritt 2

  2. Ausgabe auf BitBucket, Sie können die Pull-Anforderung sehen Endgültige Ausgabe

Befehlszeilensyntax: 

curl -i -X POST    -H "Authorization:Bearer MDg4MzA4NTk/TlMSS6Ea"    -H "X-Atlassian-Token:no-check"    -H "Content-Type:application/json"    -d '{"description":"1. Changes made 2. Changes made 3. Hello hanges","closed":false,"fromRef":{"id":"refs\/heads\/branch","repository":{"name":"From Repository ","project":{"key":"ProjectName"},"slug":"From Repository "}},"state":"OPEN","title":"Merge changes from branch to master","locked":false,"reviewers":[],"open":true,"toRef":{"id":"refs\/heads\/master","repository":{"name":"RepoName","project":{"key":"ProjectName"},"slug":"RepoName"}}}'  'https://bitbucket.agile.com/rest/api/1.0/projects/projectName/repos/repoName/pull-requests'