Add review workflows, tree-shaped workflows and a workflow editor

This commit is contained in:
Ian Gulliver
2026-10-20 18:52:04 -07:00
parent 9869fad988
commit f2188c53eb
31 changed files with 2179 additions and 863 deletions
+8 -7
View File
@@ -177,27 +177,28 @@ private func reviewWarnings(_ taskId: String, _ store: Store, _ leave: @escaping
store.jumpTo(taskId, .review(latest.n))
}
}
let r = reviews.first { $0.snapshotN == latest.n }
if let r {
let rs = reviews.filter { $0.snapshotN == latest.n }
for r in rs {
let found = unignored(r)
switch r.state {
case .running:
items.append(MergeWarning(text: "Review of the latest snapshot is still running", open: open))
items.append(MergeWarning(text: "The \(r.stage) review of the latest snapshot is still running", open: open))
case .failed:
items.append(MergeWarning(text: "Review of the latest snapshot failed", open: open))
items.append(MergeWarning(text: "The \(r.stage) review of the latest snapshot failed", open: open))
default:
if !found.isEmpty {
items.append(MergeWarning(text: "Review of the latest snapshot found \(severityCounts(found))", open: open))
items.append(MergeWarning(text: "The \(r.stage) review of the latest snapshot found \(severityCounts(found))", open: open))
}
}
} else {
}
if rs.isEmpty {
items.append(MergeWarning(text: "The latest snapshot hasn't been reviewed", open: open))
}
let changes = try await client.getTaskChanges(path: .init(taskId: taskId), query: .init(since: latest.commitSha)).ok.body.json
if !changes.files.isEmpty {
items.append(MergeWarning(text: "Changes since the last snapshot haven't been reviewed"))
}
return (items, r?.state == .running)
return (items, rs.contains { $0.state == .running })
}
private func unignored(_ r: Review) -> [JSONDict] {