web-dev-qa-db-ja.com

githubの既存の課題に新しいプルリクエストを添付するにはどうすればよいですか?

よくわかりませんが、タイトルに "Issue 4"または何かを指定してgithubプルリクエストを作成したという漠然とした記憶があり、それを送信したプロジェクトのIssue 4に自動的に添付されました。最近もう一度試してみましたが、うまくいきませんでした。代わりにまったく新しい問題が発生しました。新しいプルリクエストページに「発行する」などのオプションが表示されず、問題ページに「この問題の新しいプルリクエストを開く」もありません。プロジェクトオーナーが問題のページをきれいに保ち、重複を避けるために、これを行う方法はありますか?

編集:明確にするために、プルリクエストを作成すると常にnew問題が作成されることを知っています。代わりに、プルリクエストをexisting問題に添付したいと思います。

395
MatrixFrog

「ハブ」プロジェクトでこれを行うことができます。

https://github.com/defunkt/hub

プルリクエストを送信するリポジトリとブランチ:

$ hub pull-request -i 4

これはGitHub APIを使用し、現在のブランチのプルリクエストを既存の課題番号4に添付します。


EDIT:@atomiculesによるコメント:@MichaelMiorによる回答を拡張するための完全な例は次のとおりです。

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

既存のアップストリームの問題にプルリクエストを追加するのは簡単です。通常のgithubの手段を使用して分岐したと仮定します

サポートされているキーワード のいずれかを使用して、コミットメッセージで問題を参照するだけです。

  • 閉じる
  • 閉じます
  • 閉まっている
  • 修正する
  • 修正
  • 一定
  • 解決する
  • 解決する
  • 解決した

例:「このコミットは#116を修正します」

問題を参照するテキストは、コミットの件名に表示する必要はありません。

コミットをgithubリポジトリにプッシュすると、プルリクエストが問題に自動的に追加されます。

注:必須ではありませんが、プルリクエストの一部となるものは、その問題に固有の別のブランチにコミットすることを強くお勧めします。そのブランチでの今後のコミットはプルリクエストに追加されるためです(githubによって自動的に追加されます) )。したがって、別のブランチを作成せずに、マスターに残してから開発を続けた場合、マスターへの無関係なコミットはすべてプルリクエストに追加されます。

220
masukomi

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/ ファラデー/ pulls)
  • synchrony '分岐のsmparkesブランチからプルするには( "head": "smparkessynchrony ")
  • masterのfork内のtechnoweenieブランチ( "base": "master")
  • プルリクエストを発行15に添付します( "issue": "15")
  • プルリクエストの作成者smparkes(--user "smparkes")
  • gitHubパスワードの入力を求められます
143
technoweenie

別の可能なツールはIssue2Pr Webサイトで、これにより問題がプルリクエストに変換されます。

非常にシンプルで効果的です!

enter image description here

リソース:

17
nulltoken

この他の回答 は、 cURLcurl)を使用して、 GitHub API 。読みやすく編集しやすいコマンドを生成する HTTPiehttp)を使用して行う方法は次のとおりです。

$ 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パスワードを入力します。

説明された例

ユーザー名 smparkes およびパスワードhunter2でGitHubにログインしました。あなたは technoweenie のレポ faraday を見た変更し、そのレポで問題を作成する必要があります 問題#15 。後で、提案された変更を誰も行っていないことがわかり、自分でそれを行う時間もあります。あなたは fork faradayを自分のアカウントに 、変更を書き込み、 という名前のブランチの下のforkにプッシュします--- 同期technoweenieはこれらの変更をリポジトリの master ブランチにプルするべきだと思います。これは、以前の問題をこの状況のプルリクエストに変換するために記述するコマンドです。

$ 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 はプルリクエストです。

10
Rory O'Kane

githubで2-factor-authを使用する場合、リクエストのヘッダーとして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
3
Jörn Hees

Gub を使用して、問題のプルリクエストを送信することもできます。

また、適切なfork/pull-requestスタイルを使用するのにも役立ちます。

編集:10/5/2013

Gubに問題#123のプルリクエストを送信させるには、次を実行する必要があります。

$ gub start 123

これにより、新しいブランチissue-123が作成されます。問題の作業が完了したら、次を実行します。

$ gub finish

出来上がり!

注:私はGub gemの著者です。

1
Omar Ali

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
Kyle Gibson

git-hub ツールを使用すると、次のようにできます。

$> git hub pull attach 123

これにより、問題#123がプルリクエスト#123に変換されるため、問題に関するすべての議論が1つの場所で維持されます。

0
Gautam