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

Command line Bitbucket:通过命令行发送拉取请求?,command-line,bitbucket,pull-request,Command Line,Bitbucket,Pull Request,我必须发送很多pull请求,因此我宁愿使用bash命令行,也不愿使用bitbucket的web界面 用法示例:$git req username 下面是Github的脚本: Bitbucket是否有一个回购协议?Bitbucket上有两个回购协议可以帮助: 阿特拉斯团队拥有藏品(ruby): Zhemao拥有bitbucket cli(python): 两者都具有从命令行提取请求的功能。Bitbucket及其RESTful支持无接口管理。在CLI中,您可以使用CURL请求它。这有更好的接口细节

我必须发送很多pull请求,因此我宁愿使用bash命令行,也不愿使用bitbucket的web界面

用法示例:
$git req username

下面是Github的脚本:


Bitbucket是否有一个回购协议?

Bitbucket上有两个回购协议可以帮助:

阿特拉斯团队拥有藏品(ruby):

Zhemao拥有bitbucket cli(python):


两者都具有从命令行提取请求的功能。

Bitbucket及其RESTful支持无接口管理。在CLI中,您可以使用CURL请求它。这有更好的接口细节

使用CURL获取pull请求数据 要获取有关特定拉动请求的完整数据,请执行以下操作:

$ curl --user s3m3n:bbpassword https://bitbucket.org/api/2.0/repositories/s3m3n/reponame/pullrequests/4
作为回报,我得到了JSON,其中包含关于拉取请求的完整信息#4(在命令中输入两次用户名、密码和名称)

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

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

使用CURL创建新的pull请求 您仍然可以使用一个衬里创建相同的拉动请求:

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

我对该线程中的答案不太满意,因此我为其创建了一个包:

说明:

npm i-g比特桶pr

。。。转到要在其中创建拉取请求的文件夹

比特桶pr

已尝试和测试:

  • 通过单击生成个人访问令牌

  • 保存唯一的令牌id,将其附加在“头中的承载者”之后

  • 例如:“授权:持票人MDG4MZA4NTCFHTRHTYT/Thyythyh”

    完整的JSON示例:

  • 试着运行它

  • 在BitBucket上输出时,您将能够看到pull请求

  • 命令行语法:

    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'
    

    看着哲茂,我看不出有什么办法可以做拉请求。这是在你发布答案后删除的吗?@Millisami是通过谷歌搜索VO来的,或者是同一个功能,而Stash现在似乎已经拥有了它(不知道从什么时候开始)。这个功能是为not Stash,为Bitbucket存在的吗?@Millisami恐怕我已经得出了结论。经过进一步调查,使用bitbucket时,api似乎已根据准备就绪,有些人似乎正在使用bitbucket cli。@keen Zhemao/bitbucket cli确实提供了
    pull_request
    命令,但自述文件中未记录该命令。+1取得了巨大进步!我相信一个易于使用的命令行客户端很快就会出现。您对这样的客户端有什么期望?创建新的pull请求的一行CURL非常简单,所有问题都是json作为POST主体,但您必须以某种方式传递所有数据。您希望如何以其他方式执行此操作?我至少会为简单的案例
    git req username
    创建一个别名。遗憾的是,REST浏览器工具似乎已停止使用。@Darktalker这很有趣。新的文档似乎相当糟糕。看看我在答案顶部的链接看起来和前年一样。酷!它和其他的有什么不同?什么让您不满意?karojosh的答案没有合适的解决方案,而s3m3n的答案需要太多的开销。我的软件包只是打开浏览器的拉请求与预先填写的信息,这可能是最快的方式这样做。伟大的工具!这节省了我几次点击!可以给出目标分支作为参数?很高兴您发现它很有用。它将始终转到回购的主分支,您可以在bitbucket设置中更改该分支。如果您真的想将目标分支作为参数,可以执行一个pull请求。这就像5行bash,因此应该很容易破解:)如果您提供npm模块的源代码就太好了,这样,任何人都可以在使用它之前验证它的源代码,甚至改进它