GitHubを中心に開発をしていると対応するんだかしないんだかわからない古いIssueが残ってたりしませんか?解決済みだけど閉じ忘れてるだけなのか、みんながみんな自分には関係ないと思って反応しないのか。こうなってしまったIssueはこのまま残しておいても状況はかわりません。そこでGitHub Actionsを使って古いIssueを自動的にクローズするようにしたいと思います。
actions/stale
GitHub公式ドキュメントの方でも紹介されています。
このActionは一定期間が過ぎたIssueやPRに対して、期間が過ぎたことをコメントします。さらにそこから一定期間が過ぎるといよいよクローズする、という動作をします。
試す
ほぼ公式ドキュメントの通りなのですが、以下のようなワークフローを用意しました。
変更点は、手動でも実行できるように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が多過ぎて手が回っていない場合は自動クローズしてしまうと問題を見逃してしまう可能性があるので、この機能を入れる場合はプロジェクトメンバーと相談しましょう。