git-changes-by-day is a Go command-line tool that reads git history from a target repository and writes a CSV file with one row per commit.
go build -o ./bin/git-changes-by-day .Run the compiled binary:
./bin/git-changes-by-day -repo /path/to/repo -text-out ./commit-text.csvgo run . -repo /path/to/repo -text-out ./commit-text.csvFor quick-start guidance, automation best practices, exit behavior, and the complete CLI and CSV schema reference:
go run . help
# These aliases provide the same reference: /help, -h, -help, --helpFlags:
-repo: repository to inspect. Defaults to the current directory.-text-out: output path for the per-commit text CSV.
Use explicit paths in automation, give concurrent runs distinct output paths, and check the exit status before consuming the CSV. Existing output files are replaced. Commit author email is personal data and should be handled accordingly.
commit-text.csv columns:
datetime(UTC, RFC3339)date(UTC, YYYY-MM-DD)commit_hashauthor_emailgithub_author_handlegithub_author_display_nametextfiles_changedlines_addedlines_deletedlines_changedco_author_emails(JSON array, preserving trailer order)github_co_author_handles(JSON array; empty string when email is not a GitHub noreply address)github_co_author_display_names(JSON array)
go build ./...
go test ./...GitHub Actions includes:
ci: runs tests on pushes and pull requests.publish-artifact: generates and uploads the commit CSV artifact aftercisucceeds for an update tomain.