gitbay/Builds/BuildModels.swift
21 lines · 528 bytes
1import Foundation
2
3/// One row of `build list`.
4nonisolated struct Build: Decodable, Sendable, Hashable, Identifiable {
5 let number: Int64
6 let job: String
7 let status: String
8 let sha: String
9 let ref: String
10 let createdAt: Date
11 let finishedAt: Date?
12
13 enum CodingKeys: String, CodingKey {
14 case number, job, status, sha, ref
15 case createdAt = "created_at"
16 case finishedAt = "finished_at"
17 }
18
19 var id: Int64 { number }
20 var shortSHA: String { String(sha.prefix(10)) }
21}