Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,41 +1,24 @@
name: 'Issue and PR Maintenance'
name: 'Close stale issues'

on:
schedule:
- cron: '0 0 * * *' # runs at midnight UTC
- cron: '0 10 * * *' # Runs daily at 10:00 AM UTC
workflow_dispatch:

permissions:
issues: write
pull-requests: write

jobs:
lock-inactive:
name: Lock Inactive Issues
runs-on: ubuntu-24.04
steps:
- uses: klaasnicolaas/[email protected]
id: lock
with:
days-inactive-issues: 14
lock-reason-issues: ""
# Action can not skip PRs, set it to 100 years to cover it.
days-inactive-prs: 36524
lock-reason-prs: ""
- name: 🔍 Display locked issues
run: |
echo "Locked issues: $(echo '${{ steps.lock.outputs.locked-issues }}' | jq)"

close-stale:
name: Close Stale Issues
manage-stale-issues:
runs-on: ubuntu-24.04

steps:
- name: Close Stale Issues
uses: actions/stale@v9
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}

# Messaging
# Stale messaging
stale-issue-message: >
👋 This issue has been automatically marked as stale due to inactivity.
If this issue is still relevant, please comment to keep it open.
Expand All @@ -49,15 +32,17 @@ jobs:
days-before-issue-stale: 14
days-before-issue-close: 7

# Labels
# Label management
stale-issue-label: 'stale'
remove-stale-when-updated: true

# Targeting only `question`-labeled issues
only-issue-labels: 'question'
exempt-issue-labels: >
bug, chore, confirmed, dependencies, help wanted,
documentation, duplicate, feature, good first issue,
needs review, wontfix

# Exemptions
# Skip assigned or milestone-tracked issues
exempt-assignees: true
exempt-milestones: true