name: Monitor inactive issues and PRs
on:
  schedule:
    - cron: '0 0 * * *'
  workflow_dispatch:

jobs:
  stale-issues:
    runs-on: ubuntu-latest
    permissions:
      actions: write
      issues: write
      pull-requests: write
    steps:
      - uses: actions/stale@v9
        with:
          operations-per-run: 50
          days-before-issue-stale: 30
          days-before-issue-close: 7
          stale-issue-label: 'stale'
          stale-issue-message: |
            This issue is marked as stale because it has been open for 30 days with no activity.
            
            You should take one of the following actions:
            - Manually close this issue if it is no longer relevant
            - Comment if you have more information to share
            
            This issue will be automatically closed in 7 days if no further activity occurs.
          close-issue-message: |
            This issue was closed because it has been inactive for 7 days since being marked as stale.

            If you believe this is a false alarm, please leave a comment for it or open a new issue, you can also reopen this issue directly if you have permission.
          days-before-pr-stale: 21
          days-before-pr-close: 7
          stale-pr-label: 'stale'
          stale-pr-message: |
            This PR is marked as stale because it has been open for 21 days with no activity.
            
            You should take one of the following actions:
            - Manually close this PR if it is no longer relevant
            - Push new commits or comment if you have more information to share
            
            This PR will be automatically closed in 7 days if no further activity occurs.
          close-pr-message: |
            This PR was closed because it has been inactive for 7 days since being marked as stale.

            If you believe this is a false alarm, feel free to reopen this PR or create a new one.
          repo-token: ${{ secrets.GITHUB_TOKEN }}