web-dev-qa-db-ja.com

Bitbucket:コマンドライン経由でプルリクエストを送信しますか?

大量のプルリクエストを送信する必要があるため、bitbucketのWebインターフェースよりもbashコマンドラインを使用したいです。

使用例:$ git-req username

Githubのこのようなスクリプトは次のとおりです。 http://Pastebin.com/F9n3nP

Bitbucket用のものはありますか?

45
Nicolas Raoul

RESTfulのBitbucket API 2. インターフェイスのない プルリクエスト の管理をサポートします。 CLIでは、CURLでリクエストできます。この ドキュメントの古いバージョン には、インターフェイスの詳細があります。

CURLでプルリクエストデータを取得する

特定のプルリクエストに関する完全なデータを取得するには:

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

その代わりに、プルリクエスト#4(コマンドでユーザー名、パスワード、レポ名を2回入力)に関する完全な情報を含むJSONを取得します。

RESTClientで新しいプルリクエストを作成する

新しいプルリクエストを作成するには、POSTコマンドを使用して、RESTClientでどのように表示されるかを示す多くのデータを提供する必要があります。

RESTClient Firefox

Bitbucketを起動すると、すぐにプルリクエストが表示されます。

Bitbucket screenshot

CURLを使用して新しいプルリクエストを作成する

1つのライナーで同じプルリクエストを作成できます:

$ 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ブラウザーツール (廃止)

APIのすべての可能なメソッドをテストする場合は、Bitbucketの RESTブラウザーツール にホップします。実際のレポのデータを返しながら、すべての可能なリクエストを表示します。

47
s3m3n

Bitbucketには次の2つのリポジトリがあります。

attlassianチームにはスタッシュ(Ruby)があります: https://bitbucket.org/atlassian/bitbucket-server-cli

Zhemaoにはbitbucket-cli(python)があります: https://bitbucket.org/zhemao/bitbucket-cli

どちらもコマンドラインからのプルリクエスト機能を備えています。

8
karojosh

試してテストした:

  1. here をクリックして、個人用アクセストークンを生成します

  2. 一意のトークンIDを保存し、「ヘッダーのベアラー」の後に追加します。

例:「承認:Bearer MDg4MzA4NTcfhtrhthyt/Thyythyh」

完全なJSONサンプル こちら

ステップ1で詳細と必要なヘッダーを入力します

  1. 実行してみてください ステップ2

  2. BitBucketに出力すると、プルリクエストを確認できます 最終出力

コマンドライン構文:

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'

私はこのスレッドの答えにあまり満足していなかったので、そのためのパッケージを作成しました。

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

手順:

npm i -g bitbucket-pr

...プルリクエストを作成するフォルダーに移動します...

bitbucket-pr

4
Karamell