a native ios client for gitbay

client ios swift

https://gitbay.org

gitbay/Repos/RepoSettings.swift

ui-smoke
gitbay-ios/gitbay/Repos/RepoSettings.swift history · blame · raw

26 lines · 905 bytes

 1import Foundation
 2
 3/// `repo settings show`  admin-only view of the repo's control knobs.
 4/// Every field is omitted at its zero value, so absent means default.
 5nonisolated struct RepoSettings: Decodable, Sendable, Hashable {
 6    let protectedBranches: [String]?
 7    let requireSignedCommits: Bool?
 8    let requireChecks: Bool?
 9    let requireApprovals: Int?
10    let requireResolved: Bool?
11    let gitDaemon: Bool?
12    let archived: Bool?
13    let website: String?
14
15    enum CodingKeys: String, CodingKey {
16        case protectedBranches = "protected_branches"
17        case requireSignedCommits = "require_signed_commits"
18        case requireChecks = "require_checks"
19        case requireApprovals = "require_approvals"
20        case requireResolved = "require_resolved"
21        case gitDaemon = "git_daemon"
22        case archived, website
23    }
24
25    var branches: [String] { protectedBranches ?? [] }
26}