Categorygithub.com/sermojohn/gitmono
modulepackage
0.12.12
Repository: https://github.com/sermojohn/gitmono.git
Documentation: pkg.go.dev

# README

CI Status Go Report Card Coverage Status Go Reference Latest Release

gitmono

CLI tool that wraps git to manage versioning of projects in monorepos.

All commands accept the monorepo project to operate on, using the -p flag. When none is specified, the flag defaults to . that enables the tool for any repository type (also non-monorepo). The specified project should match the subdirectory of the project from the root path.

Commands

init command releases and prints the initial version (0.1.0) for the specified project, if it has never been released.

version command prints the latest version of the specified project.

release command releases and prints a new version of the specified project, after looking up for a version bump command in the commits that reference files of that project.

diff command prints out the modified files for the specified git reference range that match the project subdirectory.

log command prints out the commits for the specified git reference range that match project subdirectory.

Examples

Initialise versioning:

gitmono init -p mod1

0.1.0

Get version:

gitmono version -p mod1

0.1.0

Release version:

gitmono release -p mod1

mod1/0.2.0

Diff modified files:

gitmono diff -p mod1 -f head~1 -t head

mod1/go.mod

Get commit log:

gitmono log -p mod1 -f head~2 -t head

7fd4cd0d6141b3cbc3c4f0a2206090140d2d7722 fix: mod1 modified

# Packages

No description provided by the author
No description provided by the author

# Functions

GetProjectTagPrefix calculates the project tag prefix for the specified project value.

# Structs

Config defines generic configuration applying to multiple commands.
EnvVars contains the accepted environment variables.
VersionedCommit points a commit that is assigned a version.

# Interfaces

Bumper bumps a version to a new version Bump calculates a new version by incrementing (bumping) a version.
CommitParser parses the provided commit GetBumperFromCommit parses a commit message and decide the bumper to use for version.
Differ performs diff on the repo Diff two git references and retuns a list of modified files.
GitDiffer abstracts git diff operations.
GitLogger abstracts git log operations.
GitTagger abstracts git tag operations.
Logger performs log commands on the repo Log returns the commits for the specified reference range in reverse chronological order CommitHashByRevision returns the commit hash matching to a revision.
Tagger performs tag commands on the repo CreateTag writes the given tag to the given commit ListProjectVersionTags retrieves all tags for a project using the tag list pattern.
Versioner maintains version using tags GetCurrentVersion retrieves the latest version ReleaseNewVersion creates and persists a new version InitVersion creates and persists the initial version.