PHPackages                             spryker-sdk/brancho - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. spryker-sdk/brancho

ActiveLibrary

spryker-sdk/brancho
===================

Builds nice branch names.

096.1k1[2 issues](https://github.com/spryker-sdk/brancho/issues)1PHP

Since Dec 15Pushed 1y ago9 watchersCompare

[ Source](https://github.com/spryker-sdk/brancho)[ Packagist](https://packagist.org/packages/spryker-sdk/brancho)[ RSS](/packages/spryker-sdk-brancho/feed)WikiDiscussions master Synced today

READMEChangelogDependenciesVersions (3)Used By (1)

Brancho
=======

[](#brancho)

[![Build Status](https://github.com/spryker-sdk/brancho/workflows/CI/badge.svg?branch=master)](https://github.com/spryker-sdk/brancho/actions?query=workflow%3ACI+branch%3Amaster)[![codecov](https://camo.githubusercontent.com/eaf3f2f75dc0ea7b276784d1b2df9a21c4d45d9c192ca2035e0044132d85f3d9/68747470733a2f2f636f6465636f762e696f2f67682f737072796b65722d73646b2f6272616e63686f2f6272616e63682f6d61737465722f67726170682f62616467652e7376673f746f6b656e3d4c3174684642396e4f47)](https://codecov.io/gh/spryker-sdk/brancho)[![Minimum PHP Version](https://camo.githubusercontent.com/905c670b6e3bc20026bddbc8923df4d38111e526b88f1252ac4ceb6643299d96/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7068702d253345253344253230382e302d3838393242462e737667)](https://php.net/)[![PHPStan](https://camo.githubusercontent.com/f60d96f7c2579690ab6dfa8918f777fe93a02a92301c661eb38a85861a92b780/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048505374616e2d6c6576656c253230382d627269676874677265656e2e7376673f7374796c653d666c6174)](https://phpstan.org/)

Brancho is a tool that helps to create branches with a defined naming convention. It is also capable of committing your changes.

Installation
------------

[](#installation)

It is recommended that you install Brancho globally:

`composer global require spryker-sdk/brancho`

If you want it in your project go into your project folder and run:

`composer require spryker-sdk/brancho --dev`

### Add brancho to executable path

[](#add-brancho-to-executable-path)

`export PATH=/path/to/vendor/bin`

On Ubuntu 20.04 the path should be `~/.config/composer/vendor/bin`

Configuration
-------------

[](#configuration)

After the installation you will need to configure brancho. The default configuration file is named `.brancho`. You basically only need to define the resolver that should be used.

`resolver: \Full\Qualified\ClassName`

You can also configure filters here, or you add the required filters to your resolver.

Additionally you can have a `.brancho.local` that holds configurations only needed by you e.g. credentials.

Commands
--------

[](#commands)

Brancho offers the following commands:

- `brancho branch` - to create a branch.
- `brancho commit` - to commit changes.

You can use `-h` for both commands to get more information about their usage.

### Command alias

[](#command-alias)

You should create aliases for both commands to make them even more easy to use.

Examples:

- `alias bb=brancho branch`
- `alias bc=brancho commit`
- `alias bca=brancho commit -a`

### Resolver

[](#resolver)

Resolvers are used to resolve branch names. A resolver can receive information from anywhere. To build your own resolver you need to implement the `\Brancho\Resolver\ResolverInterface`. You will then have access to :

- `\Symfony\Component\Console\Input\InputInterface`
- `\Symfony\Component\Console\Output\OutputInterface`
- `\Brancho\Context\ContextInterface`

Symfony's interfaces can be used to retrieve input data or to ask for any user input. Read more about this in [Symfony's documentation](https://symfony.com/doc/current/components/console/helpers/questionhelper.html).

Through the `\Brancho\Context\ContextInterface` you get access to the configuration and to the configured filters.

### Filters

[](#filters)

Filters are used to filter user input into a normalized format. Think of a user input which is copied from somewhere e.g. an issue name or a short description. Usually these contain whitespaces and capital letters which are not allowed in git branch names.

Get Jira API token
------------------

[](#get-jira-api-token)

Go to  and create a new API token.

Example configuration
---------------------

[](#example-configuration)

```
resolver: \Brancho\Resolver\JiraResolver
filters:
    - \Brancho\Filter\Slugify
jira:
    host: https://spryker.atlassian.net/
    username: foo.bar@spryker.com
    password: {YOUR-API-TOKEN}

```

###  Health Score

29

—

LowBetter than 60% of packages

Maintenance30

Infrequent updates — may be unmaintained

Popularity27

Limited adoption so far

Community20

Small or concentrated contributor base

Maturity34

Early-stage or recently created project

 Bus Factor2

2 contributors hold 50%+ of commits

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/10738957?v=4)[Spryker Bot](/maintainers/spryker-bot)[@spryker-bot](https://github.com/spryker-bot)

---

Top Contributors

[![stereomon](https://avatars.githubusercontent.com/u/1382877?v=4)](https://github.com/stereomon "stereomon (20 commits)")[![DmytroKlymanSpryker](https://avatars.githubusercontent.com/u/111562890?v=4)](https://github.com/DmytroKlymanSpryker "DmytroKlymanSpryker (8 commits)")[![dereuromark](https://avatars.githubusercontent.com/u/39854?v=4)](https://github.com/dereuromark "dereuromark (7 commits)")[![vol4onok](https://avatars.githubusercontent.com/u/5063777?v=4)](https://github.com/vol4onok "vol4onok (7 commits)")[![Nidhognit](https://avatars.githubusercontent.com/u/13098647?v=4)](https://github.com/Nidhognit "Nidhognit (1 commits)")[![floriankraemer](https://avatars.githubusercontent.com/u/4996022?v=4)](https://github.com/floriankraemer "floriankraemer (1 commits)")[![brunoviana-spryker](https://avatars.githubusercontent.com/u/119690360?v=4)](https://github.com/brunoviana-spryker "brunoviana-spryker (1 commits)")[![spryker-release-bot](https://avatars.githubusercontent.com/u/26904324?v=4)](https://github.com/spryker-release-bot "spryker-release-bot (1 commits)")

### Embed Badge

![Health badge](/badges/spryker-sdk-brancho/health.svg)

```
[![Health](https://phpackages.com/badges/spryker-sdk-brancho/health.svg)](https://phpackages.com/packages/spryker-sdk-brancho)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
