如何通过命令行界面向 Bitbucket 提交 pull request?

3
什么是通过CLI执行git pull request的最简单方法。我已经厌倦了一直去Bitbucket手动创建pull request。这确实非常简单:
  1. 点击Pull requests选项卡
  2. 创建pull request
  3. 选择源和目标分支(编辑注释、评审人等)
  4. 确认
非常简单。如何通过cli实现这种行为呢? 比方说,在我的团队仓库中,我想从develop分支向master分支发起PR。
我一直在查看文档,但似乎并不那么明显。它要求我选择一个起始提交点,在我之前描述的步骤中,我甚至没有机会选择PR应该从哪个提交点开始。

你有没有阅读过Bitbucket文档 https://www.atlassian.com/git/tutorials/making-a-pull-request?对我来说,它似乎涵盖了你所有的问题。 - Liam
可以。"Mary可以通过导航到她的派生存储库并单击右上角的Pull request按钮来通过她的Bitbucket帐户创建pull request。"这就是我想停止做的事情。" - renatodamas
抱歉...我本来想说有hub,但是没有看到你在谈论BitBucket。 :-( Git中没有内置的方法来做到这一点(它不知道任何关于GitHub、BitBucket等的信息),所以唯一的方法就是使用一个包装器。如果您正在使用BitBucket服务器,那么bitbucket server cli可能适合您。 - John Szakmeister
1
我尝试将您问题中的更改应用到我的答案中。现在问题或多或少是 https://dev59.com/OGoy5IYBdhLWcg3wL7H1 的重复,还是我漏掉了什么? - jschnasse
你在此期间解决了它吗? - jschnasse
我基本上一直在使用老式的方式,通过Bitbucket网站。 - renatodamas
3个回答

3
您可以使用命令行工具,例如 curl,来调用 Bitbucket REST API。如何使用 HTTP POST 创建拉取请求的方法在此处有文档记录
请尝试一下:
 curl \ 
 -X POST \
 -H "Content-Type: application/json" \
 -u username:password \
  https://bitbucket.org/api/2.0/repositories/account/reponame/pullrequests \
 -d @pullrequest.json

带有文件 pullrequest.json 中包含的内容:

 { 
     "title": "Merge some branches", 
     "description": "stackoverflow example",
     "source": { 
         "branch": { 
            "name": "mybranchToMerge" 
          }, 
          "repository": { 
            "full_name": "account/reponame" 
          } 
     }, 
     "destination": { 
         "branch": { 
             "name": "master" 
          } 
      }, 
      "reviewers": [ { "username": "reviewerUsername" } ], 
      "close_source_branch": false 
}

更多选项请参考这里:

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

关于git request-pull的更多信息,请参见此处:

'git request-pull'和'pull request'之间的区别


1
问题是如何通过git CLI打开一个pull request,将分支推送到上游会跳过整个过程。 - Matan Shahar
不是我想要的。 我不想直接推送到 master。 我想通过拉取请求来实现。 因为我想添加审核者,他们可以批准或拒绝我的 PR。 - renatodamas
我再重复一遍,你应该把这个当作一个私有仓库(即公司使用的),而不是一个开源公共仓库,有贡献者。他想要fork,而不仅仅是推送和拉取一些更改。 - Liam
只需阅读此链接(https://www.atlassian.com/git/tutorials/making-a-pull-request),这基本上就是OP想要的内容... - Liam
1
@Liam - 不,原帖作者想通过命令行提交PR。请查看问题。请撤销您的踩票。 - jschnasse
显示剩余4条评论

1
您的问题的答案可能会令人失望,因为Pull Requests不是git的本地功能,因此它们不通过CLI或任何其他标准git工具进行支持。此外,即使在标准git之外,也没有标准协议可用于Pull Requests。每个平台(例如GitLabGitHub等)都提供其自己的Pull Requests风格。

由于您的问题涉及Pull Requests的一般性而不是特定提供者的Pull Requests,所以答案是无法实现。


谢谢,这回答了我的问题。但我会编辑帖子,使其更具体地针对Bitbucket。 - renatodamas
3
@RenatoDamas请另开一个问题。否则会使所有答案失效。 - Matan Shahar

0
如果您正在使用Bitbucket Enterprise,我已经准备了一个脚本来创建/删除拉取请求 - https://github.com/psadi/bbcli
它还会自动处理将默认审阅者添加到您的PR中,这些审阅者在您的存储库设置中配置。

虽然该链接可能回答了问题,但最好在此处包含答案的基本部分并提供参考链接。仅链接的答案如果链接页面更改,则可能无效。-【来自审核】 - Simas Joneliunas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接