Skip to content

ahonnecke/jolly-brancher

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

jolly_brancher

pre-commit.ci status

A sweet branch creation suite

Description

The overarching goal here is to facilitate developer time and remove duplicative work.

As a developer, I am more productive (and more descriptive) when I only have to write the description for what I'm working one one time (or barring that, as few times as possible).

In order to streamline and facilitate the developer's workflow this tool aims to connect an arbitrary ticketing system (currently only JIRA is supported) to a git forge (currently only GitHub is supported).

Usage

Jolly brancher will, given a repository location create branches from JIRA tickets that automatically include ticket information in the branch, and branch name.

Given the repository base directory, you are provided with a list of repositories that you can act on (with tab completion):

https://user-images.githubusercontent.com/419355/136826488-41e3e3ab-20c2-4618-a5ee-ab4f1f6b3413.png

After choosing a repository, you can either create a branch based on the contents of a ticket

https://user-images.githubusercontent.com/419355/136839214-8beb4b9d-346e-4fcf-9ee8-fd1358915a91.png

Alternatively, if the branch name is well formed, you can create a PR against the parent of the branch, the tool will ask some questions and construct the body of the PR (it scans the CODEOWNERS file and suggests those users as tags), and create it:

https://user-images.githubusercontent.com/419355/136839631-232dacf2-b884-4545-ba09-02a133123852.png

If you decline to do so, then you will be redirected to the branch creation flow:

https://user-images.githubusercontent.com/419355/136839347-81d64f0d-d74d-4c35-b37e-adb787c832b0.png

It will further create a pull review from an existing branch that is well formed:

https://user-images.githubusercontent.com/419355/136630520-097fb7c5-86f4-43f3-a409-850ebd7cf825.png

It automatically populates the PR description with information from the ticket

https://user-images.githubusercontent.com/419355/136630685-c7c52d09-c51b-47e1-bcd3-60bb05518e5d.png

Configuration

Global

JIRA and git credentials are required in ~/.config/jolly_brancher.ini it contains all the global settings.

Example:

[jira]
branch_format = {issue_type}/{ticket}-{summary}

[git]
pat = <REDACTED>

Repo

JIRA and git credentials are required in .jolly.ini in the root of the repo and overrides any global settings.

[jira]
base_url = https://<subdomain>.atlassian.net
token = <basic_auth_token>

[git]
pat = <personal_access_token>
forge_root = https://github.com/<organization_name>/

Porcelain

This project started as a python utility, but over time I have found it to be more helpful as an emacs mode, so it's now a half lisp, half python monstrosity that is tailored exactly to my needs.

Deploy

  • Manually bump version in setup.py
  • make deploy

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •