GitHub Action to manage labels on GitHub (create/rename/update/delete) as code.
⚠️ Note: To use this action, you must have access to the GitHub Actions feature. GitHub Actions are currently only available in public beta. You can apply for the GitHub Actions beta here.
In the repository where you want to perform this action, create the YAML file .github/labels.yml
(you can also set a custom filename) that looks like:
- name: bug
color: d73a4a
description: "Something isn't working"
- name: documentation
color: 0075ca
description: "Improvements or additions to documentation"
- name: duplicate
color: cfd8d7
description: "This issue or pull request already exists"
- name: enhancement
color: a22eef
- name: wontfix_it
color: "000000"
description: "This will not be worked on"
from_name: wontfix
name
,color
anddescription
are the main GitHub label fieldsdescription
can be omit if your want to keep the current onefrom_name
allow to rename a label from one currently available on your repository
name: github
on: push
jobs:
labeler:
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/checkout@v1
-
name: Run Labeler
if: success()
uses: crazy-max/ghaction-github-labeler@v1
with:
yaml_file: .github/labels.yml
exclude: "['help*', '*issue']"
skip_delete: false
dry_run: false
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
With this workflow, the YAML configuration above on a fresh repository, this will:
- Skip
bug
(because samecolor
anddescription
) - Skip
documentation
(because samecolor
anddescription
) - Update
duplicate
(color
is different) - Update
enhancement
(color
is different, keep currentdescription
) - Leave
good first issue
alone (because it matches anexclude
pattern) - Leave
help wanted
alone (because it matches anexclude
pattern) - Delete
invalid
- Delete
question
- Rename
wontfix
towontfix_it
and setcolor
anddescription
Following inputs can be used as step.with
keys
Name | Type | Description |
---|---|---|
yaml_file |
String | Path to YAML file containing labels definitions (default .github/labels.yml ) |
skip_delete |
Bool | If enabled, labels will not be deleted if not found in YAML file (default false ) |
dry_run |
Bool | If enabled, changes will not be applied (default false ) |
exclude |
String¹ | If present, prevents changes to labels that match the given pattern(s). |
¹ The exclude
option accepts only a single string, but that string can contain a YAML array of strings:
exclude: 'help*'
exclude: "['help*', '*bug*', '*issue']"
Following environment variables can be used as step.env
keys
Name | Description |
---|---|
GITHUB_TOKEN |
GITHUB_TOKEN as provided by secrets |
All kinds of contributions are welcome 🙌!
The most basic way to show your support is to star 🌟 the project, or to raise issues 💬
But we're not gonna lie to each other, I'd rather you buy me a beer or two 🍻!
MIT. See LICENSE
for more details.