Skip to content

Commit 8ea7ee7

Browse files
committed
fix: Improve error handling and logging for GitHub API release fetching
1 parent 3f596dd commit 8ea7ee7

File tree

1 file changed

+29
-2
lines changed

1 file changed

+29
-2
lines changed

.github/workflows/cicd.yml

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -520,12 +520,38 @@ jobs:
520520
// Fetch releases from GitHub API
521521
let url = URL(string: "https://api.github.com/repos/${{ github.repository }}/releases")!
522522
let task = URLSession.shared.dataTask(with: url) { data, response, error in
523+
if let error = error {
524+
print("Network error: \(error)")
525+
exit(1)
526+
}
527+
528+
guard let httpResponse = response as? HTTPURLResponse else {
529+
print("Invalid response type")
530+
exit(1)
531+
}
532+
523533
guard let data = data else {
524-
print("Failed to fetch releases")
534+
print("No data received")
535+
exit(1)
536+
}
537+
538+
// Log response for debugging
539+
if httpResponse.statusCode != 200 {
540+
print("HTTP \(httpResponse.statusCode): \(String(data: data, encoding: .utf8) ?? "unknown error")")
525541
exit(1)
526542
}
527543
528544
do {
545+
// First try to decode as a GitHubError to handle API errors
546+
if let errorResponse = try? JSONSerialization.jsonObject(with: data) as? [String: Any],
547+
let message = errorResponse["message"] as? String {
548+
print("GitHub API Error: \(message)")
549+
if let documentationUrl = errorResponse["documentation_url"] as? String {
550+
print("Documentation: \(documentationUrl)")
551+
}
552+
exit(1)
553+
}
554+
529555
let releases = try JSONDecoder().decode([GitHubRelease].self, from: data)
530556
let prodReleases = releases.filter { !$0.prerelease && !$0.assets.isEmpty }
531557
.sorted { lhs, rhs in
@@ -538,7 +564,8 @@ jobs:
538564
print("✅ Production appcast generated successfully")
539565
exit(0)
540566
} catch {
541-
print("Error: \(error)")
567+
print("JSON Decoding Error: \(error)")
568+
print("Raw response: \(String(data: data, encoding: .utf8) ?? "Unable to decode")")
542569
exit(1)
543570
}
544571
}

0 commit comments

Comments
 (0)