From 6fbae58d89bdd4bf50e29da7ba7b7ec6df030823 Mon Sep 17 00:00:00 2001 From: Francois Kritzinger Date: Wed, 17 Apr 2024 08:24:02 +0200 Subject: Add conversion between build_state and GitHub check run status --- mod/mod-ci-github.cxx | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'mod/mod-ci-github.cxx') 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 (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 -- cgit v1.1