Files
agentic-coding-workflow/internal/infra/git/diffstat.go
T
2026-06-22 08:55:57 +08:00

18 lines
671 B
Go

package git
import "context"
// DiffStat 返回单个 commit 的变更摘要(git show --stat),供自动文档生成喂给
// LLM 一个有界的改动概览。commitSHA 由上层从可信来源(git log / commit 返回值)
// 取得,不接受用户任意输入。--no-color 保证输出稳定,-M 检测重命名。
func (r *DefaultRunner) DiffStat(ctx context.Context, dir, commitSHA string) (string, error) {
ctx, cancel := withCtx(ctx, r.cfg.OpsTimeout)
defer cancel()
out, _, err := r.exec(ctx, dir, nil,
"show", "--no-color", "--stat", "--format=%H%n%an%n%s%n%n%b", "-M", commitSHA)
if err != nil {
return "", err
}
return string(out), nil
}