name: Mark stale issues on: schedule: - cron: '0 8 * * *' workflow_dispatch: issue_comment: env: stale_label: stale jobs: stale_action: if: github.event_name != 'issue_comment' runs-on: ubuntu-latest permissions: issues: write steps: - uses: actions/stale@v9.0.0 with: repo-token: ${{ secrets.GITHUB_TOKEN }} days-before-stale: 30 days-before-close: 5 stale-issue-message: 'This issue is stale because it has been open 30 days with no activity. Please comment or update this issue or it will be closed in 5 days.' stale-issue-label: '${{ env.stale_label }}' exempt-issue-labels: 'pinned, Fixed in next release, bug, never-stale, documentation, investigating, v6' exempt-all-issue-assignees: true operations-per-run: 300 close-issue-reason: 'not_planned' remove_stale: # trigger "stale" removal immediately when stale issues are commented on # we need to explicitly check that the trigger does not run on comment on a PR as # 'issue_comment' triggers on issues AND PR comments # https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#issue_comment-on-issues-only-or-pull-requests-only if: ${{ !github.event.issue.pull_request && github.event_name != 'schedule' }} permissions: contents: read # for actions/checkout issues: write # to edit issues label runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Remove 'stale' label run: gh issue edit ${{ github.event.issue.number }} --remove-label ${{ env.stale_label }} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}