web-dev-qa-db-ja.com

プルリクエストにコメントを作成する

GitHubのコメントAPI は、プルリクエストにコメントを作成できるようですが、コメントするdiffに特定の行番号を指定した場合に限ります。 GitHubのWebインターフェイスのプルリクエスト画面の下部に入力するのと同じように、プルリクエスト全体にコメントを作成する方法はありますか?

32
cbmanica

はい、可能です。参照しているAPIドキュメントのセクションは、行コメント(pull reqのコミットの特定の行に関するコメント)に関連しており、ドキュメントには次のように記載されています。

プルリクエストレビューコメントは、統合された差分の一部に関するコメントです。これらは、コミットコメント(プルリクエストビューの外部でコミットに直接適用される)および発行コメント(統合された差分の一部を参照しない)とは別のものです。

必要なのは、 このページ の上部で説明されている問題のコメントです。

プルリクエストAPIを使用すると、プルリクエストを一覧表示、表示、編集、作成、さらにはマージすることができます。プルリクエストへのコメントは、Issue CommentsAPIを介して管理できます。

したがって、プルリクエストコメントを作成するには、実際に問題コメントを作成する必要があります(プルリクエストはそれを管理するための問題を作成するため)。 問題コメントのページ これを確認します:

Issue Comments APIは、課題とプルリクエストに関するコメントの一覧表示、表示、編集、作成をサポートしています。

したがって、 行う必要のあるリクエスト は次のとおりです。

POST /repos/:owner/:repo/issues/:number/comments

POSTへのどの問題コメントURLをどのように知っていますか? 単一のプルリクエストを取得するための応答 を見ると、_linksという属性が含まれており、この属性にはcommentsがネストされていることがわかります。属性。これは、プルリクエストコメントの読み取りと作成に使用する必要があるURLであり、上記のPOSTリクエストで使用されるものと同じです。

30
Ivan Zuzak

GraphQL API v4 を使用すると、pullrequestスキーマを使用してプルリクエストIDを取得し、後で addComment ミューテーションを実行する必要があります。

query FindPullRequestID {
  repository(owner:"bertrandmartel", name:"ustream-dl") {
    pullRequest(number:2) {
      id
    }
  }
}

mutation AddPullRequestComment {
  addComment(input:{subjectId:"MDExOlB1bGxSZXF1ZXN0MTU0NzExOTA0",body: "test comment"}) {
    commentEdge {
        node {
        createdAt
        body
      }
    }
    subject {
      id
    }
  }
}

エクスプローラーで試してください

4
Bertrand Martel

イヴァンによれば、私は次のようなことができました。

$ curl -s -H "Authorization: token ${ACCESS_TOKEN}" \
 -X POST -d '{"body": "Your Message to Comment"}' \
 "https://api.github.com/repos/${REPO_OWNER}/${REPO_NAME}/issues/${PR_NUMBER}/comments"

または

$ curl -s -u "${GITHUB_ACCOUNT} \
 -X POST -d '{"body": "Your Message to Comment"}' \
 "https://api.github.com/repos/${REPO_OWNER}/${REPO_NAME}/issues/${PR_NUMBER}/comments"

パスワードプロンプト付き

3
wyde