https://github.com/joaocarmo/pr-labeler
A GitHub bot to label PRs automatically based on title and body against list of defined labels.
https://github.com/joaocarmo/pr-labeler
automation bot github github-app github-bot label labeler pr probot probot-app tag tags
Last synced: 26 days ago
JSON representation
A GitHub bot to label PRs automatically based on title and body against list of defined labels.
- Host: GitHub
- URL: https://github.com/joaocarmo/pr-labeler
- Owner: joaocarmo
- License: mit
- Created: 2021-09-11T14:42:18.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2025-01-27T03:10:18.000Z (3 months ago)
- Last Synced: 2025-03-28T06:04:24.442Z (about 1 month ago)
- Topics: automation, bot, github, github-app, github-bot, label, labeler, pr, probot, probot-app, tag, tags
- Language: TypeScript
- Homepage: https://github.com/marketplace/pull-request-auto-labeler
- Size: 359 KB
- Stars: 4
- Watchers: 2
- Forks: 2
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
![]()
# PR Labeler

A GitHub App built with [Probot](https://github.com/probot/probot) that enables
a GitHub bot to label PRs automatically based on title and body against a list
of defined labels.## Config
Add a `pr-labeler.yml` configuration file to your repository's `.github`
directory with the following content:```yaml
# .github/pr-labeler.yml
# The bot always updates the labels, add/remove as necessary [default: false]
alwaysReplace: false
# Treats the text and labels as case sensitive [default: true]
caseSensitive: true
# Array of labels to be applied to the PR [default: []]
customLabels:
# Finds the `text` within the PR title and body and applies the `label`
- text: '#bug'
label: 'bug'
- text: '#test'
label: 'test'
- text: '#feature'
label: 'feature'
# Search the body of the PR for the `text` [default: true]
searchBody: true
# Search the title of the PR for the `text` [default: true]
searchTitle: true
# Search for whole words only [default: false]
wholeWords: false
```## Development
If you want to work on the bot, you can follow the instructions below.
### Setup
```sh
# Install dependencies
pnpm install# Build the bot (we need to transpile TypeScript into JavaScript)
pnpm build# Run the bot
pnpm start
```### Docker
```sh
# 1. Build container
docker build -t pr-labeler .# 2. Start container
docker run -e APP_ID= -e PRIVATE_KEY= pr-labeler
```### Deployment
A few environment variables need to be set in order to deploy the bot:
```sh
# The APP_ID and PRIVATE_KEY are required to authenticate the GitHub App
export APP_ID=
export PRIVATE_KEY=
# Alternatively, you can set the PRIVATE_KEY_PATH to the path of the private key
# export PRIVATE_KEY_PATH=# The WEBHOOK_SECRET is used to verify incoming webhooks from GitHub
export WEBHOOK_SECRET=
```### Contributing
If you have suggestions for how pr-labeler could be improved, or want to report
a bug, open an issue! We'd love all and any contributions.For more, check out the [Contributing Guide](CONTRIBUTING.md).
## License
[MIT](LICENSE) © 2021 João Carmo