Как вы прикрепляете новый запрос на вытягивание к существующей проблеме на github?
Я не уверен, но у меня есть смутная память о создании запроса на вытягивание github с "выпуском 4" или чем-то в названии, и он автоматически прикрепился к выпуску 4 в проекте, в который я его отправлял. Недавно я попробовал еще раз, и это не сработало-вместо этого он просто создал совершенно новую проблему. Я не вижу никаких параметров, таких как "прикрепить к выпуску" на новой странице запроса на вытягивание или "открыть новый запрос на вытягивание для этой проблемы" на странице проблемы. Есть ли способ сделать это, чтобы помочь проекту владельцы держат свою страницу проблем в чистоте и избегают дублирования?
Edit: чтобы уточнить, я знаю, что создание запроса на вытягивание всегда создает новая вопрос. Я хотел бы вместо того, чтобы приложить запрос тянуть к существующей вопрос.
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 что превращает ваши проблемы в запросы на вытягивание.
Это очень просто и эффективно!
ресурсы:
это другой ответ объясняет, как использовать 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 в запрос на вытягивание.