Automatically open a pull request on github by com

2019-01-25 09:17发布

问题:

I'm using git to versioning a collaborate project.

And I have two remotes. fork is a fork of an project, and origin is the original project.

So, could I when I send a push (git push fork master) automatically create a pull request available in origin to merge it?

I can't commit directly to origin (I know this is possible). I need push first to fork and if the admin aproves it, accept on origin. I would like automate this process, avoiding me to manually go to github and open a fork.

How could I do this?

Edit:

Private Organization:

name: Org
repository: main
branch: master

Private Fork:

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

I tried the following approach, but didn't worked yet:

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

what is wrong? How can I fix this?

Edit 2

Another attempt:

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

回答1:

You should check out hub, a command line tool to interact with GitHub.

Its README talks about making pull requests.



回答2:

Finally success

The first problem is that I was using the key password and not my github password.

With this structure:

Private Organization:

name: Org
repository: main
branch: master

Private Fork:

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

And the other problem is I was needing accept the corrects parameters, the final command looks like this one:

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

Thx for help @cjc343, @StevenPenny, @desert69 =)



回答3:

Perhaps like this

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