gitscan v0.1.0 Release Notes
Release Date: 2026-01-17
Overview
gitscan is a CLI tool to scan multiple Git repositories and identify repos that need attention. It helps prioritize which repos to update, commit, and push - particularly useful for developers managing many Go projects.
Highlights
- CLI tool to scan multiple Git repositories and identify repos needing attention
- Zero external dependencies - uses only Go standard library
Installation
go install github.com/grokify/gitscan@v0.1.0
Or build from source:
git clone https://github.com/grokify/gitscan.git
cd gitscan
go build -o gitscan .
Features
Repository Analysis
- Uncommitted Changes - Detects modified, added, or deleted files using
git status --porcelain - Replace Directives - Parses
go.modforreplacedirectives (both single-line and block format), which may indicate local development dependencies - Module Name Mismatch - Compares the module name in
go.modwith the directory name to identify renamed or copied repos
Dependency Search
- Filter repos by dependency with
-depflag to find all repos depending on a specific module - Recursive nested go.mod search with
-recurseflag for monorepo support
User Experience
- Progress bar with percentage, count, and current repo name during scanning
- Two output formats: human-readable list (default) and compact markdown table
- Summary statistics showing counts of uncommitted changes, replace directives, and mismatches
Usage
# Scan all repos in a directory
gitscan ~/go/src/github.com/grokify
# Output as markdown table
gitscan -format table ~/go/src/github.com/grokify
# Find repos depending on a module
gitscan -dep github.com/grokify/mogo ~/go/src/github.com/grokify
# Include nested go.mod files
gitscan -dep github.com/grokify/mogo -recurse ~/go/src/github.com/grokify
Flags
| Flag | Default | Description |
|---|---|---|
-dir |
(required) | Directory containing repos to scan |
-format |
list |
Output format: list or table |
-show-clean |
false |
Show repos with no issues |
-summary |
true |
Show summary at the end |
-dep |
(none) | Filter repos by dependency (module path) |
-recurse |
false |
Recursively search for nested go.mod files |
Use Cases
- Pre-push audit - Identify repos with uncommitted work before leaving for vacation
- Dependency cleanup - Find repos with local
replacedirectives that need resolution - Repo hygiene - Detect copied/renamed repos with mismatched module names
- Breaking changes - Find all repos to update before releasing library changes
- Security patches - Locate repos using vulnerable dependencies
License
MIT