/jolly_github_toolbelt

A collection of tools around Git and GitHub to make developers’ lives easier.

Primary LanguagePython

GitHub Tools

A collection of tools around Git and GitHub to make developers' lives easier.

gt-assign-pr

A simple helper to assign a given PR to as set of users from the CLI.

Usage

This tool requires the use of a token (see Using Tokens). By simply providing a owner, repository, pr_number and as many users as desired, you can assign the given PR to those users. By default, currently assigned users are kept, but they can be removed using the --clear-current flag.

gt-pr-doc-link

A simple helper to post a link to docs back to a PR when run in a Jenkins job.

Usage

This tool requires the use of a token (see Using Tokens). In addition, this tool requires a BUILD_URL environment variable to be present (present automatically in a Jenkins job), and to have the docs already built and available via a URL subpath from the job URL, as would be generated by the Jenkins HTML Publisher plugin.

Using Tokens

In order to provide for maximum flexibility, these tools are designed to work with GitHub Personal Access Tokens, which are needed for people using two-factor authentication or have access protected by SAML single sign on (SSO). GitHub provides instruction to obtain a token. The token can be provided to all commands either via the --token TOKEN flag, or by setting GH_TOKEN in your environment.

Custom GitHub URL

By default, this project works with https://github.com. In order to use an alternate URL, such as an enterprise install, you can provide the URL via an environment variable: GT_GH_URL.

pre-commit hooks

This repository also provides three hooks, documented below, that can be installed by hand or via pre-commit:

gt-commit-msg

Ensure that a commit message conforms to some best practices:

  1. Subject lines should not be longer than 50 characters
  2. Wrap the body at 72 characters
  3. Separate the subject from body with a blank line.

These are taken from A Note About Git Commit Messages.

gt-self-check

Can perform validations before making a commit. If an executable file named self-check.sh exists in the root of the repository and a Python, Ruby, or Gherkin file was changed, the checker is executed and the return status serves as a gate for the commit to occur. The check can be bypassed via git commit -n.

gt-prepare-commit-msg

Prepare a commit message by including an appropriate prefix, when possible, based on the branch name. If the branch name contains a JIRA ID, that is included in the prefix. If the branch name also contains either "FF" or "Spike", that is appended to the prefix. If a branch name, without including a JIRA ID, contains "FF", "Spike", "Enhancement" or "Fix", those phrases are set as the prefix. All searches are case-insensitive.