通过命令行在github上自动打开pull请求

时间:2013-03-08 20:17:58

标签: git github automation fork push

我正在使用git对协作项目进行版本控制。

我有两个遥控器。 fork 项目的分支 origin 是原始项目。

那么,当我发送推送(git push fork master)时,我可以自动创建 origin 中可用的拉取请求来合并吗?

我无法直接提交来源(我知道这是可能的)。我需要首先推送到 fork ,如果管理员批准它,请接受 origin 。我想自动化这个过程,避免我手动转到github并打开一个分支。

我怎么能这样做?

修改

私人组织:

name: Org
repository: main
branch: master

私人分叉:

name: OrgFork (A organization of mine with forks from **Org**) 
repository: main
branch: testing

我尝试了以下方法,但还没有成功:

curl -X POST -u <Username> -k -d '{"title": "<Title>","head": "Org:main","base": "testing"}' https://api.github.com/repos/Org/main/pulls

有什么不对?我该如何解决这个问题?

修改2

另一次尝试:

hub pull-request "Testing" -b OrgFork:main:testing -h OrgFork:main:master

3 个答案:

答案 0 :(得分:10)

最后成功

第一个问题是我使用的是密码而不是我的github密码。

有了这个结构:

私人组织:

name: Org
repository: main
branch: master

私人分叉:

name: OrgFork (A organization of mine with forks from **Org**) 
repository: main
branch: testing

另一个问题是我需要接受更正参数,最终命令看起来像这样:

hub pull-request "Testing pull-request" -b Org:master -h OrgFork:testing

求助@ cjc343,@ StevenPenny,@ desert69 =)

答案 1 :(得分:9)

您应该查看hub,这是一个与GitHub交互的命令行工具。

Its README谈论提出拉取请求。

答案 2 :(得分:3)

也许就像这样

curl -X POST -u garoudan -k \
  -d '{"title": "new feature","head": "octocat:new-feature","base": "master"}' \
  https://api.github.com/repos/garoudan/foo/pulls

ref