chadtmiller.com/knotless
git that lives in your Atmosphere account
1
10
The iOS app's tabs, statuses and actions use Octicons
ios/Knotless/API/Standing.swift+7−7
| @@ -17,18 +17,18 @@ struct Standing: Equatable { | ||
if s.may?.merge != true { after.append("Only the owner and collaborators merge it.") } | ||
| ||
if s.state == "draft" { | ||
return Standing(title: "Still a draft", icon: "pencil.circle", tone: .neutral, lines: ["It can't be merged or queued until it's marked ready for review."]) | ||
return Standing(title: "Still a draft", icon: "git-pull-request-draft", tone: .neutral, lines: ["It can't be merged or queued until it's marked ready for review."]) | ||
} | ||
if s.state == "conflicting" { | ||
return Standing(title: "Conflicts with \(base)", icon: "exclamationmark.triangle.fill", tone: .bad, lines: ["Merge \(base) into its branch, resolve the files that conflict, then push."]) | ||
return Standing(title: "Conflicts with \(base)", icon: "alert-fill", tone: .bad, lines: ["Merge \(base) into its branch, resolve the files that conflict, then push."]) | ||
} | ||
if s.reviews == "blocked" { | ||
let missing = (s.reviewsMissing ?? []).map { $0.text.prefix(1).uppercased() + $0.text.dropFirst() } | ||
return Standing(title: "Review required", icon: "xmark.circle.fill", tone: .bad, lines: missing + after) | ||
return Standing(title: "Review required", icon: "x-circle-fill", tone: .bad, lines: missing + after) | ||
} | ||
switch s.checks { | ||
case "failed": | ||
return Standing(title: "Checks failed", icon: "xmark.circle.fill", tone: .bad, lines: ["It can land once they pass. Fix what failed and push."] + after) | ||
return Standing(title: "Checks failed", icon: "x-circle-fill", tone: .bad, lines: ["It can land once they pass. Fix what failed and push."] + after) | ||
case "running": | ||
let line = queues ? "It can land once they pass. Queued now, it lands then." : "It can land once they pass." | ||
return Standing(title: "Checks are running", icon: "clock", tone: .waiting, lines: [line] + after) | ||
| @@ -41,10 +41,10 @@ struct Standing: Equatable { | ||
break | ||
} | ||
if s.queueOnly == true { | ||
return Standing(title: "Ready for the merge queue", icon: "checkmark.circle.fill", tone: .good, lines: ["\(base) takes pulls only through the merge queue."] + after) | ||
return Standing(title: "Ready for the merge queue", icon: "check-circle-fill", tone: .good, lines: ["\(base) takes pulls only through the merge queue."] + after) | ||
} | ||
if s.state == "clean" { | ||
return Standing(title: "Ready to merge", icon: "checkmark.circle.fill", tone: .good, lines: after) | ||
return Standing(title: "Ready to merge", icon: "check-circle-fill", tone: .good, lines: after) | ||
} | ||
return Standing(title: "Not ready to merge", icon: "clock", tone: .waiting, lines: after) | ||
} | ||
| @@ -58,7 +58,7 @@ struct Standing: Equatable { | ||
why = why.replacingOccurrences(of: pattern, with: "", options: .regularExpression) | ||
} | ||
let line = why.prefix(1).uppercased() + why.dropFirst() | ||
return Standing(title: "Taken out of the merge queue", icon: "xmark.circle.fill", tone: .bad, lines: line.isEmpty ? [] : [line]) | ||
return Standing(title: "Taken out of the merge queue", icon: "x-circle-fill", tone: .bad, lines: line.isEmpty ? [] : [line]) | ||
} | ||
| ||
/// Whether the queue would take it, as the server would answer if asked. | ||
ios/Knotless/Assets.xcassets/oct-alert-fill.imageset/alert-fill.svgnew+1−0
| @@ -0,0 +1 @@ | ||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575ZM8 5a.75.75 0 0 0-.75.75v2.5a.75.75 0 0 0 1.5 0v-2.5A.75.75 0 0 0 8 5Zm1 6a1 1 0 1 0-2 0 1 1 0 0 0 2 0Z"/></svg> | ||
| \ No newline at end of file | ||
ios/Knotless/Assets.xcassets/oct-alert-fill.imageset/Contents.jsonnew+1−0
| @@ -0,0 +1 @@ | ||
{"images":[{"filename":"alert-fill.svg","idiom":"universal"}],"info":{"author":"xcode","version":1},"properties":{"preserves-vector-representation":true,"template-rendering-intent":"template"}} | ||
| \ No newline at end of file | ||
ios/Knotless/Assets.xcassets/oct-arrow-down.imageset/arrow-down.svgnew+1−0
| @@ -0,0 +1 @@ | ||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path d="M13.03 8.22a.75.75 0 0 1 0 1.06l-4.25 4.25a.75.75 0 0 1-1.06 0L3.47 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018l2.97 2.97V3.75a.75.75 0 0 1 1.5 0v7.44l2.97-2.97a.75.75 0 0 1 1.06 0Z"/></svg> | ||
| \ No newline at end of file | ||
ios/Knotless/Assets.xcassets/oct-arrow-down.imageset/Contents.jsonnew+1−0
| @@ -0,0 +1 @@ | ||
{"images":[{"filename":"arrow-down.svg","idiom":"universal"}],"info":{"author":"xcode","version":1},"properties":{"preserves-vector-representation":true,"template-rendering-intent":"template"}} | ||
| \ No newline at end of file | ||
ios/Knotless/Assets.xcassets/oct-check-circle-fill.imageset/check-circle-fill.svgnew+1−0
| @@ -0,0 +1 @@ | ||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path d="M8 16A8 8 0 1 1 8 0a8 8 0 0 1 0 16Zm3.78-9.72a.751.751 0 0 0-.018-1.042.751.751 0 0 0-1.042-.018L6.75 9.19 5.28 7.72a.751.751 0 0 0-1.042.018.751.751 0 0 0-.018 1.042l2 2a.75.75 0 0 0 1.06 0Z"/></svg> | ||
| \ No newline at end of file | ||
ios/Knotless/Assets.xcassets/oct-check-circle-fill.imageset/Contents.jsonnew+1−0
| @@ -0,0 +1 @@ | ||
{"images":[{"filename":"check-circle-fill.svg","idiom":"universal"}],"info":{"author":"xcode","version":1},"properties":{"preserves-vector-representation":true,"template-rendering-intent":"template"}} | ||
| \ No newline at end of file | ||
ios/Knotless/Assets.xcassets/oct-chevron-down.imageset/chevron-down.svgnew+1−0
| @@ -0,0 +1 @@ | ||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"/></svg> | ||
| \ No newline at end of file | ||
ios/Knotless/Assets.xcassets/oct-chevron-down.imageset/Contents.jsonnew+1−0
| @@ -0,0 +1 @@ | ||
{"images":[{"filename":"chevron-down.svg","idiom":"universal"}],"info":{"author":"xcode","version":1},"properties":{"preserves-vector-representation":true,"template-rendering-intent":"template"}} | ||
| \ No newline at end of file | ||
ios/Knotless/Assets.xcassets/oct-chevron-right.imageset/chevron-right.svgnew+1−0
| @@ -0,0 +1 @@ | ||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path d="M6.22 3.22a.75.75 0 0 1 1.06 0l4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L9.94 8 6.22 4.28a.75.75 0 0 1 0-1.06Z"/></svg> | ||
| \ No newline at end of file | ||