diff options
author | Francois Kritzinger <francois@codesynthesis.com> | 2024-04-17 08:24:02 +0200 |
---|---|---|
committer | Francois Kritzinger <francois@codesynthesis.com> | 2024-10-15 09:05:27 +0200 |
commit | dd55c9a89ebb7d4a515f317dc738b7a5ba6a4ce4 (patch) | |
tree | 423f88a5c29d527a6191a99b764c98c321a0164e /mod | |
parent | 72cb66f096028fe2fc429e8fe8212bff2f45e2f1 (diff) |
Add conversion between build_state and GitHub check run status
Diffstat (limited to 'mod')
-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 |