Skip to content

gogit v0.5.0 Release Notes

Release Date: 2026-07-18

Overview

This release renames the repository from gitscan to gogit and reframes it as a generic, dependency-light Git base library for Go — analogous to gogithub for GitHub — with the gitscan CLI preserved unchanged as a bundled tool at cmd/gitscan. The new root package provides repository discovery and commit-log parsing (including Co-authored-by trailer extraction used for AI-attribution analytics in OmniDevX).

Breaking Changes

The module path changed:

-import "github.com/grokify/gitscan/scanner"
+import "github.com/grokify/gogit/scanner"

The CLI entrypoint moved from the repository root to cmd/gitscan:

go install github.com/grokify/gogit/cmd/gitscan@latest

GitHub redirects grokify/gitscan URLs to grokify/gogit; update remotes and imports at your convenience.

The --go-git flag is removed from all gitscan subcommands: the git CLI backend (already the default) is now the only backend, and the go-git/v5 dependency tree is dropped from the module — a substantially smaller dependency graph for library consumers.

Highlights

Core git library (new)

  • Discover(roots, maxDepth) — depth-bounded repository discovery that does not descend into repositories
  • Repo.Log(ctx, LogOptions) — commit-log parsing with calendar-date filtering (Since/Until), author/committer identities, subjects, trailers, and --numstat change stats
  • Commit.CoAuthors()Co-authored-by trailer extraction
  • Repo.Branch, Repo.OriginURL, NormalizeRemoteURL — metadata and canonical host/path remote identifiers
  • Repo.Tags, Repo.TagsWithDates — tag listing with creation dates
repo, _ := gogit.Open("/path/to/repo")
commits, _ := repo.Log(ctx, gogit.LogOptions{
    Since:        weekStart,
    IncludeStats: true,
})
for _, c := range commits {
    fmt.Println(c.Hash, c.Author.Email, c.CoAuthors(), c.Insertions)
}

Workflow compliance scanning (gitscan CLI)

Scan repositories for GitHub workflow compliance against a reference repository (default plexusone/.github) via --check-workflows and --ref-repo.

since --unpushed

gitscan since <duration> --unpushed filters repositories with uncommitted or unpushed changes (AND logic with existing filters).

Reliability

  • git execution is pinned to LC_ALL=C with GIT_TERMINAL_PROMPT=0, so error-condition detection is locale-independent and no invocation can hang on a credential prompt.
  • Commit-log records use a leading sentinel delimiter, making trailer and numstat parsing unambiguous.

Installation

Library:

go get github.com/grokify/gogit@v0.5.0

CLI:

go install github.com/grokify/gogit/cmd/gitscan@v0.5.0

Commits

See CHANGELOG.md for the full categorized list with commit links.