From cce3fb440fd8afe88740df464dc6749857ab4baf Mon Sep 17 00:00:00 2001 From: aler9 <46489434+aler9@users.noreply.github.com> Date: Sat, 31 Dec 2022 16:57:58 +0100 Subject: [PATCH] add issue-lock workflow --- .github/workflows/issue-lock.yml | 50 ++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 .github/workflows/issue-lock.yml diff --git a/.github/workflows/issue-lock.yml b/.github/workflows/issue-lock.yml new file mode 100644 index 00000000..4a95f381 --- /dev/null +++ b/.github/workflows/issue-lock.yml @@ -0,0 +1,50 @@ +name: issue-lock + +on: + schedule: + - cron: '40 15 * * *' + workflow_dispatch: + +jobs: + issue-lock: + runs-on: ubuntu-latest + + steps: + - uses: actions/github-script@v6 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + script: | + const { repo: { owner, repo } } = context; + + const now = new Date(); + + for await (const res of github.paginate.iterator( + github.rest.issues.listForRepo, { + owner, + repo, + state: 'closed', + })) { + for (const issue of res.data) { + if (issue.locked) { + continue; + } + + if ((now - new Date(issue.updated_at)) < 1000*60*60*24*31*6) { + continue; + } + + await github.rest.issues.createComment({ + owner, + repo, + issue_number: issue.number, + body: 'This issue is being locked automatically because it has been closed for more than 6 months.\n' + + 'Please open a new issue in case you encounter a similar problem.', + }); + + github.rest.issues.lock({ + owner, + repo, + issue_number: issue.number, + }); + } + }