Как прикрепить новый запрос на удаление к существующей проблеме на github? - PullRequest
398 голосов
/ 25 декабря 2010

Я не уверен, но у меня есть смутная память о создании запроса на github pull с «Issue 4» или чем-то в заголовке, и он автоматически присоединяется к Issue 4 в проекте, в который я отправлял его. Недавно я попробовал еще раз, и это не сработало - вместо этого он создал новую проблему. Я не вижу никаких параметров, таких как «Прикрепить к проблеме» на новой странице запроса на извлечение или «Открыть новый запрос на извлечение для этой проблемы» на странице проблемы. Есть ли способ сделать это, чтобы помочь владельцам проектов содержать в чистоте страницу «Проблемы» и избежать дублирования?

Редактировать : Чтобы уточнить, я знаю, что при создании запроса на извлечение всегда возникает новая проблема. Вместо этого я хотел бы прикрепить запрос на получение к существующей проблеме.

Ответы [ 9 ]

243 голосов
/ 21 октября 2011

Проект "концентратор" может сделать это:

https://github.com/defunkt/hub

В хранилище и в филиале, из которого вы хотите отправить запрос извлечения:

$ hub pull-request -i 4

При этом используется API GitHub и прикрепляется запрос на извлечение для текущей ветки к существующему номеру 4. Номер проблемы@MichaelMior полный пример:

$ hub pull-request -i 4 -b USERNAME_OF_UPSTREAM_OWNER:UPSTREAM_BRANCH -h YOUR_USERNAME:YOUR_BRANCH URL_TO_ISSUE
223 голосов
/ 25 августа 2011

Добавить запрос на удаление к существующей восходящей проблеме просто , если вы разветвляетесь, используя обычный github, означает .

Просто укажите ссылку в сообщении о фиксации, используя любое из поддерживаемых ключевых слов :

  • close
  • close
  • закрыто
  • исправлено
  • исправлено
  • исправлено
  • разрешено
  • разрешено
  • разрешено

Например: «этот коммит исправляет # 116»

Текст, относящийся к проблеме, не обязательно должен отображаться в строке темы вашего коммита.

Вставьте ваш коммит в репозиторий github изапрос на добавление будет автоматически добавлен к проблеме.

Примечание. Хотя это и не требуется, настоятельно рекомендуется передать все, что будет являться частью запроса на извлечение, в отдельную ветку, специфичную для этой проблемы, поскольку будущие коммиты в этой ветке будут добавляться ктянуть запрос (автоматически по GitHub).Итак, если вы не создали отдельную ветку, оставили ее на master, а затем продолжили разработку, то все ваши несвязанные коммиты с master будут добавлены к вашему запросу на извлечение.

143 голосов
/ 25 декабря 2010

Вы можете создать запрос на извлечение из существующей проблемы с помощью API запроса на извлечение :

$ curl --user "smparkes" \
       --request POST \
       --data '{"issue": "15", "head": "smparkes:synchrony", "base": "master"}' \
       https://api.github.com/repos/technoweenie/faraday/pulls

Это создает запрос на извлечение:

  • asktechnoweenie в проекте faraday (https://api.github.com/repos/technoweenie/faraday/pulls)
  • для извлечения из ветви synchrony в smparkes 'fork ("head": " smparkes : синхрония ")
  • с веткой master в technoweenie в форке (" base ":" master ")
  • и прикрепите запрос на получение к выпуску 15 (" проблема ":" 15 ")
  • с автором запроса на получениеsmparkes (--user " smparkes ")
  • вам будет предложено ввести пароль GitHub
17 голосов
/ 30 июня 2013

Другим возможным инструментом является веб-сайт Issue2Pr , который превращает ваши проблемы в запросы на извлечение.

Это очень просто и эффективно!

enter image description here

Ресурсы:

10 голосов
/ 15 августа 2012

Этот другой ответ объясняет, как использовать cURL (curl) для создания запроса на извлечение из проблемы через GitHub API . Вот как это сделать, используя HTTPie (http), который создает более удобную для чтения и редактирования команду:

$ 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>

Затем введите пароль GitHub при появлении запроса.

Объясненный пример

Вы вошли в GitHub с именем пользователя smparkes и паролем hunter2 . Вы видели technoweenie репо Фарадей , думали о чем-то, что должно быть изменено, и сделали для этого репо, Issue # 15 . Позже вы обнаружите, что никто не внес предложенное вами изменение, и у вас также есть время, чтобы сделать это самостоятельно. Вы ответвление Фарадей на свою учетную запись , затем записываете свои изменения и отправляете их на свой ответвление в ветке с именем синхрония . Вы думаете, technoweenie должны перенести эти изменения в ветку master своего репо. Это команда, которую вы бы написали, чтобы преобразовать ваш предыдущий выпуск в запрос на извлечение для этой ситуации:

$ 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

Сейчас Выпуск № 15 - это запрос на извлечение.

3 голосов
/ 15 сентября 2013

в случае, если вы используете 2-factor-auth с github, вам нужно будет указать authtoken в качестве заголовка в запросе:

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
1 голос
/ 02 октября 2013

Вы также можете использовать Gub для отправки запросов на удаление по вашей проблеме.

Это также поможет вам использовать правильный стиль форка / запроса на получение.

Редактировать:10/5/2013

Чтобы Gub отправил пул-запрос на выпуск № 123, вам нужно выполнить следующее:

$ gub start 123

Это создаст новую ветку выпуск-123.Как только вы закончите работать над проблемой, выполните:

$ gub finish

Вуаля!

Примечание: я являюсь автором Gub gem.

0 голосов
/ 31 марта 2018

Если у вас включен 2FA, вы можете использовать токен с HTTPie:

http POST \
    https://api.github.com/repos/<repo-owner>/<repo-name>/pulls \
    issue=2 head=issue_2 base=master
    "Authorization:token PUTAUTHTOKENHERE"

. Это позволит использовать ветку issue_2 для преобразования проблемы № 2 в запрос на извлечение.

0 голосов
/ 26 февраля 2015

Используя инструмент git-hub , вы можете сделать это с помощью:

$> git hub pull attach 123

Это преобразовало бы проблему № 123 в запрос на извлечение № 123, таким образом, поддерживая все обсуждения проблемы в одном месте.

...