Changelog generator using Commit History

Binary Builds Binary Builds Pre-Releases Go Report Card commitlog

To see an example of this in action, you can check the actions file for this repo. Yes it uses itself to generate the release logs

Sheilds | Badges




Binaries are available on the Github releases


This step is for people who want to use the latest version from the repositories which hasn't been added to releases as a binary yet and for people viewing this on sourcehut , as the binaries aren't uploaded to sourcehut.

With Clone

git clone
            # or 
            git clone
            cd commitlog 
            go build 

With Tarballs

tar -xvzf commitlog-<hash>.tar.gz
            cd commitlog 
            go build 
# to install it to go's bin folder and use the commitlog command during dev or as a perm install
            go install 

Web Version

Source: commitlog-web

Web App: commitlog-web


The usage is pretty simple, this cli tool assumes that you use commitlint standards while writing your commits, if not it's okay everything will be classified under Other Changes instead of being grouped according to type of commit.

Simple Overview
ci: <message> - for ci/cd changes
feat|feature: <message> - for feature changes
docs: <message> - for documents or comment updations in code
refactor: <message> - performance / code clean up changes or total BLOC changes
fix: <message> - for fixes (self-explanatory)

Supported Flags (as of v0.0.4-dev.3)

The below mentioned are the flags supported by the current branch and older tags might not support the flags or certain inputs in flags, use the -h flag to see what's supported on the version you are using.

Usage of commitlog:
    -e string
          commit hash string / revision (ex. HEAD, HEAD^, HEAD~2) 
            to stop collecting commit message at
    -i string
          commit types to be includes (default "ci,refactor,docs,fix,feat,test,chore,other")
    -p string
          path to the repository, points to the current working directory by default (default ".")
    -s string
          commit hash string / revision (ex. HEAD, HEAD^, HEAD~2) 
            to start collecting commit messages from
          if true will skip trying to classify and just give a list of changes

Example Output (from this exact repository)

> commitlog 

# Changelog
## Fixes

97c582b3eb5a6796ef9c250d9653ad90dce63cbe - fix: example fix

## Other Changes

da6d837eb3134f836bfbe401de7882f2e0818ba8 - Create LICENSE
b0f1b1d2bc4265cb72b70b3ae5b60f8e65f47b12 - initial commit

Current Limitations