4.2.0 • Published 3 months ago

prefix-commit-message v4.2.0

Weekly downloads
891
License
MIT
Repository
github
Last release
3 months ago

Prefix Commit Message

This script is meant to be used as a prepare-commit-msg Git hook. Each time you commit, it extracts the issue identifier or user-story identifier from the current branch name and prefixes your commit message with the extracted identifier.

It supports identifiers of the form ABCD-1234 and 1234, and will look for such identifiers right after the / in the name of the current branch. If you're on the branch feature/JIRA-874-cannot-log-in-on-macos, for example, this hook will prefix each of your commit messages with [ JIRA-874 ].

There are simpler shell scripts that achieve the same, but this solution works on Windows too.

This script can be used standalone or in combination with Husky (version 6 and newer). If you're using an older Husky, see (https://github.com/ljpengelen/prefix-commit-message/tree/v1.3.0).

Installation

Standalone usage

Navigate to .git/hooks from the root of your Git repository and create an executable file named prepare-commit-msg with the following content:

#!/bin/sh
npx prefix-commit-message $1

Usage with Husky

First, install Husky and this script:

npm install husky --save-dev
npm install prefix-commit-message --save-dev

Then, enable Git hooks via Husky:

npx husky install

Finally, set up the prepare-commit-msg hook:

npx husky add .husky/prepare-commit-msg "npx prefix-commit-message \$1"

Custom prefix

If you don't like the square brackets around the identifier, you can supply a custom opening and closing symbol. For example,

#!/bin/sh
npx prefix-commit-message $1 -o -c :

and

npx husky add .husky/prepare-commit-msg "npx prefix-commit-message \$1 -o -c :"

will result in the prefix JIRA-874:.

The opening symbol is specified via the '-o' flag, and the closing symbol is specified via the '-c' flag. As the example shows, the empty string is used when no value is specified after a flag.

Including and excluding branches

If you want to apply the hook to specific branches only, you can supply a regex pattern for branches to include and exclude. For example,

#!/bin/sh
npx prefix-commit-message $1 -bi ^feature -be release

and

npx husky add .husky/prepare-commit-msg "npx prefix-commit-message \$1 -bi ^feature -be release"

will only extract the identifier from branches that start with the string "feature" and do not contain the string "release".

The pattern for branches to include is specified via the '-bi' flag, and the pattern for branches to exclude is specified via the '-be' flag.

4.2.0

3 months ago

4.1.0

3 months ago

3.1.0

1 year ago

4.0.0

1 year ago

3.0.1

2 years ago

3.0.0

3 years ago

2.1.0

3 years ago

1.2.0

3 years ago

2.0.0

3 years ago

1.3.0

3 years ago

1.1.0

5 years ago

1.0.3

5 years ago

1.0.2

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago

0.0.2

5 years ago

0.0.1

5 years ago