pull-request-size icon indicating copy to clipboard operation
pull-request-size copied to clipboard

Applies labels to Pull Requests based on the total lines of code changed.

Pull Request Size

License: MIT

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).

screen shot 2018-11-01 at 10 42 27 am

Install

👉 Install via GitHub marketplace 🌟


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]