ノート: GitHub Actionsは、GitHub Enterprise Server 2.22で限定ベータとして利用可能でした。 ベータは終了しました。 GitHub Actionsは、GitHub Enterprise Server 3.0以降で一般に利用可能になりました。 詳しい情報については、GitHub Enterprise Server 3.0 のリリースノートを参照してください。
- GitHub Enterprise Server 3.0以降へのアップグレードに関する詳しい情報については「GitHub Enterprise Serverのアップグレード」を参照してください。
- アップグレード後のGitHub Actionsの設定に関する詳しい情報については、GitHub Enterprise Server 3.0のドキュメンテーションを参照してください。
ノート: GitHubホストランナーは、現在GitHub Enterprise Serverでサポートされていません。 GitHubパブリックロードマップで、計画されている将来のサポートに関する詳しい情報を見ることができます。
はじめに
このチュートリアルでは、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 steps: - uses: actions/stale@v3 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 をすべてクローズします。
ノート: schedule
イベントは、GitHub Actionsのワークフローの実行による高負荷の間、遅延させられることがあります。 高負荷の時間帯には、毎時の開始時点が含まれます。 遅延の可能性を減らすために、Ⅰ時間の中の別の時間帯に実行されるようワークフローをスケジューリングしてください。
ワークフローの実行履歴を表示して、このワークフローが定期的に実行されているかどうかを確認できます。 詳しい情報については、「ワークフロー実行の履歴を表示する」を参照してください。
This workflow will only label and/or close 30 issues at a time in order to avoid exceeding a rate limit. これは、operations-per-run
の設定で構成できます。 詳しい情報については、actions/stale
アクションのドキュメントを参照してください。
次のステップ
- 非アクティブなプルリクエストをクローズする、特定のラベルやマイルストーンの Issue を無視する、特定のラベルの Issue のみを確認するなど、
actions/stale
アクションで実行できるその他の操作について詳しくは、actions/stale
アクションのドキュメントをご覧ください。 - このアクションを使用したワークフローの例については、GitHub を検索 してください。