🚧 Add export feature and refined exclusion info

This commit is contained in:
Jonas Bengtsson
2026-09-13 12:04:42 +02:00
parent 1d67330f27
commit 3bbfd6c161
10 changed files with 637 additions and 16 deletions
+22 -1
View File
@@ -14,7 +14,7 @@ See `functional specification.md` for the full specification.
- Run-once execution, designed for Windows Task Scheduler / cron / systemd timers
- Change detection via `git status --porcelain -z` (NUL-safe, UTF-8)
- Configurable include/exclude file filters (globs)
- Configurable include/exclude file filters (globs), with every excluded file and its matching rule logged at DEBUG level
- Security validation with forbidden patterns (abort by default)
- Pluggable author resolvers with priority chain and confidence levels
- Per-file attribution recorded in the commit message
@@ -24,6 +24,7 @@ See `functional specification.md` for the full specification.
- Repository-level lock with stale-lock detection (stored outside the repo)
- Rotating file logs plus console logging
- Dry-run mode, exit codes suitable for external monitoring
- `export` command: the collected history as analysis-ready CSV/JSONL (one row per file change, with author, timestamps and Tracker-Run identifiers)
- Cross-platform: Windows / Linux / macOS
## Installation
@@ -42,6 +43,7 @@ git-auto-tracker run [--dry-run] # collect changes and commit
git-auto-tracker status # show detected changes without committing
git-auto-tracker validate # validate configuration / repository / resolvers
git-auto-tracker config # print effective configuration
git-auto-tracker export -o out.csv # export the commit history for analysis
```
Global options:
@@ -52,6 +54,25 @@ Global options:
--version Print version and exit
```
### Analyzing the audit trail
`export` turns the tracker commits of the configured repository into a
flat table — one row per file change, with the collection time, run
identifier, host, change letter, path, author and last-modified time:
```bash
git-auto-tracker export -o history.csv # CSV (default format)
git-auto-tracker export -o history.jsonl # JSON Lines
git-auto-tracker export -o history.csv --since 2026-09-01
```
The rows load directly into pandas/Excel for analysis (who changes most,
which subtrees churn, change volume per day, everything ever deleted).
Commits written with a different `commit.file_separator` than the current
configuration are skipped with a warning, since their fields cannot be
split reliably. Non-tracker commits (e.g. the repository's initial
import) are ignored automatically.
## Configuration
See [`config/example.yaml`](config/example.yaml). Configuration is YAML;