{"id":13561382,"url":"https://github.com/noqcks/pull-request-size","last_synced_at":"2025-10-10T03:06:29.777Z","repository":{"id":39699940,"uuid":"155721197","full_name":"noqcks/pull-request-size","owner":"noqcks","description":"Applies labels to Pull Requests based on the total lines of code changed.","archived":false,"fork":false,"pushed_at":"2025-08-08T08:57:33.000Z","size":5145,"stargazers_count":164,"open_issues_count":15,"forks_count":42,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-08-08T10:30:35.879Z","etag":null,"topics":["github-app","probot","productivity","pull-requests"],"latest_commit_sha":null,"homepage":"https://github.com/marketplace/pull-request-size","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/noqcks.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":["noqcks"]}},"created_at":"2018-11-01T13:41:56.000Z","updated_at":"2025-08-01T23:34:21.000Z","dependencies_parsed_at":"2024-01-26T00:29:09.515Z","dependency_job_id":"d2ccfb51-5947-4c1b-b058-b612ef68ec02","html_url":"https://github.com/noqcks/pull-request-size","commit_stats":{"total_commits":135,"total_committers":10,"mean_commits":13.5,"dds":0.6666666666666667,"last_synced_commit":"ba1d69a4e54908f7ecc31f8575256ff21cb9a908"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/noqcks/pull-request-size","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/noqcks%2Fpull-request-size","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/noqcks%2Fpull-request-size/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/noqcks%2Fpull-request-size/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/noqcks%2Fpull-request-size/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/noqcks","download_url":"https://codeload.github.com/noqcks/pull-request-size/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/noqcks%2Fpull-request-size/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279002552,"owners_count":26083417,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-10T02:00:06.843Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["github-app","probot","productivity","pull-requests"],"created_at":"2024-08-01T13:00:55.553Z","updated_at":"2025-10-10T03:06:29.758Z","avatar_url":"https://github.com/noqcks.png","language":"JavaScript","funding_links":["https://github.com/sponsors/noqcks"],"categories":["JavaScript","Code Reviews"],"sub_categories":[],"readme":"# Pull Request Size \u003cimg src=\"static/logo.png\" alt=\"logo\" width=\"38\"\u003e\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Sentry](https://img.shields.io/badge/sentry-enabled-green)](https://sentry.io)\n[![Build Status](https://github.com/noqcks/pull-request-size/workflows/Test/badge.svg)](https://github.com/noqcks/pull-request-size/actions)\n[![Dependabot](https://badgen.net/badge/Dependabot/enabled/green?icon=dependabot)](https://dependabot.com/)\n\nPull Request Size is a GitHub App that applies `size/*` labels to Pull Requests based on the total lines of code changed (additions and deletions).\n\n\u003cimg width=\"767\" alt=\"pull request comment\" src=\"https://user-images.githubusercontent.com/4740147/47858607-d7e05f80-ddc2-11e8-97d9-247033cc9a12.png\"\u003e\n\n## Install\n\n👉 **Install via [GitHub marketplace](https://github.com/marketplace/pull-request-size/)** 🌟\n\n_This app is free to use for personal and public organization repos. There is a paid plan for\nuse with private organization repos._\n\n## Sizing\n\n| Name | Description |\n| ---- | ----------- |\n| \u003ca id=\"size/XS\" href=\"#size/XS\"\u003e`size/XS`\u003c/a\u003e | Denotes a PR that changes 0-9 lines. |\n| \u003ca id=\"size/S\" href=\"#size/S\"\u003e`size/S`\u003c/a\u003e | Denotes a PR that changes 10-29 lines. |\n| \u003ca id=\"size/M\" href=\"#size/M\"\u003e`size/M`\u003c/a\u003e | Denotes a PR that changes 30-99 lines. |\n| \u003ca id=\"size/L\" href=\"#size/L\"\u003e`size/L`\u003c/a\u003e | Denotes a PR that changes 100-499 lines. |\n| \u003ca id=\"size/XL\" href=\"#size/XL\"\u003e`size/XL`\u003c/a\u003e | Denotes a PR that changes 500-999 lines. |\n| \u003ca id=\"size/XXL\" href=\"#size/XXL\"\u003e`size/XXL`\u003c/a\u003e | Denotes a PR that changes 1000+ lines. |\n\nPull Request Size calculates the size of a PR as\n\n```\ntotal additions + total deletions - (all generated¹ file additions/deletions)\n```\n\n¹ A generated file is either one of the standard generated files as defined in [noqcks/generated](https://github.com/noqcks/generated/blob/master/lib/generated.js) or defined with `linguist-generated=true` in a `.gitattributes` file.\n\n## Billing Issues\n\n\u003cimg width=\"579\" alt=\"image\" src=\"https://user-images.githubusercontent.com/4740147/202276762-3c13b106-1194-4725-80ba-a65e8ffaffc0.png\"\u003e\n\nWhen 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.\"\n\nTo get around GitHub billing limitations, we also offer payment via Stripe invoicing. Please follow these steps to complete:\n\n1. Sign up for the Free plan on the [GitHub Marketplace listing](https://github.com/marketplace/pull-request-size)\n2. Send an email to benji@093b.org 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.\n3. Once the Stripe invoice has been paid, you will be added to Pro plan.\n\n## Configuration\n\nThis app requires no configuration out of the box. However, you can exclude certain files\nfrom being counted towards a PR's size, and you can add custom labels in Github.\n\n### Excluding Files\n\nIf 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.\n\nFor example to mark all `.meta` files as generated, add this line to `.gitattributes`\n\n```gitattributes\n*.meta linguist-generated=true\n```\n\nA `.gitattributes` file uses the same rules for matching as `.gitignore` files. See [GitHub documentation](https://docs.github.com/en/github/administering-a-repository/managing-repository-settings/customizing-how-changed-files-appear-on-github) on the linguist-generated flag for more info.\n\n### Custom Labels\n\nYou can set custom label names and colors by checking in the file `.github/labels.yml` to every repository you'd like to customize\n\n```yaml\nXS:\n  name: size/XS\n  lines: 0\n  color: 3CBF00\nS:\n  name: size/S\n  lines: 10\n  color: 5D9801\nM:\n  name: size/M\n  lines: 30\n  color: 7F7203\nL:\n  name: size/L\n  lines: 100\n  color: A14C05\nXL:\n  name: size/XL\n  lines: 500\n  color: C32607\nXXL:\n  name: size/XXL\n  lines: 1000\n  color: E50009\n```\n\n### Size Comments\n\nSize Comments are comments made on the size of a pull request. By default, Pull Request Size\nwill not add any comments to a pull request. However, you can enable comments by adding\na comment to a label in the `.github/labels.yml` file.\n\nAny comment that is not empty will be added to the pull request. Leave this key empty\nto disable comments for a size.\n\n```yaml\nXXL:\n  name: size/XXL\n  lines: 1000\n  color: E50009\n  comment: |\n    # Whoa! Easy there, Partner!\n    This PR is too big. Please break it up into smaller PRs.\n```\n\n## Feedback, suggestions and bug reports\n\nPlease create an issue here: https://github.com/noqcks/pull-request-size/issues\n\n## License\n\n[MIT](LICENSE) © 2022 Benji Visser \u003cbenji@093b.org\u003e\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnoqcks%2Fpull-request-size","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnoqcks%2Fpull-request-size","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnoqcks%2Fpull-request-size/lists"}