| 1 | namespace AgentForge.Models; |
| 2 | |
| 3 | public enum CiRunStatus |
| 4 | { |
| 5 | Unknown, |
| 6 | Pending, |
| 7 | Success, |
| 8 | Failure, |
| 9 | Cancelled, |
| 10 | } |
| 11 | |
| 12 | public static class CiRunStatusExtensions |
| 13 | { |
| 14 | public static string ToSlug(this CiRunStatus status) => status switch |
| 15 | { |
| 16 | CiRunStatus.Pending => "pending", |
| 17 | CiRunStatus.Success => "success", |
| 18 | CiRunStatus.Failure => "failure", |
| 19 | CiRunStatus.Cancelled => "cancelled", |
| 20 | _ => "unknown", |
| 21 | }; |
| 22 | |
| 23 | public static bool TryParseSlug(string? slug, out CiRunStatus status) |
| 24 | { |
| 25 | switch (slug?.Trim().ToLowerInvariant()) |
| 26 | { |
| 27 | case "pending": |
| 28 | status = CiRunStatus.Pending; |
| 29 | return true; |
| 30 | case "success": |
| 31 | status = CiRunStatus.Success; |
| 32 | return true; |
| 33 | case "failure": |
| 34 | status = CiRunStatus.Failure; |
| 35 | return true; |
| 36 | case "cancelled": |
| 37 | status = CiRunStatus.Cancelled; |
| 38 | return true; |
| 39 | case "unknown": |
| 40 | status = CiRunStatus.Unknown; |
| 41 | return true; |
| 42 | default: |
| 43 | status = CiRunStatus.Unknown; |
| 44 | return false; |
| 45 | } |
| 46 | } |
| 47 | } |
| 48 | |
View only · write via MCP/CIDE