You've already forked agentic-coding-workflow
feat(infra/git): clone/fetch/push/commit/status verbs + integration tests
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
package git
|
||||
|
||||
import (
|
||||
"context"
|
||||
"strings"
|
||||
)
|
||||
|
||||
// Commit 在 dir 创建一个提交。addAll=true 时先 git add -A。返回 commit sha。
|
||||
//
|
||||
// 提交者用 git config 在仓库内继承(应用启动时不全局设 user.name;调用方在
|
||||
// 创建 main worktree 后会设置 service-level 的 user.name/email)。
|
||||
func (r *DefaultRunner) Commit(ctx context.Context, dir, message string, addAll bool) (string, error) {
|
||||
ctx, cancel := withCtx(ctx, r.cfg.OpsTimeout)
|
||||
defer cancel()
|
||||
if addAll {
|
||||
if _, _, err := r.exec(ctx, dir, nil, "add", "-A"); err != nil {
|
||||
return "", err
|
||||
}
|
||||
}
|
||||
if _, _, err := r.exec(ctx, dir, nil, "commit", "-m", message); err != nil {
|
||||
return "", err
|
||||
}
|
||||
out, _, err := r.exec(ctx, dir, nil, "rev-parse", "HEAD")
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
return strings.TrimSpace(string(out)), nil
|
||||
}
|
||||
Reference in New Issue
Block a user