Issue Label Enforcer is a lightweight GitHub Action that checks whether a newly opened or edited issue has at least one label.
It helps maintainers keep issue triage consistent by requiring labels before an issue workflow is considered valid.
Create a workflow file such as .github/workflows/issue-label-enforcer.yml:
name: Issue Label Enforcer
on:
issues:
types:
- opened
- edited
- labeled
- unlabeled
permissions:
issues: read
contents: read
jobs:
enforce-labels:
runs-on: ubuntu-latest
steps:
- name: Check issue labels
uses: brandonhimpfen/issue-label-enforcer@v1name: Issue Label Enforcer
on:
issues:
types:
- opened
- edited
- labeled
- unlabeled
permissions:
issues: read
contents: read
jobs:
enforce-labels:
runs-on: ubuntu-latest
steps:
- name: Check issue labels
uses: brandonhimpfen/issue-label-enforcer@v1
with:
min-labels: 2name: Issue Label Enforcer
on:
issues:
types:
- opened
- edited
- labeled
- unlabeled
permissions:
issues: read
contents: read
jobs:
enforce-labels:
runs-on: ubuntu-latest
steps:
- name: Check issue labels
uses: brandonhimpfen/issue-label-enforcer@v1
with:
message: Please add at least one label before continuing triage.| Input | Required | Default | Description |
|---|---|---|---|
github-token |
No | ${{ github.token }} |
GitHub token used to read issue data. |
min-labels |
No | 1 |
Minimum number of labels required on an issue. |
message |
No | This issue must include at least one label. |
Failure message shown when the issue does not meet the label requirement. |
ignore-pull-requests |
No | true |
Skips pull requests when issue events are triggered by pull request activity. |
The action reads the issue from the GitHub event payload and counts the labels attached to it.
If the issue has fewer labels than required, the workflow fails. If the issue meets the requirement, the workflow passes.
By default, pull requests are ignored because GitHub pull requests can also appear in issue-related event payloads.
Use the action with these issue event types:
on:
issues:
types:
- opened
- edited
- labeled
- unlabeledThis allows the check to run when an issue is created, modified, labeled, or has labels removed.
The action only needs read access:
permissions:
issues: read
contents: readInstall dependencies:
npm installRun tests:
npm testBuild the bundled action file:
npm run buildMIT License.