Как вы прикрепляете новый запрос на перенос существующей проблемы на github?
Я не уверен, но у меня есть смутная память о создании запроса на github pull с "Issue 4" или что-то в заголовке, и он автоматически привязан к выпуску 4 в проекте, в который я его отправлял. Я попробовал это недавно, и это не сработало - вместо этого он создал новую проблему. Я не вижу таких параметров, как "Присоединить к выпуску" на странице запроса нового запроса, или "Открыть новый запрос на перенос для этой проблемы" на странице проблемы. Есть ли способ сделать это, чтобы помочь владельцам проектов сохранить свою страницу проблем и избежать дублирования?
Изменить. Чтобы уточнить, я знаю, что создание запроса на перенос всегда создает новую проблему. Я хотел бы вместо этого приложить запрос на перенос к существующей проблеме.
Ответы
Ответ 1
Проект "hub" может сделать это:
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
Ответ 2
Добавление запроса на перенос к существующей проблеме восходящего потока легко предположить, что вы разветвлялись с использованием обычных средств github.
Просто сообщите об этом в своем сообщении о фиксации с помощью любого из поддерживаемых ключевых слов:
- близко
- закрывается
- закрыт
- фикс
- исправления
- фиксированный
- Решимость
- рассасывается
- разрешить
Например: "this commit fixes # 116"
Текст, ссылающийся на проблему, не обязательно должен появляться в строке темы вашей фиксации.
Скопируйте свою фиксацию в репозиторий github, и запрос на добавление автоматически добавится к проблеме.
Примечание. Хотя это и не требуется, настоятельно рекомендуется совершить что-либо, что будет частью запроса на перенос, в отдельную ветвь, относящуюся к этой проблеме, поскольку будущая фиксация этой ветки будет добавлена к запросу на pull ( автоматически github). Итак, если вы не создали отдельную ветвь, оставив ее на хозяине, а затем продолжаете развиваться, тогда все ваши несвязанные коммиты будут доступны для вашего запроса на тягу.
Ответ 3
Вы можете создать запрос Pull из существующей проблемы с API запроса Pull:
$ 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/ техновей/ faraday/pulls)
- чтобы извлечь из ветки
synchrony
в smparkes
'fork ( "head": " smparkes: синхронизация" )
- в ветку
master
в technoweenie
fork ( "base": " master" )
- и приложите запрос на pull для выпуска 15 ( "проблема": " 15" )
- с автором запроса pull
smparkes
(--user " smparkes" )
- вам будет предложено ввести пароль GitHub
Ответ 4
Другим возможным инструментом является сайт Issue2Pr, который превращает ваши проблемы в Pull Requests.
Это очень просто и эффективно!
![enter image description here]()
Ресурсы
Ответ 5
Этот другой ответ объясняет, как использовать cURL (curl
), чтобы создать запрос Pull из проблемы через API GitHub. Heres, как это сделать, используя 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 s repo faraday, подумал о чем-то, что должно измениться, и сделал для него вопрос об этом репо, Проблема №15. Позже вы обнаружите, что никто другой не внес изменений, и у вас также есть время, чтобы сделать это самостоятельно. Вы fork faraday в свой аккаунт, затем напишите свои изменения и подтолкните их к своей вилке под веткой с именем синхронизация. Вы думаете, что technoweenie должен потянуть эти изменения в master ветвь своего репо. Это команда, которую вы пишете, чтобы преобразовать предыдущую проблему в запрос Pull для этой ситуации:
$ 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
Теперь Проблема № 15 - это запрос Pull.
Ответ 6
если вы используете 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
Ответ 7
Вы также можете использовать Gub, чтобы отправить запросы на получение для своей проблемы.
Это также помогает вам использовать правильный стиль fork/pull-request.
Изменить: 10/5/2013
Чтобы получить Gub для подачи запроса на получение для проблемы № 123, вам необходимо запустить следующее:
$ gub start 123
Это создаст новую проблему с филиалом 123. Когда вы закончите работу над проблемой, выполните:
$ gub finish
Voila!
Примечание. Я автор Gub gem.
Ответ 8
Используя инструмент git-hub, вы можете сделать это с помощью
$> git hub pull attach 123
Это преобразует проблему № 123 в запрос на вывод № 123, тем самым поддерживая все обсуждения проблемы в одном месте.