diff options
author | Francois Kritzinger <francois@codesynthesis.com> | 2024-04-17 08:24:02 +0200 |
---|---|---|
committer | Francois Kritzinger <francois@codesynthesis.com> | 2024-05-08 15:51:48 +0200 |
commit | 194bbd78484a46c60260f9a428be1281616bcdee (patch) | |
tree | 5cf8e90f9c052e3cba3340afadc99a73bc2460db | |
parent | 2dada347635b76827303bcfa54587226ea35026d (diff) |
Add conversion between build_state and GitHub check run status
-rw-r--r-- | mod/mod-ci-github.cxx | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/mod/mod-ci-github.cxx b/mod/mod-ci-github.cxx index 9541c73..631ffbd 100644 --- a/mod/mod-ci-github.cxx +++ b/mod/mod-ci-github.cxx @@ -585,6 +585,30 @@ namespace brep return r; } + // Return the GitHub check run status corresponding to a build_state. + // + static const string& + to_string_gh (build_state st) + { + static const string sts[] {"QUEUED", "IN_PROGRESS", "COMPLETED"}; + + return sts[static_cast<size_t> (st)]; + } + + // Return the build_state corresponding to a GitHub check run status + // string. Throw invalid_argument if the passed status was invalid. + // + static build_state + from_string_gh (const string& s) + { + if (s == "QUEUED") return build_state::queued; + else if (s == "IN_PROGRESS") return build_state::building; + else if (s == "COMPLETED") return build_state::built; + else + throw invalid_argument ("invalid GitHub check run status: '" + s + + '\''); + } + // Serialize `createCheckRun` mutations for one or more builds to GraphQL. // static string |