Automations #129
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Automations | |
| on: | |
| schedule: | |
| # Runs every day at 2:00 AM UTC | |
| - cron: '0 2 * * *' | |
| workflow_dispatch: | |
| inputs: | |
| DRY_RUN: | |
| type: boolean | |
| description: 'Run in dry run mode' | |
| default: true | |
| permissions: | |
| actions: write | |
| # contents: write # only for delete-branch option | |
| issues: write | |
| pull-requests: write | |
| env: | |
| DRY_RUN: true | |
| MOVE_TO_STALE_DAYS: 30 | |
| CLOSE_AFTER_STALE_DAYS: 15 | |
| jobs: | |
| mark-stale: | |
| name: Mark/unmark stale PRs and issues | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/stale@v10 | |
| with: | |
| debug-only: ${{ env.DRY_RUN }} | |
| exempt-draft-pr: true | |
| exempt-issue-labels: 'awaiting-approval,work-in-progress' | |
| stale-issue-label: 'stale' | |
| stale-pr-label: 'stale' | |
| # --- Timing --- | |
| # Job 1 marks/unmarks, but never closes. | |
| days-before-issue-stale: ${{ env.MOVE_TO_STALE_DAYS }} | |
| days-before-issue-close: -1 | |
| days-before-pr-stale: ${{ env.MOVE_TO_STALE_DAYS }} | |
| days-before-pr-close: -1 | |
| remove-stale-when-updated: true | |
| remove-pr-stale-when-updated: true | |
| # --- Messages --- | |
| stale-issue-message: > | |
| 👋 **This issue has been marked as Stale.** | |
| This issue has had no activity for **${{ env.MOVE_TO_STALE_DAYS }} days**. | |
| — 🤖 Stale Bot | |
| stale-pr-message: > | |
| 👋 **This PR has been marked as Stale.** | |
| This PR has had no activity for **${{ env.MOVE_TO_STALE_DAYS }} days**. | |
| — 🤖 Stale Bot | |
| operations-per-run: 100 | |
| ascending: true | |
| close-stale: | |
| name: Close stale PRs and issues | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/stale@v10 | |
| with: | |
| debug-only: ${{ env.DRY_RUN }} | |
| only-labels: 'stale' | |
| stale-issue-label: 'stale' | |
| stale-pr-label: 'stale' | |
| # --- Timing --- | |
| # Job 2 only closes already marked items. | |
| days-before-issue-stale: -1 | |
| days-before-pr-stale: -1 | |
| days-before-issue-close: ${{ env.CLOSE_AFTER_STALE_DAYS }} | |
| days-before-pr-close: ${{ env.CLOSE_AFTER_STALE_DAYS }} | |
| # --- Messages --- | |
| close-issue-message: > | |
| 👋 **This issue has been automatically closed.** | |
| This issue was labeled with `stale` and has had no activity | |
| for **${{ env.CLOSE_AFTER_STALE_DAYS }} days** since that. | |
| — 🤖 Stale Bot | |
| close-pr-message: > | |
| 👋 **This PR has been automatically closed.** | |
| This PR was labeled with `stale` and has had no activity | |
| for **${{ env.CLOSE_AFTER_STALE_DAYS }} days** since that. | |
| If this is still relevant, please feel free to reopen it | |
| or create a new PR. | |
| — 🤖 Stale Bot | |
| operations-per-run: 100 | |
| ascending: true |