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: 10 months 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 4 years ago)
- Default Branch: main
- Last Pushed: 2025-01-27T03:10:18.000Z (about 1 year ago)
- Last Synced: 2025-03-28T06:04:24.442Z (10 months 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