Skip to content

Commit c727299

Browse files
authored
Add stale workflow
1 parent 847e50e commit c727299

File tree

1 file changed

+50
-0
lines changed

1 file changed

+50
-0
lines changed

.github/workflows/stale.yml

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
name: Close and Mark Stale 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: Close and Mark Stale Issues
12+
uses: actions/github-script@v4
13+
with:
14+
script: |
15+
const daysBeforeClosing = 180;
16+
const staleLabel = 'stale';
17+
const token = process.env.GITHUB_TOKEN;
18+
const octokit = new Octokit({ auth: token });
19+
20+
async function closeAndMarkStaleIssues() {
21+
const { data: issues } = await octokit.rest.issues.listForRepo({
22+
owner: context.repo.owner,
23+
repo: context.repo.repo,
24+
state: 'open'
25+
});
26+
27+
const cutoffDate = new Date();
28+
cutoffDate.setDate(cutoffDate.getDate() - daysBeforeClosing);
29+
30+
for (const issue of issues) {
31+
const issueDate = new Date(issue.updated_at);
32+
if (issueDate < cutoffDate) {
33+
await octokit.rest.issues.update({
34+
owner: context.repo.owner,
35+
repo: context.repo.repo,
36+
issue_number: issue.number,
37+
state: 'closed'
38+
});
39+
40+
await octokit.rest.issues.addLabels({
41+
owner: context.repo.owner,
42+
repo: context.repo.repo,
43+
issue_number: issue.number,
44+
labels: [staleLabel]
45+
});
46+
}
47+
}
48+
}
49+
50+
closeAndMarkStaleIssues();

0 commit comments

Comments
 (0)