2013-03-08 14 views
8

Sto usando git per eseguire il versioning di un progetto collaborato.Apri automaticamente una richiesta pull su github tramite riga di comando

E ho due telecomandi. fork è un fork di un progetto e origine è il progetto originale.

Quindi, quando posso inviare una spinta (git push fork master), creare automaticamente una richiesta pull disponibile in origine per unirlo?

Non riesco a impegnarmi direttamente sull'origine (so che è possibile). Ho bisogno di spingere prima la forcella e se l'amministratore la approva, accettare l'origine . Vorrei automatizzare questo processo, evitando di passare manualmente a github e aprire una forchetta.

Come posso fare questo?

Edit:

un'organizzazione privata:

name: Org 
repository: main 
branch: master 

Forcella privato:

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

ho provato il seguente approccio, ma non ho ancora lavorato:

cosa c'è di sbagliato? Come posso risolvere questo?

Edit 2

Un altro tentativo:

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

Github ha [un'API per la creazione di richieste pull] (http://developer.github.com/v3/pulls/#create-a-pull- richiesta) che può essere di qualche utilità. – cjc343

+0

@ cjc343, avevo dato un'occhiata a questo, ma non potevo mettermi al lavoro. – GarouDan

+0

Gran parte dell'utilizzo dell'API è l'autenticazione. Avrai bisogno di una [applicazione] (https://github.com/settings/applications) e di generare token OAuth tramite [autorizzazione] (http://developer.github.com/v3/oauth/#create-a -new-autorizzazione). C'è una bella introduzione [usando curl] (https://gist.github.com/caspyin/2288960). – cjc343

risposta

9

Infine successo

Il primo problema è che stavo usando la password della chiave e non la mia password github.

Con questa struttura:

un'organizzazione privata:

name: Org 
repository: main 
branch: master 

Forcella privato:

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

E l'altro problema è che è stato bisogno accettare i parametri corregge, il comando finale assomiglia questo:

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

Thx per assistenza @ cjc343, @StevenPenny, @ desert69 =)

1

Forse come questo

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, proverei a modo tuo. Ma puoi spiegare un po 'di più i parametri? Il mio repository github si trova in un'organizzazione denominata Fork e il repository potrebbe essere repository, quindi Fork: repository. E il progetto originale è in Org e un repository chiamato anche repo, quindi Org: repo. Qual'è il link https://api.github.com/repos/garoudan/foo/pulls? – GarouDan

8

Si dovrebbe verificare hub, uno strumento a riga di comando per a teract con GitHub.

Its README parla di richieste di pull.

+1

Purtroppo, l'hub non funziona correttamente per me. Ho il seguente errore: Errore durante la creazione della richiesta pull: Non autorizzato (HTTP 401). Ho provato a vedere perché questo errore e la cosa migliore che ho incontrato è usare 'git config github.token', ma questo non ha funzionato. Sto lavorando con un repo privato. – GarouDan

+0

Si prega di vedere il mio tentativo 2, cosa c'è che non va? – GarouDan

Problemi correlati