Giter Site home page Giter Site logo

noqcks / pull-request-size Goto Github PK

View Code? Open in Web Editor NEW
152.0 5.0 38.0 3.1 MB

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

Home Page: https://github.com/marketplace/pull-request-size

License: MIT License

JavaScript 100.00%
github-app productivity pull-requests probot

pull-request-size's Introduction

Pull Request Size logo

License: MIT Sentry Build Status codecov Dependabot

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

pull request comment

Install

👉 Install via GitHub marketplace 🌟

This app is free to use for personal and public organization repos. There is a paid plan for use with private organization repos.

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.

Billing Issues

image

When an invoiced GitHub account tries to sign up for a subscription to Pull Request Size via the GitHub Marketplace they are met with the following message: "Unfortunately, invoiced customers cannot purchase paid plans on the Github Marketplace."

To get around GitHub billing limitations, we also offer payment via Stripe invoicing. Please follow these steps to complete:

  1. Sign up for the Free plan on the GitHub Marketplace listing
  2. Send an email to [email protected] with a company name, email of a billing contact, and the name of your GitHub Organization. Please indicate whether you would like a yearly or monthly invoice.
  3. Once the Stripe invoice has been paid, you will be added to Pro plan.

Configuration

This app requires no configuration out of the box. However, you can exclude certain files from being counted towards a PR's size, and you can add custom labels in Github.

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 documentation 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

Size Comments

Size Comments are comments made on the size of a pull request. By default, Pull Request Size will not add any comments to a pull request. However, you can enable comments by adding a comment to a label in the .github/labels.yml file.

Any comment that is not empty will be added to the pull request. Leave this key empty to disable comments for a size.

XXL:
  name: size/XXL
  lines: 1000
  color: E50009
  comment: |
    # Whoa! Easy there, Partner!
    This PR is too big. Please break it up into smaller PRs.

Feedback, suggestions and bug reports

Please create an issue here: https://github.com/noqcks/pull-request-size/issues

License

MIT © 2022 Benji Visser [email protected]

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.