GitHub GraphQL API を利用してReview のコメントを抽出してみた

こおりやまです

以前、こちらのブログでPull requests のコメント取得しましたが、Reviewコメントが取得できていなくクエリを再検討しました。

GitHub GraphQL API を利用してPull requests のコメントを抽出してみた
こおりやまです 以前、こちらのブログでGitHub GraphQL APIをさわってどのような情報を取得できるのか確認していたのですが、Pull requests のコメント取得が必要になりGoogle Apps Script(GAS)から呼び出しスプレッドシートに出力してみました。 GitHub GraphQL API をさわってみた まずは GraphQL API Explorer を利用して必要な情報が取得できるようQuery を検討します。 実行するクエリを作成したら、スクリプトを書いていきます。 書いたコードはこんな感じ (設定情報は環境に合わせて設定して下さい) /*…

前回と同様にGitHub's GraphQL Explorer を利用して Query を検討していきます。

Explorer - GitHub Docs

まず、Pull requests のIDを指定してExplorer で必要なクエリを実行して確認していきます。
検討した結果がこちら。

{
  repository(owner: "XXXXXXXXXX", name: "XXXXXXXX") {
    pullRequest(number: 00000) {
      url
      title
      closed
      createdAt
      author {
        login
      }
      reviews(first: 25) {
        edges {
          node {
            state
            bodyText
            comments(first: 25) {
              edges {
                node {
                  bodyText
                  author {
                    login
                  }
                  originalCommit {
                    abbreviatedOid
                    authoredDate
                  }
                }
              }
            }
          }
        }
      }
      comments(last: 25) {
        nodes {
          bodyText
        }
      }
    }
  }
}

owner , name は環境に合わせて実行してください。
number は存在するIDを設定してください。

reviews・・・レビュー結果を取得
comments・・・コメントの記載内容を取得

コメントはスレッド形式で記載されますが、Queryの結果は時系列に出力されるため、 abbreviatedOidauthoredDate を利用してスレッドのグループ化と表示順を決めるために取得するようにしています。

取得結果は長くなるので省略します GitHub's GraphQL Explorer で実行してみてください。

この結果から大体必要な情報は取得できることはわかったので、あとは numberを切り替えながら実行すれば全体を取得できますね!!

ということで次回はGASを利用して上記結果をスプレッドに出力していくこととなります。

ではでは