darklab8 / autogit

Automated git conventional commits and semantic versioning
Other
10 stars 0 forks source link
changelog commit-validation git git-conventional-commits git-hooks semantic-versioning semver

Autogit

Communicating through git professionally

autogit is a CLI tool to validate submitted commits according to git conventional commits standard. the tool allows to generate changelogs for releases in different formats. the ability to see quickly how your changelog looks motivates you to write more meaningful commits.

as a result of the tool work, you have decreased toll on release documentation writing, you communicate developer work better to other developers/users, and have a more professional-looking repository in terms of commits, tags, versions, releases, and changelogs.

Features

Getting started

text version at ubuntu 22.04:

BREAKING CHANGE: api for endpoint status changed to users-status'

changelog example

video version:

https://github.com/darklab8/autogit/assets/20555918/44a05f9b-393f-4f6c-aea5-f4732f4fde73

Installation

Through golang

Linux

Install latest

install specific version

Windows

P.S. ~/bin/autogit.exe must be any valid bin path (echo $PATH, echo %PATH% to get the list) accessable by your tool from where u are going to use it.

Code architecture

flowchart TD
  UI[Interface-CLI\nUser interface via Cobra CLI third party lib]
  UI --> Actions[Actions\nreusable actions without\nattachements to UI details]
  Actions --> SemanticGit[Semantic Git\nImplements main business logic of repository\nwith added logic of conventional commits\nAnd semantic versioning]
  Actions --> Validator[Validator\nRules for optional validations]
  Validator --> SemanticGit
  Actions --> Changelog[Changelog\nHow to generate one]
  Changelog ---> SemanticGit
    Changelog --> Markdown[in Markdown]
  Changelog ---> OtherFormats[in other formats]

  SemanticGit --> SemVer[SemVer\nimplements original Semantic Version\naccording to SemVer2.0.0 standard\nImplemented in current repo]
  SemanticGit --> Git[Git\ngit wrapper to simple interface\nfor current repository logic\nimplemented in current repo]
  Git --> GitGo[Git-Go\nEngine under the hood for\nGit repository operations\nImplemented by third party]

Architecture goals

Other docs

Contacts

License

autogit was originally created by Andrei Novoselov (aka darkwind, aka dd84ai) The work is released under GPL license, free to modify, copy and etc. as long as you keep code open source and mentioned original author. See LICENSE file for details.