fix(refile): address code review feedback
- Warn if source issue is already closed - Copy all issue fields (SourceRepo, Ephemeral, MolType, RoleType, Rig) - Log warnings on label copy failures instead of silently ignoring - Schedule auto-flush when source is local store - Remove stale comment 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
committed by
Steve Yegge
parent
54d15252fa
commit
e2121a2e07
@@ -54,6 +54,11 @@ Examples:
|
|||||||
sourceIssue := result.Issue
|
sourceIssue := result.Issue
|
||||||
resolvedSourceID := result.ResolvedID
|
resolvedSourceID := result.ResolvedID
|
||||||
|
|
||||||
|
// Warn if source issue is already closed
|
||||||
|
if sourceIssue.Status == types.StatusClosed {
|
||||||
|
fmt.Fprintf(os.Stderr, "%s Source issue %s is already closed\n", ui.RenderWarn("⚠"), resolvedSourceID)
|
||||||
|
}
|
||||||
|
|
||||||
// Step 2: Find the town-level beads directory
|
// Step 2: Find the town-level beads directory
|
||||||
townBeadsDir, err := findTownBeadsDir()
|
townBeadsDir, err := findTownBeadsDir()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -97,8 +102,12 @@ Examples:
|
|||||||
Assignee: sourceIssue.Assignee,
|
Assignee: sourceIssue.Assignee,
|
||||||
ExternalRef: sourceIssue.ExternalRef,
|
ExternalRef: sourceIssue.ExternalRef,
|
||||||
EstimatedMinutes: sourceIssue.EstimatedMinutes,
|
EstimatedMinutes: sourceIssue.EstimatedMinutes,
|
||||||
|
SourceRepo: sourceIssue.SourceRepo,
|
||||||
|
Ephemeral: sourceIssue.Ephemeral,
|
||||||
|
MolType: sourceIssue.MolType,
|
||||||
|
RoleType: sourceIssue.RoleType,
|
||||||
|
Rig: sourceIssue.Rig,
|
||||||
CreatedBy: actor,
|
CreatedBy: actor,
|
||||||
// Add note about origin
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Append refiled note to description
|
// Append refiled note to description
|
||||||
@@ -115,7 +124,9 @@ Examples:
|
|||||||
labels, err := result.Store.GetLabels(ctx, resolvedSourceID)
|
labels, err := result.Store.GetLabels(ctx, resolvedSourceID)
|
||||||
if err == nil && len(labels) > 0 {
|
if err == nil && len(labels) > 0 {
|
||||||
for _, label := range labels {
|
for _, label := range labels {
|
||||||
_ = targetStore.AddLabel(ctx, newIssue.ID, label, actor)
|
if err := targetStore.AddLabel(ctx, newIssue.ID, label, actor); err != nil {
|
||||||
|
WarnError("failed to copy label %s: %v", label, err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -125,6 +136,10 @@ Examples:
|
|||||||
if err := result.Store.CloseIssue(ctx, resolvedSourceID, closeReason, actor); err != nil {
|
if err := result.Store.CloseIssue(ctx, resolvedSourceID, closeReason, actor); err != nil {
|
||||||
WarnError("failed to close source issue: %v", err)
|
WarnError("failed to close source issue: %v", err)
|
||||||
}
|
}
|
||||||
|
// Schedule auto-flush if source was local store
|
||||||
|
if !result.Routed {
|
||||||
|
markDirtyAndScheduleFlush()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Output
|
// Output
|
||||||
|
|||||||
Reference in New Issue
Block a user