aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrancois Kritzinger <francois@codesynthesis.com>2024-04-17 08:24:02 +0200
committerFrancois Kritzinger <francois@codesynthesis.com>2024-05-08 15:51:48 +0200
commit194bbd78484a46c60260f9a428be1281616bcdee (patch)
tree5cf8e90f9c052e3cba3340afadc99a73bc2460db
parent2dada347635b76827303bcfa54587226ea35026d (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