{"id":16530823,"url":"https://github.com/greggigon/brunchyyy","last_synced_at":"2025-10-28T11:30:39.007Z","repository":{"id":39229138,"uuid":"219778252","full_name":"greggigon/brunchyyy","owner":"greggigon","description":"Brunchyyy - a friendly Neighbourhood Branch Naming Police Robot (built with Probot)","archived":false,"fork":false,"pushed_at":"2023-02-03T13:03:04.000Z","size":1921,"stargazers_count":4,"open_issues_count":15,"forks_count":5,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-01T14:44:31.606Z","etag":null,"topics":["github-app","javascript","probot","probot-app"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"isc","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/greggigon.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-11-05T15:27:31.000Z","updated_at":"2023-04-26T08:22:45.000Z","dependencies_parsed_at":"2023-02-18T07:15:29.950Z","dependency_job_id":null,"html_url":"https://github.com/greggigon/brunchyyy","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/greggigon%2Fbrunchyyy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/greggigon%2Fbrunchyyy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/greggigon%2Fbrunchyyy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/greggigon%2Fbrunchyyy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/greggigon","download_url":"https://codeload.github.com/greggigon/brunchyyy/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238638245,"owners_count":19505562,"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","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","javascript","probot","probot-app"],"created_at":"2024-10-11T18:07:15.675Z","updated_at":"2025-10-28T11:30:33.567Z","avatar_url":"https://github.com/greggigon.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Brunchyyy - a friendly Neighbourhood Branch Naming Police Robot\n\n![Build status](https://github.com/greggigon/brunchyyy/workflows/Test%20and%20Lint/badge.svg) ![ISC License](https://img.shields.io/badge/license-ISC-green)\n\n\u003e A GitHub App (Robot) built with [Probot](https://github.com/probot/probot).\n\u003e Robot monitors repositories for branch names and ensures those names are valid.\n\u003e Brunchyyy validates branch names against standard set of branches in [GitFlow](https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow) workflow model.\n\n## How Brunchyyy works\n\nBrunchyyy is monitoring **PUSH** events in the GitHub. As soon as event is received, it will compare if the branch for the event (refs/heads/* element of event payload) has a name that complies with the following requirements:\n\n* non-prefixed branches are only **master** or **develop**\n* prefixed branches use one of the following prefixes: **feature/**, **bugfix/**, **hotfix/** and **release/**, lowercase only\n* branch names schould contain alphanumeric characters, digits and following special characters `-`, `_`, `.` and `#`\n\nIf the branch is named outside of the above rules, by default it will raise an issue against the repository and assign the user who pushed the branch to it.\nIf **Brunchyyy** users would like for the Robot to be a bit more firm, they can use **Brunchyyy** configuration file, to setup branch deletion option.\nIt will cause the offending branch to be **DELETED** instead of **issue raised** against the repository.\n\n## Configuring Brunchyyy\n\nAt this moment, there is only one configuration option for **Brunchyyy**, it tells the Robot if a branch with invalid name should be deleted, instead of having an issue raised against it.\n\nConfiguration is stored in the repository, in **.github** folder in **brunchyyy.yml** file (`.github/brunchyyy.yml`).\n\n```bash\n  2019-11-08 14:49:07 ⌚  Mac in ~/projects/sample-brunchyyy-repository\n  ± |master ✓| → ls .github/\n  brunchyyy.yml\n```\n\n### Defining allowed branches names and prefixes\n\nTo explicitly set what non-prefixed branch names and  which prefixies for branches are allowed, the following can be added to the configuration file:\n\n```yaml\n  allowedBranchNaming: \n    allowedNames: ['master', 'develop']\n    allowedPrefixes: ['feature', 'fix']\n```\nThe configution above will allow branches named `master` and `develop` only, plus any branch prefixed with `feature` or `fix`.\n\n### Deleting not allowed branches if found\n\nThe configuration parameter is called `deleteBranch` and is by default set to `false`.\nTo enable branch delation, add the following attibute to the configuration file:\n\n```yaml\n  deleteBranch: true\n```\n\n## Technicalities\n\nBrunchyyy Bot is build with Probot and Designed to run on AWS Lambda service. [app.yml](app.yml) file constains a list of Permissions required and Events the Bot listens to.\n\nTo build Brunchyyy and run it locally follow the guide for [Probot](https://probot.github.io/docs/development/).\n\nOnce you clone this repository, simply run:\n\n```sh\n# Install dependencies\nnpm install\n\n# Run the bot\nnpm start\n\n# Run tests\nnpm run test\n```\n\nTo build Webpack compressed Lambda function run:\n\n```sh\n  npm run dist\n```\n\nResulting zip file is ready to be uploaded to AWS Lambda function with the following example command:\n\n```sh\n 2019-11-08 15:44:45 ⌚  Mac in ~/projects/brunchy\n± |master ✓| → aws lambda update-function-code --function-name Brunchyyy --zip-file fileb://brunchyyy.bundle.zip\n```\n\n## Contributing\n\nIf you have suggestions for how Brunchyyy could be improved, or want to report a bug, open an issue! We'd love all and any contributions.\n\nOpen issue with suggestion or a PR.\n\n## License\n\n[ISC](LICENSE) © 2019 Greg Gigon \u003cgreg.gigon@gmail.com\u003e (https://greggigon.com/brunchyyy)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgreggigon%2Fbrunchyyy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgreggigon%2Fbrunchyyy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgreggigon%2Fbrunchyyy/lists"}