とことんDevOps | 日本仮想化技術のDevOps技術情報メディア

DevOpsに関連する技術情報を幅広く提供していきます。

日本仮想化技術がお届けする「とことんDevOps」では、DevOpsに関する技術情報や、日々のDevOps業務の中での検証結果、TipsなどDevOpsのお役立ち情報をお届けします。
主なテーマ: DevOps、CI/CD、コンテナ開発、IaCなど
読者登録と各種SNSのフォローもよろしくお願いいたします。

GitHub Actionsで古いIssueを自動クローズ

GitHubを中心に開発をしていると対応するんだかしないんだかわからない古いIssueが残ってたりしませんか?解決済みだけど閉じ忘れてるだけなのか、みんながみんな自分には関係ないと思って反応しないのか。こうなってしまったIssueはこのまま残しておいても状況はかわりません。そこでGitHub Actionsを使って古いIssueを自動的にクローズするようにしたいと思います。

actions/stale

github.com

GitHub公式ドキュメントの方でも紹介されています。

docs.github.com

このActionは一定期間が過ぎたIssueやPRに対して、期間が過ぎたことをコメントします。さらにそこから一定期間が過ぎるといよいよクローズする、という動作をします。

試す

ほぼ公式ドキュメントの通りなのですが、以下のようなワークフローを用意しました。

github.com

変更点は、手動でも実行できるようにworkflow_dispatchを追加したのと、古いと判断されるまでの期間days-before-issue-stale:を1日、古いと判断されてからクローズされるまでの期間days-before-issue-close:を1日にセットしてあります。

当然ですがIssue作成日当日はActionsを実行しても何も起きませんでした。

↓つぎのあさ

Actionsの実行ログにはラベルをつけたなどのログが増え、Issueにはコメントとラベルがつけられていました。Actionsのコメント部分を直していなかったので「このIssueは30日経過した」と言われています。stale-issue-message:も直さないとダメでした。

↓つぎのあさ

Actionsの実行ログにはClosed issues: 1が出ていました。Issueも無事自動で閉じられています。

まとめ

放置されているIssueを自動で閉じることで、Issueを綺麗に保つことができそうです。PRも長く放置しているものは自動クローズでもいいかもしれませんね。

IssueやPRが多過ぎて手が回っていない場合は自動クローズしてしまうと問題を見逃してしまう可能性があるので、この機能を入れる場合はプロジェクトメンバーと相談しましょう。