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
}
