gitbay/Repos/RepoSettings.swift
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}