-
Notifications
You must be signed in to change notification settings - Fork 7.8k
33 lines (31 loc) · 1.26 KB
/
close_issues.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# This workflow will close issues that do not have labels or additional comments.
# Trigger manually.
name: "Close Issues"
on:
workflow_dispatch:
jobs:
close_issues:
runs-on: ubuntu-latest
steps:
- name: Close issues without label or comment
uses: actions/github-script@v3
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
const repo = context.repo;
let page = 1;
let issues = [];
while (true) {
const result = await github.issues.listForRepo({...repo, per_page: 100, page: page});
if (result.data.length === 0) break;
issues = issues.concat(result.data);
page += 1;
}
for (let { number } of issues) {
const issueData = await github.issues.get({...repo, issue_number: number});
const comments = await github.issues.listComments({...repo, issue_number: number});
if (issueData.data.labels.length === 0 && comments.data.length < 1) {
await github.issues.update({...repo, issue_number: number, state: 'closed'});
await github.issues.createComment({...repo, issue_number: number, body: 'Issue closed as it does not have any labels or comments.'});
}
}