diff --git a/.github/workflows/close-old-issues.yaml b/.github/workflows/close-old-issues.yaml new file mode 100644 index 0000000..0098708 --- /dev/null +++ b/.github/workflows/close-old-issues.yaml @@ -0,0 +1,39 @@ +name: Close Inactive Issues + +on: + schedule: + - cron: '0 0 * * *' # Run daily + workflow_dispatch: # This line enables manual triggering + +jobs: + close-issues: + runs-on: ubuntu-latest + permissions: + issues: write # Ensure necessary permissions for issues + pull-requests: none + contents: none + steps: + - name: Close inactive issues + uses: actions/stale@v9.0.0 + with: + # A list of labels to reference when looking through issues, + # and only when one (or even more) of these labels are found.. + # then skip this issue, and never try to stale and/or close it. + exempt-issue-labels: "Keep Issue Open" + # Split it into two months, after one month the issue will be marked as stale, + # after another month have pasted without any update.. the issue will then be closed. + days-before-issue-stale: 31 + days-before-issue-close: 31 + # NEVER mark PRs as Stale or Close + this workflow should never have write permissions on PRs, EVER! + days-before-pr-stale: -1 + days-before-pr-close: -1 + # Sends a message for both the Stale and Close events of an issue. + stale-issue-message: "This issue was marked as stale because it has been inactive for 31 days" + close-issue-message: "This issue was closed because it has been inactive for 31 days since it was marked as stale" + # Increase this value if the project receives a lot of + # PRs (yes.. apparently they're processed no matter what) & Issues. + # Default value for it (according to the docs) is 30 + operations-per-run: 30 + # Make this field equal true if you want to test your configuration if it works correctly or not + debug-only: false + repo-token: ${{ secrets.GITHUB_TOKEN }}