git-commit-stamper
v1.0.10
Published
Updates a log file with selected last git commit data
Downloads
2,058
Readme
git-commit-stamper
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": "[email protected]"
},
"committer": {
"name": "Ozan Seymen",
"email": "[email protected]"
},
"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]