gitbay/Views/Repos/RepoRoute.swift
47 lines · 1561 bytes
1import Foundation
2
3/// Navigation destinations for the repo stack. Values, so navigation is
4/// testable and deep-linkable later.
5nonisolated enum RepoRoute: Hashable {
6 case repo(String)
7 case tree(repo: String, directory: String, ref: String?)
8 /// `line` opens the file scrolled to that line and marks it.
9 case file(repo: String, path: String, ref: String?, line: Int? = nil)
10 case log(repo: String, ref: String?, path: String?)
11 case settings(repo: String)
12 case grep(repo: String)
13 /// `query` opens with that search run, for a name defined more than once.
14 case symbols(repo: String, query: String? = nil)
15 case blame(repo: String, path: String, ref: String?)
16 case refs(repo: String)
17 case compare(repo: String, defaultBranch: String?)
18 case milestones(repo: String)
19 case labels(repo: String)
20 case wiki(repo: String)
21 case wikiPage(repo: String, page: String)
22 case commit(repo: String, sha: String)
23 case bookmarks
24 case savedQueries
25 case queryResults(name: String)
26 case webhooks(repo: String)
27 case webhookDeliveries(repo: String)
28 case buildSecrets(repo: String)
29 case deployKeys(repo: String)
30 case mirrors(repo: String)
31 case pageDomains(repo: String)
32 case profile(String)
33 case account
34 case tokens
35 case webSessions
36 case addAccount
37 case notifications
38 case admin
39 case adminUsers
40 case adminUser(String)
41 case adminStats
42 case adminAudit
43 case adminRunners
44 case adminInbound
45 case adminRepos
46 case adminOrgLimits
47}