ci: automation for issue triage board (#39464)
This commit is contained in:
parent
effafdf498
commit
dbff7bb531
3 changed files with 67 additions and 1 deletions
1
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
1
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
|
@ -2,6 +2,7 @@ name: Bug Report
|
||||||
description: Report an Electron bug
|
description: Report an Electron bug
|
||||||
title: "[Bug]: "
|
title: "[Bug]: "
|
||||||
labels: "bug :beetle:"
|
labels: "bug :beetle:"
|
||||||
|
projects: ["electron/90"]
|
||||||
body:
|
body:
|
||||||
- type: checkboxes
|
- type: checkboxes
|
||||||
attributes:
|
attributes:
|
||||||
|
|
25
.github/workflows/issue-labeled.yml
vendored
25
.github/workflows/issue-labeled.yml
vendored
|
@ -8,7 +8,30 @@ permissions: # added using https://github.com/step-security/secure-workflows
|
||||||
contents: read
|
contents: read
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
issue-labeled:
|
issue-labeled-blocked:
|
||||||
|
name: blocked/* label added
|
||||||
|
if: startsWith(github.event.label.name, 'blocked/')
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Generate GitHub App token
|
||||||
|
id: generate-token
|
||||||
|
env:
|
||||||
|
RELEASE_BOARD_GH_APP_CREDS: ${{ secrets.RELEASE_BOARD_GH_APP_CREDS }}
|
||||||
|
run: |
|
||||||
|
set -eo pipefail
|
||||||
|
TOKEN=$(npx @electron/github-app-auth --creds=$RELEASE_BOARD_GH_APP_CREDS --org electron)
|
||||||
|
echo "TOKEN=$TOKEN" >> "$GITHUB_OUTPUT"
|
||||||
|
- name: Set status
|
||||||
|
if: ${{ steps.generate-token.outputs.TOKEN }}
|
||||||
|
uses: github/update-project-action@2d475e08804f11f4022df7e21f5816531e97cb64 # v2
|
||||||
|
with:
|
||||||
|
github_token: ${{ steps.generate-token.outputs.TOKEN }}
|
||||||
|
organization: electron
|
||||||
|
project_number: 90
|
||||||
|
content_id: ${{ github.event.issue.node_id }}
|
||||||
|
field: Status
|
||||||
|
value: 🛑 Blocked
|
||||||
|
issue-labeled-blocked-need-repro:
|
||||||
name: blocked/need-repro label added
|
name: blocked/need-repro label added
|
||||||
if: github.event.label.name == 'blocked/need-repro'
|
if: github.event.label.name == 'blocked/need-repro'
|
||||||
permissions:
|
permissions:
|
||||||
|
|
42
.github/workflows/issue-unlabeled.yml
vendored
Normal file
42
.github/workflows/issue-unlabeled.yml
vendored
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
name: Issue Unlabeled
|
||||||
|
|
||||||
|
on:
|
||||||
|
issues:
|
||||||
|
types: [unlabeled]
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
issue-unlabeled-blocked:
|
||||||
|
name: All blocked/* labels removed
|
||||||
|
if: startsWith(github.event.label.name, 'blocked/')
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Check for any blocked labels
|
||||||
|
id: check-for-blocked-labels
|
||||||
|
run: |
|
||||||
|
set -eo pipefail
|
||||||
|
BLOCKED_LABEL_COUNT=$(echo '${{ toJSON(github.event.issue.labels.*.name) }}' | jq '[ .[] | select(startswith("blocked/")) ] | length')
|
||||||
|
if [[ $BLOCKED_LABEL_COUNT -eq 0 ]]; then
|
||||||
|
echo "NOT_BLOCKED=1" >> "$GITHUB_OUTPUT"
|
||||||
|
fi
|
||||||
|
- name: Generate GitHub App token
|
||||||
|
if: ${{ steps.check-for-blocked-labels.outputs.NOT_BLOCKED }}
|
||||||
|
id: generate-token
|
||||||
|
env:
|
||||||
|
RELEASE_BOARD_GH_APP_CREDS: ${{ secrets.RELEASE_BOARD_GH_APP_CREDS }}
|
||||||
|
run: |
|
||||||
|
set -eo pipefail
|
||||||
|
TOKEN=$(npx @electron/github-app-auth --creds=$RELEASE_BOARD_GH_APP_CREDS --org electron)
|
||||||
|
echo "TOKEN=$TOKEN" >> "$GITHUB_OUTPUT"
|
||||||
|
- name: Set status
|
||||||
|
if: ${{ steps.generate-token.outputs.TOKEN }}
|
||||||
|
uses: github/update-project-action@2d475e08804f11f4022df7e21f5816531e97cb64 # v2
|
||||||
|
with:
|
||||||
|
github_token: ${{ steps.generate-token.outputs.TOKEN }}
|
||||||
|
organization: electron
|
||||||
|
project_number: 90
|
||||||
|
content_id: ${{ github.event.issue.node_id }}
|
||||||
|
field: Status
|
||||||
|
value: 📥 Was Blocked
|
Loading…
Reference in a new issue