Open5
GitHub CLI でのプルリク状態の取得
GitHub CLI により、GitHub Actions の github context や REST API では取得できない(もしかして GraphQL では取得できるかも)ような、プルリクの状態を取得できる。
尚、GitHub CLI は GitHub Actions の runner に標準インストールされているので、CI で活用することができる。
レビュー状態の取得
$ gh pr view <プルリク番号> --json reviewDecision
{
"reviewDecision": "APPROVED"
}
取得できる値は、下記ドキュメントで定義されている
補足
- (ブランチ保護または rulesets で)マージ条件を設定をしておらず、且つ、誰もレビューしていない場合は空文字となる
- マージ条件を設定している場合、
- 例えば2名の approve が必要としているが1名の approve がされている場合は
REVIEW_REQUIRED
となる - プルリクが draft でも
REVIEW_REQUIRED
となる
- 例えば2名の approve が必要としているが1名の approve がされている場合は
基本的に、プルリク一覧のここに表示される内容と同じだが、draft のときはここの表示は Draft
となる
マージ可否に関する状態の取得
言い換えると、プルリクのマージボタンおよび周辺の状態。
$ gh pr view <プルリク番号> --json mergeStateStatus
{
"mergeStateStatus": "BLOCKED"
}
取得できる値は、下記ドキュメントで定義されている
補足
- マージ可能な状態であっても、status のどれかが failure なら
UNSTABLE
となる
レビュー状態の取得、の活用について
下記のような自動 approve では活用できそう。
他には、プルリク一覧でレビューが必要なプルリクを分かりやすくする為にラベルをつけるようなことが考えられるが、上述のとおり既に一覧上では表示されているし、一覧上で下図のようなフィルターもできるので、あまり意味はないかもしれない。
もしそれでもラベルをつけるようなワークフローを作るとしたら、トリガーとしてプルリクの open と、review 周りのイベントをトリガーにすれば実現はできそう。
マージ可否に関する状態の取得、の活用について
プルリク一覧にラベルなどあれば便利そうではあるが、CI の通過をマージ条件としていることもあるだろうから、トリガーとして status 周りは含める必要ありそう。