diff options
author | dundargoc <33953936+dundargoc@users.noreply.github.com> | 2022-12-23 12:54:30 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-12-23 12:54:30 +0100 |
commit | 788eb654941efe1f725143d7e1bc9b5236ecbb37 (patch) | |
tree | c707c771d5c85e369d09ae3821f5a400e8d54445 | |
parent | 30f606fc602f835fbed869140d3d658e24129c22 (diff) | |
download | rneovim-788eb654941efe1f725143d7e1bc9b5236ecbb37.tar.gz rneovim-788eb654941efe1f725143d7e1bc9b5236ecbb37.tar.bz2 rneovim-788eb654941efe1f725143d7e1bc9b5236ecbb37.zip |
ci: remove needs:response label if author responds (#21489)
ci: remove "needs:response" label if author responds
The default behavior of the stale action is to indiscriminately remove
the `needs:response` label for any activity whatsoever, from anyone. The
other option is to turn it off completely, meaning the maintainers needs
to manually remove the label themselves when the author responds for an
issue to not close automatically. Neither of these behaviors are useful
to us.
-rw-r--r-- | .github/scripts/unstale.js | 19 | ||||
-rw-r--r-- | .github/workflows/stale.yml | 18 |
2 files changed, 36 insertions, 1 deletions
diff --git a/.github/scripts/unstale.js b/.github/scripts/unstale.js new file mode 100644 index 0000000000..f645fca5cb --- /dev/null +++ b/.github/scripts/unstale.js @@ -0,0 +1,19 @@ +module.exports = async ({ github, context }) => { + const commenter = context.actor; + const issue = await github.rest.issues.get({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: context.issue.number, + }); + const author = issue.data.user.login; + const labels = issue.data.labels.map((e) => e.name); + + if (author === commenter && labels.includes("needs:response")) { + github.rest.issues.removeLabel({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: context.issue.number, + name: "needs:response", + }); + } +}; diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index 40f6616110..c1d3ee3ff3 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -3,9 +3,11 @@ on: schedule: - cron: '30 1 * * *' # Run every day at 01:30 workflow_dispatch: + issue_comment: jobs: - stale: + close: + if: github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' runs-on: ubuntu-latest permissions: issues: write @@ -24,3 +26,17 @@ jobs: close-pr-message: "This PR has been closed since a request for changes has not been answered for 30 days. It can be reopened when the requested changes are provided." + + remove-label: + if: github.event_name == 'issue_comment' + runs-on: ubuntu-latest + permissions: + issues: write + pull-requests: write + steps: + - uses: actions/checkout@v3 + - uses: actions/github-script@v6 + with: + script: | + const script = require('./.github/scripts/unstale.js') + await script({github, context}) |