Pull Request Size
Pull Request Size is a GitHub App that applies size/*
labels to Pull Requests based on the total lines of code changed (additions and deletions).
Install
If you'd like to host it yourself, see the Github docs on how to create a GitHub application.
If hosting yourself, you'll need the app to request these permissions:
Repository Permisions: metadata:read-only, pull-request:read-write, single-file:read (.gitattributes, .github/labels.yml)
Subscribe to events: Pull Requests
Sizing
Name | Description |
---|---|
size/XS |
Denotes a PR that changes 0-9 lines. |
size/S |
Denotes a PR that changes 10-29 lines. |
size/M |
Denotes a PR that changes 30-99 lines. |
size/L |
Denotes a PR that changes 100-499 lines. |
size/XL |
Denotes a PR that changes 500-999 lines. |
size/XXL |
Denotes a PR that changes 1000+ lines. |
Pull Request Size calculates the size of a PR as
total additions + total deletions - (all generated¹ file additions/deletions)
¹ A generated file is either one of the standard generated files as defined in noqcks/generated or defined with linguist-generated=true
in a .gitattributes
file.
Excluding Files
If you have files that you would not like to be included in the calculation for a Pull Request's size, you can modify the .gitattributes
file with the flag linguist-generated=true
on your file or file pattern.
For example to mark all .meta
files as generated, add this line to .gitattributes
*.meta linguist-generated=true
A .gitattributes
file uses the same rules for matching as .gitignore
files. See GitHub documenation on the linguist-generated flag for more info.
Custom Labels
You can set custom label names and colors by checking in the file .github/labels.yml
to every repository you'd like to customize
XS:
name: size/XS
lines: 0
color: 3CBF00
S:
name: size/S
lines: 10
color: 5D9801
M:
name: size/M
lines: 30
color: 7F7203
L:
name: size/L
lines: 100
color: A14C05
XL:
name: size/XL
lines: 500
color: C32607
XXL:
name: size/XXL
lines: 1000
color: E50009
Setup
This GitHub app runs on probot. It makes it very easy to create new GitHub apps. If you want to run or develop pull-request-size just follow the commands below. hit localhost:3000, and follow the probot instructions.
# Install dependencies
npm install
# Run the bot
npm start
License
MIT © 2021 Benji Visser [email protected]