aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrancois Kritzinger <francois@codesynthesis.com>2024-04-17 08:24:02 +0200
committerFrancois Kritzinger <francois@codesynthesis.com>2024-04-24 15:16:14 +0200
commit187bfdc672dc9c9bb3944ce4d9cab5af277c5bbe (patch)
tree94c3f25cd85d5604b5a84e32906c9d37d77ced9e
parentfdb9aefaa92062d24d79341260d5b4b73f36965e (diff)
Add conversion between build_state and GitHub check run status
-rw-r--r--mod/mod-ci-github.cxx24
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