Ich bin mir nicht sicher, aber ich habe eine vage Erinnerung daran, wie ich eine Github-Pull-Anfrage mit "Issue 4" oder etwas im Titel erstellt habe, und sie hat sich automatisch an Issue 4 in dem Projekt angehängt, an das ich sie gesendet habe. Ich habe es kürzlich erneut versucht und es hat nicht funktioniert - es wurde stattdessen nur eine brandneue Ausgabe erstellt. Auf der neuen Pull-Anforderungsseite werden keine Optionen wie "An Problem anhängen" oder "Neue Pull-Anforderung für dieses Problem öffnen" auf der Ausgabeseite angezeigt. Gibt es eine Möglichkeit, dies zu tun, um Projektbesitzern zu helfen, ihre Problemseite sauber zu halten und Doppelarbeit zu vermeiden?
Bearbeiten : Zur Verdeutlichung weiß ich, dass das Erstellen einer Pull-Anfrage immer ein neues Problem verursacht. Ich möchte stattdessen die Pull-Anfrage an ein bestehendes Problem anhängen .
quelle
Antworten:
Das "Hub" -Projekt kann dies tun:
https://github.com/defunkt/hub
In dem Repository und dem Zweig, von dem Sie eine Pull-Anfrage senden möchten:
Dies verwendet die GitHub-API und fügt der vorhandenen Problemnummer 4 eine Pull-Anforderung für den aktuellen Zweig hinzu.
EDIT: Kommentar von @atomicules: Um die Antwort von @MichaelMior zu erweitern, ist ein vollständiges Beispiel:
quelle
brew install hub
mit homebrew zu installierenhub pull-request URL_TO_ISSUE
, dann hat es bei mir funktioniert. Ich frage mich, ob es-i ISSUE_NUMBER
nur funktioniert, wenn sich das Problem im selben Repository befindet (dh nicht in einer Gabelung)hub pull-request -b USERNAME_OF_UPSTREAM_OWNER:UPSTREAM_BRANCH -h YOUR_USERNAME:YOUR_BRANCH URL_TO_ISSUE
Das Hinzufügen einer Pull-Anforderung zu einem vorhandenen Upstream-Problem ist einfach, vorausgesetzt, Sie haben mit den normalen Github-Mitteln gegabelt .
Verweisen Sie einfach mit einem der unterstützten Schlüsselwörter auf das Problem in Ihrer Commit-Nachricht :
Zum Beispiel: "Dieses Commit behebt # 116"
Der Text, der auf das Problem verweist, muss nicht in der Betreffzeile Ihres Commits erscheinen.
Wenn Sie Ihr Commit an Ihr Github-Repo senden, wird die Pull-Anforderung automatisch an das Problem angehängt.
Hinweis: Obwohl dies nicht erforderlich ist, wird dringend empfohlen, dass Sie alles, was Teil einer Pull-Anforderung ist, an einen separaten Zweig festschreiben, der für dieses Problem spezifisch ist, da zukünftige Festschreibungen für diesen Zweig an die Pull-Anforderung angehängt werden (automatisch von github) ). Wenn Sie also keinen separaten Zweig erstellt, ihn auf dem Master belassen und dann weiterentwickelt haben, werden alle Ihre nicht verwandten Commits an den Master an Ihre Pull-Anforderung angehängt.
quelle
Sie können eine Pull-Anforderung aus einem vorhandenen Problem mit der Pull-Anforderungs-API erstellen :
Dies erzeugt eine Pull-Anfrage:
technoweenie
bei Projektfaraday
(https://api.github.com/repos/ technoweenie / faraday / Pulls)synchrony
Ast insmparkes
'Gabel ziehen ("head": " smparkes : synchrony ")master
Zweig intechnoweenie
der Gabel ("base": " master ")smparkes
(--user " smparkes ")quelle
--user "smparkes:password"
sich--user "smparkes"
, um interaktiv zur Eingabe Ihres Passworts aufgefordert zu werden.Ein weiteres mögliches Tool ist die Issue2Pr-Website, die Ihre Probleme in Pull-Anfragen umwandelt .
Es ist sehr einfach und effektiv!
Ressourcen:
quelle
In dieser anderen Antwort wird erläutert, wie Sie mit cURL (
curl
) eine Pull-Anforderung aus einem Problem über die GitHub-API erstellen . So geht's mit HTTPie (http
), das einen leichter lesbaren und leichter zu bearbeitenden Befehl erzeugt:Geben Sie dann Ihr GitHub-Passwort ein, wenn Sie dazu aufgefordert werden.
Erklärtes Beispiel
Sie haben sich mit dem Benutzernamen smparkes und dem Passwort hunter2 bei GitHub angemeldet . Sie haben Technoweenies Repo Faraday gesehen , sich etwas überlegt, das geändert werden sollte, und eine Ausgabe für dieses Repo dafür gemacht, Ausgabe Nr. 15 . Später stellen Sie fest, dass niemand anders Ihre vorgeschlagene Änderung vorgenommen hat, und Sie haben auch etwas Zeit, dies selbst zu tun. Sie teilen Faraday auf Ihr eigenes Konto auf , schreiben dann Ihre Änderungen und schieben sie unter einem Zweig namens Synchrony auf Ihren Fork . Sie denken, technoweenie sollte diese Änderungen auf den Master übertragenZweig seines Repos. Dies ist der Befehl, den Sie schreiben würden, um Ihre vorherige Ausgabe in eine Pull-Anforderung für diese Situation umzuwandeln:
Jetzt ist Ausgabe Nr. 15 eine Pull-Anfrage.
quelle
Wenn Sie 2-Faktor-Authentifizierung mit Github verwenden, müssen Sie das Authtoken als Header in der Anforderung angeben:
quelle
Sie können Gub auch verwenden , um Pull-Anfragen für Ihr Problem zu senden.
Es hilft Ihnen auch dabei, einen geeigneten Gabel- / Zuganforderungsstil zu verwenden.
Bearbeiten: 05.10.2013
Damit Gub eine Pull-Anfrage für Problem Nr. 123 sendet, müssen Sie Folgendes ausführen:
Dadurch wird ein neues Zweigproblem-123 erstellt. Wenn Sie mit der Bearbeitung des Problems fertig sind, führen Sie Folgendes aus:
Voila!
Hinweis: Ich bin der Autor von Gub Gem.
quelle
Anstatt dies auf der Clientseite zu tun (mit
hub
, wie in der Antwort von Christian Oudard ), können Sie dies jetzt (Februar 2020) auf der Serverseite tun (github.com).Siehe " Probleme anzeigen und verknüpfen und Anforderungen aus der Seitenleiste abrufen ".
Dokumentation :
Und es gibt eine Such-API mit dieser Funktion.
quelle
Mit dem Git-Hub- Tool können Sie dies tun mit:
$> git hub pull attach 123
Dies würde das Problem Nr. 123 in die Pull-Anforderung Nr. 123 konvertieren und somit alle Diskussionen über das Problem an einem einzigen Ort aufrechterhalten.
quelle
Wenn Sie 2FA aktiviert haben, können Sie das Token mit HTTPie übergeben:
Dadurch wird der Zweig verwendet
issue_2
, um Problem Nr. 2 in eine Pull-Anforderung umzuwandeln.quelle