2013-03-08 7 views
8

Ich verwende Git, um ein Collaboration-Projekt zu versionieren.Automatisches Öffnen einer Pull-Anforderung auf GitHub über die Befehlszeile

Und ich habe zwei Fernbedienungen. Gabel ist eine Gabel eines Projekts, und Ursprung ist das ursprüngliche Projekt.

Also, könnte ich, wenn ich einen Push (Git-Push-Gabel-Master) senden automatisch eine Pull-Anfrage in Herkunft zu verschmelzen erstellen?

Ich kann nicht direkt zu Herkunft verpflichten (ich weiß, das ist möglich). Ich brauche zuerst Push an Gabel und wenn der Administrator es annimmt, akzeptieren Sie Herkunft. Ich möchte diesen Prozess automatisieren und vermeiden, dass ich manuell zu github gehe und eine Gabel öffne.

Wie könnte ich das tun?

Edit:

Privat Organisation:

name: Org 
repository: main 
branch: master 

Privat Gabel:

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

ich den folgenden Ansatz versucht, aber hat bisher nicht funktioniert:

was ist los? Wie kann ich das beheben?

Edit 2

Ein weiterer Versuch:

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

Github hat [eine API zum Erstellen von Pull-Anforderungen] (http://developer.github.com/v3/pulls/#create-a-pull- Anfrage), die von Nutzen sein könnten. – cjc343

+0

@ cjc343, ich hatte einen Blick darauf, aber ich konnte nicht arbeiten. – GarouDan

+0

Ein großer Teil der Verwendung der API ist die Authentifizierung. Sie benötigen eine [Anwendung] (https://github.com/settings/applications) und OAuth-Token über [authorization] (http://developer.github.com/v3/oauth/#create-a) -Neue-Autorisierung). Es gibt eine nette Einführung [mit Curl] (https://gist.github.com/caspyin/2288960). – cjc343

Antwort

9

Schließlich Erfolg

Das erste Problem ist, dass ich das Key-Passwort wurde und nicht mit meinem GitHub Passwort.

Mit dieser Struktur:

Privat Organisation:

name: Org 
repository: main 
branch: master 

Privat Gabel:

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

Und das andere Problem ist die korrigiert Parameter ich benötigen akzeptieren, sieht der letzte Befehl wie dieses:

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

Thx für Hilfe @ cjc343, @StevenPenny, @ desert69 =)

1

Vielleicht mögen dieses

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

+0

Steve, ich würde es versuchen. Aber können Sie die Parameter etwas mehr erklären? Mein github-Repository befindet sich in einer Organisation namens Fork, und das Repository könnte repo sein, also Fork: repo. Und das ursprüngliche Projekt ist in Org und ein Repository namens Repo auch, also Org: Repo. Was ist der Link https://api.github.com/repos/garoudan/foo/pulls? – GarouDan

8

Sie sollten hub Check-out, ein Kommandozeilen-Tool, um in mit GitHub arbeiten.

Its README spricht über Pull-Anforderungen machen.

+1

Leider arbeitet Hub nicht richtig für mich. Ich habe den folgenden Fehler: Fehler beim Erstellen der Pull-Anforderung: Nicht autorisiert (HTTP 401). Ich habe versucht, zu sehen, warum dieser Fehler und das beste, was ich erlebt habe, ist die Verwendung 'git config github.token', aber das hat auch nicht funktioniert. Ich arbeite mit einem privaten Repo. – GarouDan

+0

Bitte sehen Sie meinen Versuch 2, was ist los? – GarouDan

Verwandte Themen