Bitbucket:通过命令行发送拉取请求?

时间:2012-01-04 03:37:24

标签: command-line bitbucket pull-request

我必须发送大量的pull请求,所以我宁愿使用bash命令行而不是bitbucket的web界面。

用法示例:$ git-req username

以下是Github的这样一个脚本:http://pastebin.com/F9n3nPuu

Bitbucket有吗?

4 个答案:

答案 0 :(得分:44)

Bitbucket使用RESTful API 2.0支持在没有界面的情况下管理pull requests。在CLI中,您可以使用CURL请求它。这个older version of the documentation有更好的界面细节。

使用CURL获取拉取请求数据

获取有关特定拉取请求的完整数据:

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

作为回报,我获得了JSON,其中包含有关我的拉取请求#4的完整信息(将您的用户名设置为两次,密码和重新命名为命令)。

使用RESTClient创建新的拉取请求

要创建新的pull请求,我们需要使用POST命令提供大量数据,如下所示:我的RESTClient:

RESTClient Firefox

发射后Bitbucket立即显示拉动请求:

Bitbucket screenshot

使用CURL

创建新的拉取请求

您仍然可以使用一个班轮创建相同的拉取请求:

$ 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 browser tool。它将在返回您的真实回购数据时向您显示所有可能的请求。

答案 1 :(得分:8)

bitbucket上有2个回购可能会有所帮助:

Attlassian团队藏匿(红宝石):https://bitbucket.org/atlassian/bitbucket-server-cli

Zhemao有bitbucket-cli(python):https://bitbucket.org/zhemao/bitbucket-cli

两者都有来自命令行的拉取请求功能。

答案 2 :(得分:2)

我对这个帖子中的答案不太满意,所以我为它创建了一个包:

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

说明:

npm i -g bitbucket-pr

...转到要创建拉取请求的文件夹...

bitbucket-pr

答案 3 :(得分:2)

经过测试:

  1. 通过单击here

  2. 生成个人访问令牌
  3. 保存唯一令牌ID,并将其附加在“标题中的承载者”之后。

例如:“授权:承载MDg4MzA4NTcfhtrhthyt / Thyythyh”

完整的JSON示例here

Step 1 to enter the details and necessary headers

  1. 尝试运行它 Step 2

  2. BitBucket上的输出,您将能够看到拉取请求 Final output

命令行语法:

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'