export type SourcehutBuildsState = { successful: number, failed: number, inProgress: number, user: string, builds: { SourcehutBuild } } export type SourcehutBuild = { id: number, created: string, updated: string, status: SourcehutBuildStatus, note: string, tags: {[number]: string}, tasks: {[number]: SourcehutBuildTask} } export type SourcehutBuildStatus = "PENDING" | "QUEUED" | "RUNNING" | "FAILED" | "SUCCESS" | "TIMEOUT" | "CANCELLED" export type SourcehutBuildTask = { name: string, status: SourcehutBuildTaskStatus } export type SourcehutBuildTaskStatus = "PENDING" | "RUNNING" | "FAILED" | "SUCCESS" | "SKIPPED" type Err = {type: "error", error: string} type Pending = {type: "pending"} type Ok = {type: "ok"} export type PollerStatus = Err | Pending | Ok export type SourcehutBuildResponse = { data: SourcehutBuildData } export type SourcehutBuildData = { me: SourcehutUser, } export type SourcehutUser = { canonicalName: string, jobs: SourcehutUserJobs } export type SourcehutUserJobs = { results: {[number]: SourcehutBuild}, }