Socket
Socket
Sign inDemoInstall

branch-commit-msg

Package Overview
Dependencies
0
Maintainers
1
Versions
17
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

branch-commit-msg


Version published
Maintainers
1
Install size
92.9 kB
Created

Readme

Source

branch-commit-msg

Build npm:latest npm:beta codecov semantic-release: angular

Overview

branch-commit-msg is a git commit-msg hook that extracts a configurable regex pattern from the current branch and reformats the final commit message to the configured format.

Installation

With no dependency:

$ npx branch-commit-msg install

With husky:

$ npm install -D branch-commit-msg
$ npx husky add .husky/commit-msg 'npx branch-commit-msg-hook "$1"'

Uninstall

With no dependency:

$ rm .git/hooks/commit-msg

With husky:

Remove npx branch-commit-msg-hook "$1" from .husky/commit-msg and run:

$ npm uninstall branch-commit-msg

Usage

After installation, create a .commitmsgrc.json file at the root of your project and configure how you would like to reformat your final commit message based on elements of the active branch name:

// .commitmsgrc.json

{
  /*
    Regex group pattern to extract from branch name.
      - ex: "(sc)-?[0-9]+"
  */
  "extractPattern": string,

  /*
    Whether the extractPattern is case-sensitive.
      - ex: true
  */
  "extractPatternMatchCase": boolean,

  /*
    Final output format for the commit message.

    Formatting Placeholders:
      %b0: access the entire matched pattern from the branch name
      %b1: access the first matched group pattern from the branch name
      %bn: access the 'n'th matched group pattern from the branch name
        - ex: "%b6" accesses the 6th matched group pattern
      %m: the original commit message

    Pipes:
      lower: applies lower casing to the formatting placeholder
        - ex: "$b2 | lower"
      upper: applies upper casing to the formatting placeholder
        - ex: "%m | upper"
  */
  "commitMsgFormat": string
}

After your .commitmsgrc.json is configured, start making commits!

Configuration Examples

Preface commit message with a Shortcut ticket number:
{
  "extractPattern": "sc-[0-9]+",
  "extractPatternMatchCase": false,
  "commitMsgFormat": "%b0 - %m"
}
# Current branch: SC-123456/my-new-feature
$ git commit -m "added a thing"
$ git log -1 --pretty=%B
# Output: SC-123456 - added a thing
Suffix and format a commit message with a JIRA ticket:
{
  "extractPattern": "SOMEPRJ-[0-9]+",
  "extractPatternMatchCase": false,
  "commitMsgFormat": "%m (%b0 | upper)"
}
# Current branch: feature/someprj-123456
$ git commit -m "added a thing"
$ git log -1 --pretty=%B
# Output: added a thing (SOMEPRJ-123456)
Go crazy with group matching:
{
  "extractPattern": "(some).*(complex[0-9-]+).*(branch)",
  "extractPatternMatchCase": false,
  "commitMsgFormat": "%m | upper to %b1 | upper %b2 %b3 | lower"
}
# Current branch: some/CoMpLEX-123-5/BRANCH
$ git commit -m "added a thing"
$ git log -1 --pretty=%B
# Output: ADDED A THING to SOME CoMpLEX-123-5 branch

Development

Prerequisites

  • Docker installation (for integration and end-to-end (e2e) testing)
  • Node.js (>=14.0.0) runtime
  • Yarn installation

Install Dependencies

$ yarn install

Test

$ yarn test[:unit|:integration|:e2e|:smoke]

Build

$ yarn build

Keywords

FAQs

Last updated on 07 May 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc