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'] + }) + }