Skip to content

Commit b5b23be

Browse files
committed
Skip pull requests if empty
1 parent d2875ab commit b5b23be

File tree

2 files changed

+19
-13
lines changed

2 files changed

+19
-13
lines changed

.swiftformat

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
--swiftversion 6.0
12
--enable blankLineAfterImports
23
--enable blankLinesBetweenImports
34
--enable blockComments
@@ -14,7 +15,8 @@
1415
--ifdef no-indent
1516
--funcattributes same-line
1617
--typeattributes same-line
17-
--varattributes same-line
18+
--storedvarattrs same-line
19+
--computedvarattrs same-line
1820
--ranges no-space
1921
--header strip
2022
--selfrequired log,debug,info,notice,warning,trace,error,critical,fault

Sources/xcc.swift

+16-12
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,17 @@ import SwiftTUI
9898
throw Error.couldNotFindWorkflow(availableWorkflows: workflows)
9999
}
100100

101-
let selectedSourceType = if reference != nil {
101+
ActivityIndicator.start()
102+
let repository = try await provider.request(
103+
APIEndpoint.v1.ciWorkflows.id(selectedWorkflow.id).repository.get()
104+
).data
105+
106+
let pullRequests = try await provider.requestAll(
107+
APIEndpoint.v1.scmRepositories.id(repository.id).pullRequests.get()
108+
).flatMap(\.data)
109+
ActivityIndicator.stop()
110+
111+
let selectedSourceType = if reference != nil || pullRequests.isEmpty {
102112
SourceType.reference
103113
} else if pullRequestID != nil {
104114
SourceType.pullRequest
@@ -108,19 +118,11 @@ import SwiftTUI
108118

109119
ActivityIndicator.start()
110120

111-
let repository = try await provider.request(
112-
APIEndpoint.v1.ciWorkflows.id(selectedWorkflow.id).repository.get()
113-
).data
114-
115121
var selectedGitReference: ScmGitReference? = nil
116122
var selectedPullRequest: ScmPullRequest? = nil
117123

118124
switch selectedSourceType {
119125
case .pullRequest:
120-
let pullRequests = try await provider.requestAll(
121-
APIEndpoint.v1.scmRepositories.id(repository.id).pullRequests.get()
122-
).flatMap(\.data)
123-
124126
ActivityIndicator.stop()
125127

126128
selectedPullRequest = if let pullRequestID {
@@ -150,7 +152,6 @@ import SwiftTUI
150152
throw Error.couldNotFindReference(availableReferences: gitReferences)
151153
}
152154
}
153-
154155

155156
ActivityIndicator.start()
156157
_ = try await provider.request(APIEndpoint.v1.ciBuildRuns.post(.init(
@@ -263,12 +264,11 @@ extension ScmPullRequest: CustomStringConvertible {
263264
guard let number = attributes?.number, let title = attributes?.title else {
264265
return "Unknown"
265266
}
266-
267+
267268
return "#\(number): \(title)"
268269
}
269270
}
270271

271-
272272
extension APIProvider {
273273
func requestAll<T: Decodable>(_ endpoint: Request<T>) async throws -> [T] {
274274
var results: [T] = []
@@ -279,10 +279,14 @@ extension APIProvider {
279279
}
280280
}
281281

282+
// MARK: - SourceType
283+
282284
enum SourceType: CustomStringConvertible, CaseIterable {
283285
case reference
284286
case pullRequest
285287

288+
// MARK: Internal
289+
286290
var description: String {
287291
switch self {
288292
case .reference:

0 commit comments

Comments
 (0)