Come si collega una nuova richiesta di pull a un problema esistente su GitHub?
-
13-10-2019 - |
Domanda
Non sono sicuro, ma ho un vago ricordo di creare una richiesta di pull github con "Numero 4" o qualcosa nel titolo, ed esso stesso collegato automaticamente al numero 4 nel progetto che mi è stato sottoporlo al. Ho provato di nuovo di recente e non ha funzionato - è appena creato un nuovo problema, invece. Non vedo alcuna opzione come "Allega a tema" nella nuova pagina richiesta di pull, nè "Apri una nuova richiesta di pull di questo problema" nella pagina problema. Esiste un modo per fare questo, per i proprietari di aiuto progetto mantenere la loro pagina Problemi duplicazione pulito ed evitare?
Modifica : Per chiarire, io so che la creazione di una richiesta di pull sempre crea un nuovo problema. Vorrei collegare invece la richiesta di pull a un esistente problema.
Soluzione
Il progetto "hub" può fare questo:
https://github.com/defunkt/hub
Nel repository e il ramo che si desidera inviare una richiesta di pull da:
$ hub pull-request -i 4
Questo utilizza il GitHub API, e attribuisce una richiesta di pull per il ramo corrente al numero esistente questione 4.
Modifica Commento di @atomicules: Per espandere sulla risposta da @MichaelMior un esempio completo è il seguente:
$ hub pull-request -i 4 -b USERNAME_OF_UPSTREAM_OWNER:UPSTREAM_BRANCH -h YOUR_USERNAME:YOUR_BRANCH URL_TO_ISSUE
Altri suggerimenti
L'aggiunta di una richiesta di pull a un problema a monte esistente è facile supponendo che si biforcuta utilizzando i normali mezzi GitHub .
È sufficiente riferimento al problema nel vostro messaggio di commit utilizzando una delle parole chiave supportati :
- Chiudi
- chiude
- chiuso
- fix
- correzioni
- fisso
- determinazione
- risolve
- risolto
Ad esempio: "questo commit correzioni # 116"
Il testo fa riferimento la questione non ha bisogno di comparire nella riga dell'oggetto del vostro impegno.
Spingere il impegnarsi per il vostro repo github e la richiesta di pull verrà aggiunto automaticamente al problema.
Nota: Anche se non è necessario, si consiglia vivamente che si impegnano tutto ciò che può essere parte di una richiesta di pull a uno specifico ramo separato per tale questione, in quanto futuri commit su quel ramo verranno aggiunti alla richiesta di pull ( automaticamente dal github). Quindi, se non hai fatto un ramo separato, lasciato sul maestro, e poi tenuto in via di sviluppo, quindi tutti i commit indipendenti da padroneggiare otterrebbe aggiunto alla tua richiesta di pull.
È possibile creare una richiesta di pull da un problema esistente con il Pull richiesta API :
$ curl --user "smparkes" \
--request POST \
--data '{"issue": 15, "head": "smparkes:synchrony", "base": "master"}' \
https://api.github.com/repos/technoweenie/faraday/pulls
Questo crea una richiesta di pull:
- chiedere
technoweenie
al progettofaraday
(https://api.github.com/repos/technoweenie/faraday / tira) - per estrarre dal ramo
synchrony
insmparkes
' forcella ( "testa": " smparkes sincronia ") - al ramo
master
in forcella ditechnoweenie
( "base": " Master ") - e allegare la richiesta di pull a tema 15 ( "questione": 15 )
- con il
smparkes
richiesta di pull autore (--user " smparkes ") - vi verrà richiesta la password GitHub
Un altro possibile strumento è il sito Issue2Pr che si trasforma i vostri problemi in Richieste Pull .
E 'molto semplice ed efficace!
Risorse:
Questa altra risposta spiega come utilizzare cURL (curl
) per creare una richiesta di pull da un problema attraverso il GitHub API . Ecco come farlo utilizzando HTTPie (http
), che produce un più facile da leggere e easier- al-edit comando:
$ http --auth "<your-GitHub-username>" \
POST \
https://api.github.com/repos/<issue-repo-owner>/<issue-repo-name>/pulls \
issue=<issue-number> head=<your-GitHub-username>:<your-fork-branch-name> base=<issue-repo-branch-name>
Quindi digitare la password quando richiesto GitHub.
esempio spiegato
Hai effettuato l'accesso con nome utente GitHub smparkes e la password Hunter2 . Hai visto technoweenie 's repo Faraday , pensato a qualcosa che dovrebbe essere cambiato, e reso un problema su che repo per esso, Issue # 15 . Più tardi, si scopre che nessun altro ha fatto la vostra proposta di modifica, e hai anche un po 'di tempo per farlo da soli. È forchetta Faraday per il proprio account , quindi scrivere le modifiche e spingerli per la forcella sotto un ramo di nome sincronia . Pensi che technoweenie dovrebbe tirare le modifiche al Master ramo della sua pronti contro termine. Questo è il comando si può scrivere per convertire il vostro numero precedente in un Pull richiesta per questa situazione:
$ http --auth "smparkes" \
POST \
https://api.github.com/repos/technoweenie/faraday/pulls \
issue=15 head=smparkes:synchrony base=master
http: password for smparkes@api.github.com: hunter2
Issue # 15 è una richiesta di pull .
nel caso in cui si utilizza 2-factor-auth con github dovrai fornire l'authtoken come intestazione nella richiesta:
curl -u "<your_username>:<your_pw>" \
--header 'X-GitHub-OTP: <your_authtoken>' \
--request POST \
--data '{"issue":"<issue_nr>", "head":"<your_username>:<your_forks_branchname>", "base":"<upstream_branch>"}' \
https://api.github.com/repos/<upstream_user>/<upstream_repo>/pulls
Si può anche utilizzare Gub per presentare le richieste di pull per il vostro problema.
Inoltre, consente di utilizzare un adeguato stile di forcella / pull-richiesta.
Modifica: 2013/10/05
Per ottenere Gub a presentare pull-richiesta di numero # 123, è necessario eseguire il seguente:
$ gub start 123
Questo creerà un nuovo ramo problema-123. Una volta che hai finito di lavorare sul problema, eseguire:
$ gub finish
Voila!
Nota:. Io sono l'autore di Gub gemma
Uso della strumento git-hub, si potrebbe fare questo con:
$> git hub pull attach 123
Questo sarebbe convertire numero # 123 nella richiesta di pull # 123, mantenendo così ogni discussione sulla questione in un unico luogo.
Se avete 2FA attivato, è possibile utilizzare passare il token con HTTPie:
http POST \
https://api.github.com/repos/<repo-owner>/<repo-name>/pulls \
issue=2 head=issue_2 base=master
"Authorization:token PUTAUTHTOKENHERE"
Questa utilizzerà il issue_2
ramo per numero convertito # 2 in una richiesta di pull.