Je ne suis pas sûr, mais j'ai un vague souvenir d'avoir créé une demande d'extraction github avec "Issue 4" ou quelque chose dans le titre, et elle s'est automatiquement jointe à la question 4 du projet auquel je la soumettais. Je l'ai réessayé récemment et cela n'a pas fonctionné - cela a simplement créé un tout nouveau problème. Je ne vois aucune option telle que "Joindre au problème" sur la nouvelle page de demande d'extraction, ni "Ouvrir une nouvelle demande d'extraction pour ce problème" sur la page du problème. Y a-t-il un moyen de le faire pour aider les propriétaires de projet à garder leur page de problèmes propre et à éviter les doubles emplois?
Edit : Pour clarifier, je sais que créer une demande d'extraction crée toujours un problème new. J'aimerais plutôt joindre la demande d'extraction à un problème existant.
Le projet "hub" peut faire ceci:
https://github.com/defunkt/hub
Dans le référentiel et la branche à partir desquels vous souhaitez envoyer une demande d'extraction:
$ hub pull-request -i 4
Ceci utilise l'API GitHub et attache une demande d'extraction pour la branche actuelle au numéro de problème existant 4.
EDIT: Commentaire de @atomicules: Pour développer la réponse de @MichaelMior, voici un exemple complet:
$ hub pull-request -i 4 -b USERNAME_OF_UPSTREAM_OWNER:UPSTREAM_BRANCH -h YOUR_USERNAME:YOUR_BRANCH URL_TO_ISSUE
Ajouter une demande d'extraction à un problème existant en amont est facile en supposant que vous ayez créé un fork en utilisant le github normal.
Référencez simplement le problème dans votre message de validation en utilisant l’un des mots clés pris en charge :
Par exemple: "ce commit corrige # 116"
Le texte faisant référence au problème n'a pas besoin d'apparaître dans la ligne d'objet de votre commit.
Poussez votre commit vers votre dépôt github et la demande d'extraction sera automatiquement ajoutée au problème.
Remarque: Bien que cela ne soit pas obligatoire, il est vivement recommandé de commettre tout ce qui fera partie d'une demande d'extraction dans une branche distincte de ce problème, car les commits futurs sur cette branche seront ajoutés à la demande d'extraction (automatiquement par github. ). Ainsi, si vous ne créez pas de branche distincte, si vous la laissez sur maître, puis continuez à se développer, tous vos commits non liés sur master seront ajoutés à votre demande d'extraction.
Vous pouvez créer une demande d'extraction à partir d'un problème existant avec la API de demande d'extraction :
$ curl --user "smparkes" \
--request POST \
--data '{"issue": "15", "head": "smparkes:synchrony", "base": "master"}' \
https://api.github.com/repos/technoweenie/faraday/pulls
Cela crée une demande d'extraction:
technoweenie
à project faraday
(https://api.github.com/repos/technoweenie/faraday/pulls)synchrony
dans smparkes
'fork ("head": "smparkes: synchrony")master
dans la branche de technoweenie
("base": "master")smparkes
(--user "smparkes")Un autre outil possible est le site Web Issue2Pr qui transforme vos problèmes en demandes d'extraction.
C'est très simple et efficace!
Ressources:
Cette autre réponse explique comment utiliser cURL (curl
) pour créer une demande d'extraction à partir d'un problème via l'API GitHub . Voici comment procéder à l'aide de HTTPie _ (http
), qui produit une commande plus facile à lire et à modifier:
$ 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>
Puis tapez votre mot de passe GitHub lorsque vous y êtes invité.
Vous vous êtes connecté à GitHub avec le nom d'utilisateur smparkes et le mot de passe hunter2. Vous avez vu le dépôt de technoweenie _ { faraday , vous avez pensé à quelque chose qui devrait être changé, et vous en avez fait un problème, Issue #15 . Plus tard, vous constaterez que personne d’autre n’a apporté le changement que vous proposez et vous avez également le temps de le faire vous-même. Vous (branchez faraday sur votre propre compte }, puis écrivez vos modifications et transmettez-les à votre branche, sous une branche nommée synchrony . Vous pensez que technoweenie devrait appliquer ces modifications à la branche master de son référentiel. C'est la commande que vous écririez pour convertir votre problème précédent en demande d'extraction pour cette situation:
$ http --auth "smparkes" \
POST \
https://api.github.com/repos/technoweenie/faraday/pulls \
issue=15 head=smparkes:synchrony base=master
http: password for [email protected]: hunter2
Maintenant, Issue # 15 est une demande d'extraction.
si vous utilisez 2-factor-auth avec github, vous devez fournir l'authtoken comme en-tête dans la requête:
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
Vous pouvez également utiliser Gub pour soumettre des demandes d'extraction à votre problème.
Il vous aide également à utiliser un style de demande de fourche/traction approprié.
Edit: 10/5/2013
Pour que Gub soumette une demande d'extraction pour le numéro 123, vous devez exécuter les éléments suivants:
$ gub start 123
Cela créera un nouveau numéro de branche-123. Une fois que vous avez fini de travailler sur le problème, exécutez:
$ gub finish
Voila!
Note: Je suis l'auteur de Gub gem.
Si vous avez activé 2FA, vous pouvez utiliser le jeton avec HTTPie:
http POST \
https://api.github.com/repos/<repo-owner>/<repo-name>/pulls \
issue=2 head=issue_2 base=master
"Authorization:token PUTAUTHTOKENHERE"
Ceci utilisera la branche issue_2
pour convertir le problème n ° 2 en une demande d'extraction.
En utilisant l’outil git-hub , vous pouvez le faire avec:
$> git hub pull attach 123
Cela convertirait le problème n ° 123 en une demande d'extraction n ° 123, maintenant ainsi toutes les discussions sur le problème à un seul endroit.