(raw: unknown)
| 124 | * Parse merge queue entry data from GitHub GraphQL response payloads. |
| 125 | */ |
| 126 | export function parseMergeQueueEntry(raw: unknown): MergeQueueEntry | null { |
| 127 | if (typeof raw !== "object" || raw === null) { |
| 128 | return null; |
| 129 | } |
| 130 | |
| 131 | const record = raw as Record<string, unknown>; |
| 132 | const state = typeof record.state === "string" ? record.state : "QUEUED"; |
| 133 | const positionRaw = record.position; |
| 134 | const position = |
| 135 | typeof positionRaw === "number" && Number.isInteger(positionRaw) && positionRaw >= 0 |
| 136 | ? positionRaw |
| 137 | : null; |
| 138 | |
| 139 | return { state, position }; |
| 140 | } |
| 141 | |
| 142 | /** |
| 143 | * Workspace PR detection result (from branch, not chat). |
no outgoing calls
no test coverage detected