summaryrefslogtreecommitdiff
path: root/Shared
diff options
context:
space:
mode:
authorChristian Cleberg <[email protected]>2026-04-13 19:44:44 -0500
committerChristian Cleberg <[email protected]>2026-04-13 19:44:44 -0500
commitfe1ccc69661603d419a642a450e4ac9e1258adb0 (patch)
tree386455b6b5468abdd9dfa46dd4802b10da8b77a2 /Shared
parent6ec9754ce34f331641b000eddef3d44bca2631a5 (diff)
downloadhutch-3.1.3.tar.gz
hutch-3.1.3.tar.bz2
hutch-3.1.3.zip
fix: centralize URLs, tighten models, and polish SwiftUI bindingsv3.1.3
- Add shared HutchDeepLinkURL constants for app, widgets, and tests. - Bump marketing version to 3.1.2 and build to 70 (app + widget extension). - Point Hutch stats default base URL at HutchStatsAPI; add SRHTWebURL status incident feed and reuse it from SystemStatusService. - Group Project into Metadata and Resources; split ContributionStatsResponse into StatsWindow and StatsTotals with updated decoding and tests. - Replace @Bindable usage with explicit Bindings in Profile, Projects list, and repository ACL flows; simplify Home pinned-item helper; add no-op bodies on cancel alert buttons where the compiler requires a statement. - Move repository row build-status indicator next to the relative-updated caption and reserve a fixed 8×8 slot so the row does not jump when status loads. - Use NSString.lastPathComponent for build artifact filenames; collapse duplicate ACL error branches; minor HutchStats HTTP and XMLParserDelegate cleanups. - Point widgets at HutchDeepLinkURL helpers; align tests with the new response and URL types.
Diffstat (limited to 'Shared')
-rw-r--r--Shared/HutchDeepLinkURLs.swift23
1 files changed, 23 insertions, 0 deletions
diff --git a/Shared/HutchDeepLinkURLs.swift b/Shared/HutchDeepLinkURLs.swift
new file mode 100644
index 0000000..9b60086
--- /dev/null
+++ b/Shared/HutchDeepLinkURLs.swift
@@ -0,0 +1,23 @@
+import Foundation
+
+/// Canonical `hutch://` URLs for widgets, tests, and in-app links.
+enum HutchDeepLinkURL {
+ static let home = URL(string: "hutch://home")!
+ static let emptyHost = URL(string: "hutch://")!
+ static let repositoryGit = URL(string: "hutch://git/~user/repo")!
+ static let ticket = URL(string: "hutch://todo/~owner/tracker/42")!
+ static let buildJob = URL(string: "hutch://builds/12345")!
+ static let trackers = URL(string: "hutch://trackers")!
+ static let builds = URL(string: "hutch://builds")!
+ static let repositories = URL(string: "hutch://repositories")!
+ static let status = URL(string: "hutch://status")!
+ static let lookup = URL(string: "hutch://lookup")!
+ static let unknown = URL(string: "hutch://unknown")!
+ static let invalidTicketId = URL(string: "hutch://todo/~owner/tracker/abc")!
+ static let invalidBuildId = URL(string: "hutch://builds/abc")!
+}
+
+/// Default Hutch Stats API base URL (mirrors `AppConfiguration` fallback).
+enum HutchStatsAPI {
+ static let defaultBaseURL = URL(string: "https://hutch-stats.zerolabs.sh")!
+}