Skip to content

Automatically labels your PRs based on branch name patterns like feature/* or fix/*.

License

Notifications You must be signed in to change notification settings

TimonVS/pr-labeler-action

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Repository files navigation

PR Labeler

All Contributors

A GitHub Action that automatically applies labels to your PRs based on branch name patterns like feature/* or fix/*. Can be used in combination with Release Drafter to automatically categorize pull requests.

Usage

Add .github/workflows/pr-labeler.yml with the following:

name: PR Labeler
on:
  pull_request:
    types: [opened]

permissions:
  contents: read

jobs:
  pr-labeler:
    permissions:
      contents: read # for TimonVS/pr-labeler-action to read config file
      pull-requests: write # for TimonVS/pr-labeler-action to add labels in PR
    runs-on: ubuntu-latest
    steps:
      - uses: TimonVS/pr-labeler-action@v5
        with:
          repo-token: ${{ secrets.GITHUB_TOKEN }}
          configuration-path: .github/pr-labeler.yml # optional, .github/pr-labeler.yml is the default value

Configuration

Configure by creating a .github/pr-labeler.yml file.

For example:

feature: ['feature/*', 'feat/*']
fix: fix/*
chore :hammer:: chore/*

Then if a pull request is opened with the branch name feature/218-add-emoji-support the Action will automatically apply the feature label.

Similarly, if a pull requests is opened with the branch name fix/weird-bug or chore/annual-refactoring-job, the Action will apply the fix or chore 🔨 label, respectively.

If the label does not exist in your repo, a new one will be created (with no color and blank description), but it will not be permanently saved to the github.com/<your_repo>/labels page.

Wildcard branches in configuration

You can use * as a wildcard for matching multiple branch names. See https://www.npmjs.com/package/matcher for more information about wildcard options.

Default configuration

When no configuration is provided, the following defaults will be used:

feature: ['feature/*', 'feat/*']
fix: 'fix/*'
chore: 'chore/*'

Contributors ✨

Thanks goes to these wonderful people (emoji key):

Timon van Spronsen
Timon van Spronsen

💻 🤔 ⚠️ 📖
Clemens Bastian
Clemens Bastian

💻 📖 🐛
Hugo van Rijswijk
Hugo van Rijswijk

💻

This project follows the all-contributors specification. Contributions of any kind welcome!