416

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

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

4

10 に答える 10

250

通常のgithub手段を使用してフォークした場合、既存のアップストリームの問題にプルリクエストを追加するのは簡単です。

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

  • 選ぶ
  • 閉じます
  • 閉まっている
  • 修理
  • 修正
  • 修繕
  • 解決
  • 解決します
  • 解決しました

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

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

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

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

于 2011-08-25T12:02:16.060 に答える
246

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

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

$ hub pull-request -i 4

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


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

$ hub pull-request -i 4 -b USERNAME_OF_UPSTREAM_OWNER:UPSTREAM_BRANCH -h YOUR_USERNAME:YOUR_BRANCH URL_TO_ISSUE
于 2011-10-20T20:39:29.037 に答える
144

プルリクエスト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ブランチからプルするには( "head": " smparkessynchrony ")smparkes
  • のフォークのmasterブランチへ( "base": " master ")technoweenie
  • プルリクエストを発行15に添付します(「発行」:15
  • プルリクエストの作成者smparkes(--user " smparkes ")
  • GitHubパスワードの入力を求められます
于 2010-12-25T03:20:32.877 に答える
17

もう1つの可能なツールは、問題をプルリクエストに変換するIssue2PrWebサイトです。

とてもシンプルで効果的です!

ここに画像の説明を入力してください

資力:

于 2013-06-30T08:14:51.667 に答える
10

この別の回答では、 cURL( )を使用してGitHubAPIcurlを介して課題からプルリクエストを作成する方法を説明しています。読みやすく編集しやすいコマンドを生成する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のレポファラデーを見て、変更すべき何かを考え、そのレポでIssue#15を作成しました。後で、他の誰もあなたの提案した変更を行っていないことに気付き、あなたも自分でそれを行う時間があります。ファラデー自分のアカウントにフォークし、変更を書き込んで、 synchronyという名前のブランチの下のフォークにプッシュします。technoweenieはそれらの変更をマスターにプルする必要があると思います彼のレポのブランチ。これは、前の問題をこの状況のプルリクエストに変換するために作成するコマンドです。

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

于 2012-08-15T18:37:58.450 に答える
3

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
于 2013-09-15T17:14:17.397 に答える
3

クライアント側でそれを行う代わりに(Christian Oudardの回答hubのように)、今(2020年2月)はサーバー側(github.com)でそれを行うことができます

問題の表示とリンク、およびサイドバーからのリクエストのプル」を参照してください。

それぞれのページのサイドバーを介して、問題をリンクし、リクエストをプルできるようになりました。ここで確立された接続は、リンクされたプルリクエストがマージされると、問題を自動的に閉じます。

ドキュメントhttps://help.github.com/assets/images/help/pull_requests/link-issue-drop-down.png

そして、その機能を備えた検索APIがあります。

linked:pr検索修飾子を使用してプルリクエストの参照を閉じるリポジトリ内の未解決の問題をすべて検索します。
同様に、でサポートされている問題が欠落しているリポジトリ内のすべてのプルリクエストを見つけます-linked:issue

于 2020-02-04T22:31:31.300 に答える
1

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

また、適切なフォーク/プルリクエストスタイルを使用するのにも役立ちます。

編集:2013年10月5日

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

$ gub start 123

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

$ gub finish

出来上がり!

注:私はGubgemの作者です。

于 2013-10-01T22:55:56.950 に答える
0

git-hubツールを使用すると、次の方法でこれを行うことができます。

$> git hub pull attach 123

これにより、問題#123がプルリクエスト#123に変換されるため、問題に関するすべてのディスカッションが1か所にまとめられます。

于 2015-02-26T13:48:37.910 に答える
0

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をプルリクエストに変換します。

于 2018-03-31T17:14:45.233 に答える