You've already forked agentic-coding-workflow
git 逻辑
This commit is contained in:
@@ -63,22 +63,25 @@ func (r *CloneRunner) run(ctx context.Context, wsID uuid.UUID) {
|
||||
r.log.Error("clone runner: get workspace", "ws_id", wsID, "err", err.Error())
|
||||
return
|
||||
}
|
||||
// 状态/审计写操作与 clone 的超时 ctx 解耦:clone 超时后 ctx 已 DeadlineExceeded,
|
||||
// 仍需把状态写成 error,否则永久卡在 cloning。
|
||||
writeCtx := context.WithoutCancel(ctx)
|
||||
cred, err := r.resolveCred(ctx, wsID)
|
||||
if err != nil {
|
||||
r.markError(ctx, wsID, "resolve credential: "+err.Error())
|
||||
r.markError(writeCtx, wsID, "resolve credential: "+err.Error())
|
||||
return
|
||||
}
|
||||
if cloneErr := r.gitr.Clone(ctx, ws.MainPath, ws.GitRemoteURL, ws.DefaultBranch, cred); cloneErr != nil {
|
||||
r.markError(ctx, wsID, summarizeErr(cloneErr))
|
||||
_ = r.rec.Record(ctx, audit.Entry{Action: "workspace.clone_failed", TargetType: "workspace", TargetID: wsID.String(), Metadata: map[string]any{"err": summarizeErr(cloneErr)}})
|
||||
r.markError(writeCtx, wsID, summarizeErr(cloneErr))
|
||||
_ = r.rec.Record(writeCtx, audit.Entry{Action: "workspace.clone_failed", TargetType: "workspace", TargetID: wsID.String(), Metadata: map[string]any{"err": summarizeErr(cloneErr)}})
|
||||
return
|
||||
}
|
||||
now := time.Now().UTC()
|
||||
if _, err := r.repo.UpdateWorkspaceSyncStatus(ctx, wsID, SyncStatusIdle, &now, ""); err != nil {
|
||||
if _, err := r.repo.UpdateWorkspaceSyncStatus(writeCtx, wsID, SyncStatusIdle, &now, ""); err != nil {
|
||||
r.log.Error("clone runner: update sync status idle", "ws_id", wsID, "err", err.Error())
|
||||
return
|
||||
}
|
||||
_ = r.rec.Record(ctx, audit.Entry{Action: "workspace.clone_ok", TargetType: "workspace", TargetID: wsID.String()})
|
||||
_ = r.rec.Record(writeCtx, audit.Entry{Action: "workspace.clone_ok", TargetType: "workspace", TargetID: wsID.String()})
|
||||
}
|
||||
|
||||
func (r *CloneRunner) markError(ctx context.Context, wsID uuid.UUID, msg string) {
|
||||
|
||||
Reference in New Issue
Block a user