Skip to content

Commit 3538aa9

Browse files
authored
Merge pull request #226 from Asymtode712/CloseIssFeat
added workflow for closing old issues
2 parents c1b5f2b + 018f1a1 commit 3538aa9

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed

.github/workflows/close-old-issue.yml

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
name: Close Old Issues
2+
on:
3+
schedule:
4+
- cron: "0 0 * * *"
5+
6+
jobs:
7+
close-issues:
8+
runs-on: ubuntu-latest
9+
10+
steps:
11+
- name: Checkout Repository
12+
uses: actions/checkout@v4
13+
14+
- name: Close Old Issues
15+
run: |
16+
open_issues=$(curl -s -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
17+
"https://api.github.com/repos/${{ github.repository }}/issues?state=open" \
18+
| jq -r '.[] | .number')
19+
for issue in $open_issues; do
20+
# Get the last updated timestamp of the issue
21+
last_updated=$(curl -s -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
22+
"https://api.github.com/repos/${{ github.repository }}/issues/$issue" \
23+
| jq -r '.updated_at')
24+
days_since_update=$(( ( $(date +%s) - $(date -d "$last_updated" +%s) ) / 86400 ))
25+
if [ $days_since_update -gt 30 ]; then
26+
curl -s -X PATCH -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
27+
-H "Accept: application/vnd.github.v3+json" \
28+
-d '{"state":"closed"}' \
29+
"https://api.github.com/repos/${{ github.repository }}/issues/$issue"
30+
31+
# Add a comment explaining when the issue will be closed
32+
curl -s -X POST -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
33+
-H "Accept: application/vnd.github.v3+json" \
34+
-d '{"body":"This issue has been automatically closed because it has been inactive for more than 30 days. If you believe this is still relevant, feel free to reopen it or create a new one. Thank you!"}' \
35+
"https://api.github.com/repos/${{ github.repository }}/issues/$issue/comments"
36+
fi
37+
done

0 commit comments

Comments
 (0)