注: GitHub ホステッド ランナーは、現在 GitHub Enterprise Server でサポートされていません。 GitHub public roadmap で、今後の計画的なサポートの詳細を確認できます。
はじめに
このチュートリアルでは、actions/stale
アクションを使用して、一定期間非アクティブ� った issue にコメントを付けてクローズする方法について説明します。 たとえば、Issueが 30 日間非アクティブであった� �合にコメントして、参� 者にアクションを実行するように促すことができます。 その後、14 日以上経っても追� のアクティビティが発生しない� �合は、Issue をクローズできます。
チュートリアルでは、actions/stale
アクションを使用するワークフロー ファイルをまず作成します。 次に、ニーズに合わせてワークフローをカスタマイズします。
ワークフローの作成
-
このプロジェクト管理ワークフローを適用したいリポジトリを選択してく� さい。 書き込みアクセス権を持つ既存のリポジトリを利用することも、新しいリポジトリを作成することもできます。 リポジトリの作成の詳細については、「新しいリポジトリの作成」を参照してく� さい。
-
リポジトリに
.github/workflows/YOUR_WORKFLOW.yml
というファイルを作成します (YOUR_WORKFLOW
は任意の名前に置き換えます)。 これがワークフローファイルです。 GitHub での新しいファイルの作成の詳細については、「新しいファイルの作成」を参照してく� さい。 -
次の YAML コンテンツをワークフローファイルにコピーします。
YAML name: Close inactive issues on: schedule: - cron: "30 1 * * *" jobs: close-issues: runs-on: ubuntu-latest permissions: issues: write pull-requests: write steps: - uses: actions/stale@v4 with: days-before-issue-stale: 30 days-before-issue-close: 14 stale-issue-label: "stale" stale-issue-message: "This issue is stale because it has been open for 30 days with no activity." close-issue-message: "This issue was closed because it has been inactive for 14 days since being marked as stale." days-before-pr-stale: -1 days-before-pr-close: -1 repo-token: ${{ secrets.GITHUB_TOKEN }}
-
ワークフローファイルのパラメータをカスタマイズします。
on.schedule
の値を変更して、このワークフローを実行する日時を指定します。 上記の例では、ワークフローは毎日 1:30 UTC に実行されます。 スケジュールされたワークフローの詳細については、スケジュールされたイベントに関するページを参照してく� さい。days-before-issue-stale
の値を、actions/stale
アクションが issue のラベルを付ける前のアクティビティのない日数に変更します。 このアクションで issue にラベルを付けない� �合は、この値を-1
に設定します。days-before-issue-close
の値を、actions/stale
アクションが issue をクローズする前のアクティビティのない日数に変更します。 このアクションで issue をクローズしない� �合は、この値を-1
に設定します。stale-issue-label
の値を、days-before-issue-stale
で指定した期間非アクティブ� った issue に適用するラベルに変更します。stale-issue-message
の値を、actions/stale
アクションによってラベル付けされた issue に追� するコメントに変更します。close-issue-message
の値を、actions/stale
アクションによってクローズされた issue に追� するコメントに変更します。
-
ワークフローファイルを、リポジトリのデフォルトブランチにコミットしてく� さい。 詳細については、「新しいファイルの作成」を参照してく� さい。
予想される結果
schedule
パラメーター (たとえば、毎日 1:30 UTC) に基づいて、ワークフローは指定された期間非アクティブであった issue を検出し、指定されたコメントとラベルを追� します。 さらに、指定された期間に追� のアクティビティが発生しなかった� �合、ワークフローは以前にラベル付けされた Issue をすべてクローズします。
注: GitHub Actions のワークフローの実行によって高い� 荷がかかっている間、schedule
イベントが遅延する可能性があります。 高� 荷の時間帯には、毎時の開始時点が含まれます。 遅延の可能性を減らすために、� 時間の中の別の時間帯に実行されるようワークフローをスケジューリングしてく� さい。
ワークフローの実行履歴を表示して、このワークフローが定期的に実行されているかどうかを確認できます。 詳細については、「ワークフロー実行の履歴を表示する」を参照してく� さい。
このワークフローでは、レート制限を超えないように、一度に 30 件の issue にのみラベルを付けたりクローズしたりします。 operations-per-run
設定を使用してこれを構成できます。 詳細については、actions/stale
アクションのドキュメントを参照してく� さい。
次の手� �
- 非アクティブな pull request のクローズ、特定のラベルやマイルストーンに関する issue の無視、特定のラベルに関する issue のみの確認など、
actions/stale
アクションで実行できるその他の操作の詳細については、actions/stale
アクションのドキュメントを参照してく� さい。 - このアクションを使用するワークフローの例については GitHub を検索してく� さい。