Add review workflows, tree-shaped workflows and a workflow editor
This commit is contained in:
@@ -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] {
|
||||
|
||||
Reference in New Issue
Block a user