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 repositoriesRepo.Log(ctx, LogOptions)— commit-log parsing with calendar-date filtering (Since/Until), author/committer identities, subjects, trailers, and--numstatchange statsCommit.CoAuthors()—Co-authored-bytrailer extractionRepo.Branch,Repo.OriginURL,NormalizeRemoteURL— metadata and canonicalhost/pathremote identifiersRepo.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=CwithGIT_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.