Как вы прикрепляете новый запрос на вытягивание к существующей проблеме на github?


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

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

9 384

9 ответов:

проект " хаб " может сделать это:

https://github.com/defunkt/hub

в репозитории и ветке, из которой вы хотите отправить запрос на вытягивание:

$ hub pull-request -i 4

Это использует API GitHub и присоединяет запрос на вытягивание для текущей ветви к существующей проблеме № 4.


EDIT: комментарий @atomicules: чтобы расширить ответ @MichaelMior полный пример:

$ hub pull-request -i 4 -b USERNAME_OF_UPSTREAM_OWNER:UPSTREAM_BRANCH -h YOUR_USERNAME:YOUR_BRANCH URL_TO_ISSUE

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

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

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

например: "эта фиксация исправляет #116"

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

нажмите фиксацию к вашему РЕПО github, и запрос на вытягивание будет автоматически добавляется к вопросу.

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

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

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

это создает запрос:

  • задать technoweenie в проекте faraday (https://api.github.com/repos/technoweenie/faraday/pulls)
  • вытащить из synchrony филиала в ' ("голова": " smparkes:синхронность")
  • до master филиала в technoweenie's fork ("base":"мастер")
  • и прикрепите запрос на вытягивание к выпуску 15 ("выпуск":"15")
  • С автором запроса pull smparkes (--user" smparkes")
  • вам будет предложено для вашего GitHub пароль

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

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

enter image description here

ресурсы:

это другой ответ объясняет, как использовать 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’ы РЕПО Фарадей, подумал о чем-то, что должно быть изменено, и сделал вопрос об этом РЕПО для него,выпуск #15. Позже вы обнаружите, что никто другой не сделал ваше предлагаемое изменение, и у вас также есть некоторое время, чтобы сделать это самостоятельно. Ты вилки Фарадей в свой собственный аккаунт, затем напишите свои изменения и нажмите их на вилку под веткой с именем синхронность. Вы думаете technoweenie должны вытащить эти изменения в мастер ветка его РЕПО. Это команда, которую вы бы написали, чтобы преобразовать свою предыдущую проблему в запрос Pull для этой ситуации:

$ 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 запрос тянуть.

Если вы используете 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

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

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

Edit: 10/5/2013

чтобы заставить Gub отправить pull-request для выпуска #123, вам нужно выполнить следующее:

$ gub start 123

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

$ gub finish

вуаля!

примечание: Я автор Gub драгоценный камень.

С помощью ГИТ-хаб инструмент, вы могли бы сделать это с:

$> git hub pull attach 123

это преобразует проблему #123 в запрос на вытягивание #123, тем самым сохраняя все обсуждения проблемы в одном месте.

Если у вас есть 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 в запрос на вытягивание.