From 04782baa6ef6e63831b1ebcb79fbf8d0342036cb Mon Sep 17 00:00:00 2001 From: Marc Philipp Date: Sun, 1 Sep 2024 12:35:44 +0200 Subject: [PATCH] Add GH Actions workflow to post-process and validate closed issues --- ...sue-labels.yml => label-opened-issues.yml} | 2 +- .github/workflows/unlabel-closed-issues.yml | 39 +++++++++++++++++++ 2 files changed, 40 insertions(+), 1 deletion(-) rename .github/workflows/{issue-labels.yml => label-opened-issues.yml} (92%) create mode 100644 .github/workflows/unlabel-closed-issues.yml diff --git a/.github/workflows/issue-labels.yml b/.github/workflows/label-opened-issues.yml similarity index 92% rename from .github/workflows/issue-labels.yml rename to .github/workflows/label-opened-issues.yml index b91cf84c462b..066596b43c85 100644 --- a/.github/workflows/issue-labels.yml +++ b/.github/workflows/label-opened-issues.yml @@ -1,4 +1,4 @@ -name: Label new issues +name: Add label to opened issues on: issues: types: diff --git a/.github/workflows/unlabel-closed-issues.yml b/.github/workflows/unlabel-closed-issues.yml new file mode 100644 index 000000000000..ff96f0a70468 --- /dev/null +++ b/.github/workflows/unlabel-closed-issues.yml @@ -0,0 +1,39 @@ +name: Remove label from closed issues +on: + issues: + types: + - closed +jobs: + label_issues: + runs-on: ubuntu-latest + permissions: + issues: write + steps: + - uses: actions/github-script@v7 + with: + script: | + const originalLabels = context.issue.labels.map(l => l.name); + const newLabels = originalLabels.filter(l => l !== "status: in progress" && l !== "status: new"); + if (newLabels.length !== originalLabels.length) { + github.rest.issues.update({ + issue_number: context.issue.number, + owner: context.repo.owner, + repo: context.repo.repo, + labels: newLabels, + }); + } + const statusLabels = newLabels.filter(l => l.startsWith("status: ")); + if (context.issue.state_reason === "not planned" && statusLabels.length === 0) { + github.rest.issues.createComment({ + issue_number: context.issue.number, + owner: context.repo.owner, + repo: context.repo.repo, + body: "Please assign a status label to this issue.", + }); + github.rest.issues.update({ + issue_number: context.issue.number, + owner: context.repo.owner, + repo: context.repo.repo, + state: "open", + }); + }