chore: new workflow to tag issues before 2021 to prepare for cleanup - github issues management (#24098)

* new workflow to tag issues before 2021 to prepare for cleanup

* add argument to curl

* isolate labeling action + add closing action

* chore: fix prettier errors

---------

Co-authored-by: Simone Taeggi <startae14@gmail.com>
This commit is contained in:
Marion Kamoike-Bouguet 2025-08-06 11:39:00 +02:00 committed by GitHub
parent 2a9b9b61cf
commit 660026a706
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 91 additions and 0 deletions

View File

@ -0,0 +1,41 @@
name: Close Pre-2021 Issues
on:
workflow_dispatch: # Allows manual triggering from the Github UI
permissions:
issues: write # Required to close issues and post comments
contents: read # Needed by most GitHub Actions
pull-requests: read # Needed to access PR data
jobs:
close-inactive:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
- name: Close stale old issues
uses: actions/stale@v3
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
stale-issue-labels: 'stale-before-2021' # Only process issues with this label
exempt-issue-labels: 'issue: security,severity: critical,severity: high' # Don't close issues with this label
exempt-all-milestones: true # Don't close issues that are part of a milestone
days-before-stale: 0 # Mark as stale immediately
days-before-close: 0 # Close immediately
operations-per-run: 100
stale-issue-message: |
👋 Hello there!
We noticed this issue was created before 2024. As part of our efforts to keep our issue tracker current and actionable, we are closing older issues that have been inactive.
This issue has been automatically closed due to inactivity. If this issue is still relevant:
- Please add a comment to let us know and we will reopen it.
- Share any updates or additional context.
Thank you for your contribution to making Strapi better! 🙏

View File

@ -0,0 +1,50 @@
name: Label Pre-2021 Issues
on:
workflow_dispatch: # Allows manual triggering from the Github UI
permissions:
issues: write # Required to close issues and post comments
contents: read # Needed by most GitHub Actions
pull-requests: read # Needed to access PR data
jobs:
close-inactive:
runs-on: ubuntu-latest
steps:
- name: Label old issues
run: |
# Set the cutoff date (issues created before this date will be labeled)
CUTOFF_DATE="2021-01-01"
LABEL="stale-before-2021"
echo "Labeling issues created before $CUTOFF_DATE with $LABEL"
# Get all open issues created before the cutoff date
# Exclude issues with 'severity: high' or 'severity: critical' and 'issue: security' label and issues in milestones
curl -s -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
-H "Accept: application/vnd.github.v3+json" \
"https://api.github.com/repos/${{ github.repository }}/issues?state=open&per_page=100" | \
jq -r --arg cutoff "$CUTOFF_DATE" --arg label "$LABEL" '
.[] |
select(.created_at < $cutoff) |
select(.pull_request == null) |
select(any(.labels[]?; .name == "severity: high") | not) |
select(any(.labels[]?; .name == "severity: critical") | not) |
select(any(.labels[]?; .name == "issue: security") | not) |
select(.milestone == null) |
select(any(.labels[]?; .name == $label) | not) |
.number
' | while read issue_number; do
if [ ! -z "$issue_number" ]; then
echo "Labeling issue #$issue_number with $label"
# Add the stale-before-2021 label
curl -s -X POST \
-H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
-H "Accept: application/vnd.github.v3+json" \
"https://api.github.com/repos/${{ github.repository }}/issues/$issue_number/labels" \
-d "{\"labels\": [\"$label\"]}"
echo "Labeled issue #$issue_number"
fi
done