Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

git-commit-stamper

theogravity280MIT1.0.10TypeScript support: included

Updates a log file with selected last git commit data

git, commit, log, changelog, template, tag

readme

git-commit-stamper

NPM version CircleCI built with typescript JavaScript Style Guide

Updates a log file with selected last git commit data using handlebars tags.

This is useful for stamping in the commit subject / body / etc into your changelog entry.

Install

npm i git-commit-stamper -g

Usage

The basic command is:

$ git-commit-stamper parse <logFile> [outFile]

The parser gets the last git commit and produces the following object, which is used for template data in handlebars:

{
  "shortHash": "d2346fa",
  "hash": "d2346faac31de5e954ef5f6baf31babcd3e899f2",
  "subject": "initial commit",
  "sanitizedSubject": "initial-commit",
  "body": "this is the body of the commit message",
  "summary": "This is a summary of the change",
  "authoredOn": "1437988060",
  "committedOn": "1437988060",
  "author": {
    "name": "Ozan Seymen",
    "email": "oseymen@gmail.com"
  },
  "committer": {
    "name": "Ozan Seymen",
    "email": "oseymen@gmail.com"
  },
  "notes": "commit notes",
  "branch": "master",
  "tags": ['R1', 'R2']
}

newlines

The following properties will have two newlines inserted at the end of their content:

  • subject
  • sanitizedSubject
  • body
  • summary
  • notes

This allows for the following:

{{subject}}{{{body}}}

If the content already has one newline, another will be added. If it has two, no changes will be made.

Example

# CHANGELOG.log

v2 - March 20, 2020

{{subject}}

$ git-commit-stamper parse CHANGELOG.log

Outputs:

v2 - March 20, 2020

initial commit

Including a summary in your changelog

The body content of the git commit might be too large for a changelog.

The template tag summary will be populated if in your commit body, you use the following syntax:

This is my subject line

==summary==
This is a summary of the change
==end summary==

The rest of the commit body

The body tag will have the ==changelog== markers and content removed (but they will remain in the original git commit message).

## {{subject}}{{summary}}
## initial commit

This is a summary of the change

If summary is not empty, then you do not have to worry about adding newlines.

Skip stamping

If you use this tool as part of your CI process, you can skip log stamping by including [skip-changelog] as part of the git commit subject line.

Extended usage

$ git-commit-stamper

git-commit-stamper <command>

Commands:
  git-commit-stamper parse <logFile> [outFile]  Parses a log file with template tags and replaces the
                                                tags with the last git commit info.
  git-commit-stamper tags                       Shows the template data that would be fed into
                                                handlebars.

Options:
  --help     Show help                                                                        [boolean]
  --version  Show version number                                                              [boolean]
$ git-commit-stamper parse --help

git-commit-stamper parse <logFile> [outFile]

Parses a log file with template tags and replaces the tags with the last git commit info.

Positionals:
  logFile  The log file to ingest.                                                  [string] [required]

Options:
  --help      Show help                                                                       [boolean]
  --version   Show version number                                                             [boolean]
  --outFile   Writes output to specified file instead of the original.                         [string]
  --simulate  Prints log output, does not write any data.                    [boolean] [default: false]                                                             [boolean]

changelog

1.0.10 - Sun May 09 2021 20:26:31

Update dependencies.

1.0.9 - Sat Apr 11 2020 04:54:53

Fix bug where tags command was showing wrong commit info.

1.0.8 - Sat Apr 11 2020 04:45:31

Fix bug where git-commit-stamper installed globally will get the wrong commit data.

1.0.7 - Tue Apr 07 2020 04:42:38

Update readme.

1.0.6 - Sat Apr 04 2020 20:58:09

Change behavior of where newlines are added. See readme.

1.0.5 - Fri Apr 03 2020 09:18:21

summary tag now includes newlines at the beginning and end of the summary.

1.0.4 - Fri Apr 03 2020 09:09:37

Added the ability to use a summary in place of long git body messages.

1.0.3 - Fri Apr 03 2020 08:01:36

Added the ability to skip stamping for CI purposes via using [skip-changelog] in the git commit subject line.

1.0.2 - Fri Apr 03 2020 07:42:28

Update docs

1.0.1 - Fri Apr 03 2020 07:23:53

First version.