https://github.com/ljpengelen/prefix-commit-message
Script for prepare-commit-msg hook to extract ID from branch name into commit message
https://github.com/ljpengelen/prefix-commit-message
git git-hooks husky
Last synced: about 1 year ago
JSON representation
Script for prepare-commit-msg hook to extract ID from branch name into commit message
- Host: GitHub
- URL: https://github.com/ljpengelen/prefix-commit-message
- Owner: ljpengelen
- License: mit
- Created: 2019-03-02T19:24:20.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2024-08-09T14:00:52.000Z (almost 2 years ago)
- Last Synced: 2024-08-09T15:33:35.327Z (almost 2 years ago)
- Topics: git, git-hooks, husky
- Language: JavaScript
- Homepage: https://www.npmjs.com/package/prefix-commit-message
- Size: 53.7 KB
- Stars: 5
- Watchers: 2
- Forks: 4
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Prefix Commit Message
This script is meant to be used as a [prepare-commit-msg Git hook](https://git-scm.com/docs/githooks#_prepare_commit_msg).
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](https://github.com/typicode/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](https://github.com/typicode/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.