GitHub Projects で Status が "Done" または "Canceled" のすべての Issue を Close する

GitHub Projects で特定の列の Issue を自動で Close するワークフローが欲しくて調べたときのメモ。GitHub CLI でサクッと実現できると読んでいたんだけど API 叩かないと無理そうだった。

github.com

Discussion のコメントを参考に Status が "Done" または "Canceled" の Issue を Close するスクリプトを作成してみる。

Close all "Done" and "Canceled" issues

作ったスクリプトGitHub Actions のワークフローから呼び出す。GitHub Actions から呼び出すには PAT か GitHub Apps で projects(beta) へのアクセス権を付与する必要がある。

docs.github.com

以下は GitHub Apps で projects(beta) へのアクセス権を付与した場合のワークフロー。

Close all issues workflow

Status が "Done" と "Canceled" の Issue が3時間ごとに自動で Close されるようになった。