よくわかりませんが、タイトルに "Issue 4"または何かを指定してgithubプルリクエストを作成したという漠然とした記憶があり、それを送信したプロジェクトのIssue 4に自動的に添付されました。最近もう一度試してみましたが、うまくいきませんでした。代わりにまったく新しい問題が発生しました。新しいプルリクエストページに「発行する」などのオプションが表示されず、問題ページに「この問題の新しいプルリクエストを開く」もありません。プロジェクトオーナーが問題のページをきれいに保ち、重複を避けるために、これを行う方法はありますか?
編集:明確にするために、プルリクエストを作成すると常にnew問題が作成されることを知っています。代わりに、プルリクエストをexisting問題に添付したいと思います。
「ハブ」プロジェクトでこれを行うことができます。
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
既存のアップストリームの問題にプルリクエストを追加するのは簡単です。通常のgithubの手段を使用して分岐したと仮定します。
サポートされているキーワード のいずれかを使用して、コミットメッセージで問題を参照するだけです。
例:「このコミットは#116を修正します」
問題を参照するテキストは、コミットの件名に表示する必要はありません。
コミットをgithubリポジトリにプッシュすると、プルリクエストが問題に自動的に追加されます。
注:必須ではありませんが、プルリクエストの一部となるものは、その問題に固有の別のブランチにコミットすることを強くお勧めします。そのブランチでの今後のコミットはプルリクエストに追加されるためです(githubによって自動的に追加されます) )。したがって、別のブランチを作成せずに、マスターに残してから開発を続けた場合、マスターへの無関係なコミットはすべてプルリクエストに追加されます。
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": "smparkes:synchrony ")master
のfork内のtechnoweenie
ブランチ( "base": "master")smparkes
(--user "smparkes")この他の回答 は、 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パスワードを入力します。
ユーザー名 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 はプルリクエストです。
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
Gub を使用して、問題のプルリクエストを送信することもできます。
また、適切なfork/pull-requestスタイルを使用するのにも役立ちます。
編集:10/5/2013
Gubに問題#123のプルリクエストを送信させるには、次を実行する必要があります。
$ gub start 123
これにより、新しいブランチissue-123が作成されます。問題の作業が完了したら、次を実行します。
$ gub finish
出来上がり!
注:私はGub gemの著者です。
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をプルリクエストに変換します。
git-hub ツールを使用すると、次のようにできます。
$> git hub pull attach 123
これにより、問題#123がプルリクエスト#123に変換されるため、問題に関するすべての議論が1つの場所で維持されます。