Skip to content

gogit v0.9.0 Release Notes

Release Date: 2026-09-07

Overview

This release adds a way to report commits that haven't been pushed yet, and fixes a batch of bugs surfaced during a review pass across the library and gitscan CLI — including two cases where a command silently produced the wrong answer instead of erroring.

Highlights

gitscan pending: report commits not yet pushed

Repo.PendingCommits(ctx, sinceCommit) and Repo.HasUpstream(ctx) report commits reachable from HEAD but not from the current branch's upstream — or, given an explicit commit hash, everything after that commit regardless of upstream:

repo, _ := gogit.Open("/path/to/repo")
commits, err := repo.PendingCommits(ctx, "") // "" = compare against upstream

The CLI wraps this as a single-repo report (unlike gitscan's other subcommands, which scan a directory of repos):

gitscan pending                        # unpushed commits in the current directory
gitscan pending --since-commit abc1234 # commits after abc1234, regardless of upstream

--format selects the output shape: table (default) renders aligned columns via the standard library's text/tabwriter for direct terminal reading, markdown renders a copy-pasteable GitHub-flavored table for a PR or issue, and json emits a structured {repo, mode, ref, count, commits[]} envelope with both human-readable date/time fields and a precise RFC3339 timestamp, for feeding an agent a list of what's about to be pushed.

Bug fixes

Five fixes landed from a review pass, the most notable being two silent-wrong-answer bugs: gitscan since 1m (and other bare-month durations) resolved as minutes instead of the documented 30-day months, and two independent AI co-author detectors disagreed on the same commit — one of them misread a bare Claude Code co-author as if "Code" were a model name. Also fixed: gitscan reporting a repo as clean when git status itself failed to run instead of surfacing the error, a detached HEAD misclassified as having unpushed commits, a stale --version string, and an explicit port in an SSH/HTTPS remote URL getting folded into the path by NormalizeRemoteURL. See CHANGELOG.md for the full list with commit links.

Installation

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

See CHANGELOG.md for the categorized commit list.