ci: add a spam closing workflow
This commit is contained in:
parent
34ef1157a6
commit
c12b4a1565
2 changed files with 67 additions and 0 deletions
38
.github/scripts/close_spam.js
vendored
Normal file
38
.github/scripts/close_spam.js
vendored
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
module.exports = async ({ github, context }) => {
|
||||
const { data } = await github.rest.repos.getCollaboratorPermissionLevel({
|
||||
...context.repo,
|
||||
username: context.actor
|
||||
});
|
||||
if (!data.permission.includes("triage")) {
|
||||
await github.log.error("Workflow called with insufficient permissions!");
|
||||
return;
|
||||
}
|
||||
|
||||
let target = context.payload.issue;
|
||||
if (target) {
|
||||
await github.rest.issues.update({
|
||||
...context.repo,
|
||||
issue_number: target.number,
|
||||
state: "closed",
|
||||
state_reason: "not_planned",
|
||||
title: "[spam]",
|
||||
body: "",
|
||||
type: null,
|
||||
});
|
||||
} else {
|
||||
target = context.payload.pull_request;
|
||||
await github.rest.pulls.update({
|
||||
...context.repo,
|
||||
pull_number: target.number,
|
||||
state: "closed",
|
||||
title: "[spam]",
|
||||
body: "",
|
||||
});
|
||||
}
|
||||
|
||||
await github.rest.issues.lock({
|
||||
...context.repo,
|
||||
issue_number: target.number,
|
||||
lock_reason: "spam",
|
||||
});
|
||||
};
|
||||
29
.github/workflows/spam.yml
vendored
Normal file
29
.github/workflows/spam.yml
vendored
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
name: Close as spam
|
||||
|
||||
on:
|
||||
issues:
|
||||
types: [labeled]
|
||||
pull_request_target:
|
||||
types: [labeled]
|
||||
|
||||
permissions:
|
||||
issues: write
|
||||
pull-requests: write
|
||||
|
||||
jobs:
|
||||
spam:
|
||||
runs-on: ubuntu-latest
|
||||
if: github.event.label.name == 'spam'
|
||||
steps:
|
||||
- name: Checkout script
|
||||
uses: actions/checkout@v5
|
||||
with:
|
||||
sparse-checkout: .github/scripts/close_spam.js
|
||||
sparse-checkout-cone-mode: false
|
||||
|
||||
- name: Run script
|
||||
uses: actions/github-script@v7
|
||||
with:
|
||||
script: |
|
||||
const script = require('./.github/scripts/close_spam.js')
|
||||
await script({github, context})
|
||||
Loading…
Add table
Add a link
Reference in a new issue