# This workflow warns and then closes issues and PRs that have had no activity for a specified amount of time.
#
# You can adjust the behavior by modifying this file.
# For more information, see:
# https://github.com/actions/stale
name: Mark stale issues and pull requests

on:
  workflow_dispatch:
  schedule:
  - cron: '0 1 * * *'

jobs:
  stale:
    permissions:
      issues: write
      pull-requests: write
    name: Track and close stale issues/PRs
    runs-on: ubuntu-latest

    steps:
    - name: Track and close stale issues/PRs
      uses: actions/stale@v5
      with:
        repo-token: ${{ secrets.GITHUB_TOKEN }}
        days-before-issue-stale: 880
        days-before-pr-stale: 880
        days-before-issue-close: 14
        days-before-pr-close: 14
        stale-issue-message: >
          Thank you for contributing to the Bazel repository!
          This issue has been marked as stale since it has not had any activity in the last 2+ years. It will be closed in the next 14
          days unless any other activity occurs or one of the following labels is added: "not stale", "awaiting-bazeler". Please reach out
          to the triage team (`@bazelbuild/triage`) if you think this issue is still relevant or you are interested in getting the
          issue resolved.
        close-issue-message: >
          This issue has been automatically closed due to inactivity. If you're still interested in pursuing this, please reach out
          to the triage team (`@bazelbuild/triage`). Thanks!
        stale-pr-message: >
          Thank you for contributing to the Bazel repository!
          This pull request has been marked as stale since it has not had any activity in the last 2+ years. It will be closed in the next
          14 days unless any other activity occurs or one of the following labels is added: "not stale", "awaiting-review", "awaiting-PR-merge".
          Please reach out to the triage team (`@bazelbuild/triage`) if you think this PR is still relevant or you are interested in getting the
          PR merged.
        close-pr-message: >
          This pull request has been automatically closed due to inactivity. If you're still interested in pursuing this, please reach out
          to the triage team (`@bazelbuild/triage`). Thanks!
        stale-issue-label: 'stale'
        exempt-issue-labels: 'not stale,awaiting-bazeler,untriaged,P0,P1'
        close-issue-reason: "not_planned"
        stale-pr-label: 'stale'
        exempt-pr-labels: 'not stale,awaiting-review,awaiting-PR-merge,P0,P1'
        exempt-draft-pr: true
        operations-per-run: 500
        ascending: true
