From 9e4cab2af937abd7bf0ab7e1388e5b7754465682 Mon Sep 17 00:00:00 2001 From: Pete Davison Date: Sat, 15 Oct 2022 17:47:39 +0000 Subject: [PATCH] feat: add actions to auto label issues --- .github/workflows/issue-awaiting-response.yml | 42 +++++++++++++++++++ .github/workflows/issue-needs-triage.yml | 28 +++++++++++++ 2 files changed, 70 insertions(+) create mode 100644 .github/workflows/issue-awaiting-response.yml create mode 100644 .github/workflows/issue-needs-triage.yml diff --git a/.github/workflows/issue-awaiting-response.yml b/.github/workflows/issue-awaiting-response.yml new file mode 100644 index 00000000..dfc75e12 --- /dev/null +++ b/.github/workflows/issue-awaiting-response.yml @@ -0,0 +1,42 @@ +name: issue awaiting response + +on: + issue_comment: + types: [created] + +jobs: + issue-awaiting-response: + runs-on: ubuntu-latest + steps: + - uses: actions/github-script@v6 + with: + script: | + const issue = await github.rest.issues.get({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: context.issue.number, + }) + const comments = await github.paginate( + github.rest.issues.listComments, { + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: context.issue.number, + } + ) + const labels = await github.paginate( + github.rest.issues.listLabelsOnIssue, { + issue_number: context.issue.number, + owner: context.repo.owner, + repo: context.repo.repo, + } + ) + if (labels.find(label => label.name === 'awaiting response')) { + if (comments[comments.length-1].user?.login === issue.data.user?.login) { + github.rest.issues.removeLabel({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: context.issue.number, + name: 'awaiting response' + }) + } + } diff --git a/.github/workflows/issue-needs-triage.yml b/.github/workflows/issue-needs-triage.yml new file mode 100644 index 00000000..8bece02e --- /dev/null +++ b/.github/workflows/issue-needs-triage.yml @@ -0,0 +1,28 @@ +name: issue needs triage + +on: + issues: + types: [opened] + +jobs: + needs-triage: + runs-on: ubuntu-latest + steps: + - uses: actions/github-script@v6 + with: + script: | + const labels = await github.paginate( + github.rest.issues.listLabelsOnIssue, { + issue_number: context.issue.number, + owner: context.repo.owner, + repo: context.repo.repo, + } + ) + if (labels.length === 0) { + github.rest.issues.addLabels({ + issue_number: context.issue.number, + owner: context.repo.owner, + repo: context.repo.repo, + labels: ['needs triage'] + }) + }