【问题标题】:How to submit pull request via CLI to Bitbucket?如何通过 CLI 向 Bitbucket 提交拉取请求?
【发布时间】:2018-03-21 10:34:26
【问题描述】:

通过 CLI 执行 git pull 请求的最简单方法是什么。我厌倦了一直去 Bitbucket 手动创建拉取请求。这确实很简单:

  1. 拉取请求选项卡
  2. 创建拉取请求
  3. 选择来源和命运分支(编辑 cmets、审阅者等)
  4. 确认

很简单。如何通过 cli 实现这种行为? 假设,在我团队的存储库中,我想从 develop 执行 PR 到 master 分支。

我一直在检查documentation,但似乎并不那么明显。它要求我选择一个开始提交,在我之前描述的步骤中,我什至没有机会选择 PR 应该从哪个提交开始。

【问题讨论】:

  • 你读过bitbucket文档atlassian.com/git/tutorials/making-a-pull-request吗?似乎涵盖了你对我的所有问题
  • 是的。 “Mary 可以通过她的 Bitbucket 帐户创建拉取请求,方法是导航到她的分叉存储库并单击右上角的拉取请求按钮。”。这就是我想停止做的事情
  • 对不起...我想说有hub,但没看到你在谈论BitBucket。 :-( 在 Git 中没有内置的方法可以做到这一点(它对 GitHub、BitBucket 等一无所知),所以唯一的方法是拥有一个包装器。我不确定你是否使用 BitBucket 服务器,但如果是这样,bitbucket server cli 可能适合您。
  • 我也尝试将您问题中的更改应用于我的答案。问题现在或多或少与stackoverflow.com/questions/8721730/… 重复,还是我遗漏了什么?
  • 这段时间你解决了吗?

标签: git bitbucket pull-request


【解决方案1】:

您可以在bitbucket rest api 上使用像curl 这样的命令行工具。如何使用 HTTP POST is documented here 创建拉取请求。

试一试:

 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: Send a pull request via command line?

更多关于git request-pull的信息可以在这里找到:

Difference between 'git request-pull' and 'pull request'

【讨论】:

  • 他在谈论分叉一个公共回购。这个答案也缺乏细节和清晰度
  • 问题询问如何通过 git CLI 打开拉取请求,向上游推送分支完全跳过该过程。
  • 不是我想要的。我不想直接推送到master。我想通过拉请求来实现这一点。因为我想添加可能批准或不批准我的 PR 的审阅者
  • 那么您的问题是如何使用 bitbucket API 做到这一点?
  • @Liam - 不,OP 想通过命令行进行 PR。见问题。请回复否决票。
【解决方案2】:

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

由于您的问题一般是关于Pull Requests,而不是关于特定提供商的Pull Requests,因此答案是无法完成。

【讨论】:

  • 谢谢,这就是答案。但我随后会将帖子编辑为特定于 Bitbucket。
  • @RenatoDamas 请改用另一个问题。否则,您将在这里的所有答案无效。
【解决方案3】:

如果您使用的是 bitbucket 企业版,我准备了一个脚本来创建/删除拉取请求 - https://gitlab.com/adithya3494/bbcli

它还自动将默认审阅者添加到您的 PR 中,该 PR 在您的 repo 设置中配置。

【讨论】:

  • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-24
  • 1970-01-01
  • 1970-01-01
  • 2022-01-01
  • 1970-01-01
  • 2017-07-07
相关资源
最近更新 更多