aboutsummaryrefslogtreecommitdiff
path: root/mod/mod-ci-github-service-data.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'mod/mod-ci-github-service-data.hxx')
-rw-r--r--mod/mod-ci-github-service-data.hxx50
1 files changed, 43 insertions, 7 deletions
diff --git a/mod/mod-ci-github-service-data.hxx b/mod/mod-ci-github-service-data.hxx
index c4e20b3..5573d90 100644
--- a/mod/mod-ci-github-service-data.hxx
+++ b/mod/mod-ci-github-service-data.hxx
@@ -24,12 +24,14 @@ namespace brep
//
struct check_run
{
- string build_id; // Full build id.
- string name; // Potentially shortened build id.
- optional<string> node_id; // GitHub id.
+ string build_id; // Full build id.
+ string name; // Potentially shortened build id.
+ optional<string> node_id; // GitHub id.
- build_state state;
- bool state_synced;
+ build_state state;
+ bool state_synced;
+
+ optional<result_status> status; // Only present if state is built.
string
state_string () const
@@ -59,10 +61,31 @@ namespace brep
string repository_node_id; // GitHub-internal opaque repository id.
- string head_sha;
+ // The following two are only used for pull requests.
+ //
+ // @@ TODO/LATER: maybe put them in a struct?
+ //
+ optional<string> repository_clone_url;
+ optional<uint32_t> pr_number;
+
+ // The GitHub ID of the synthetic PR merge check run or absent if it
+ // hasn't been created yet.
+ //
+ optional<string> merge_node_id;
+
+ // The commit ID the check suite or pull request (and its check runs) are
+ // reporting to. Note that in the case of a pull request this will be the
+ // head commit (`pull_request.head.sha`) as opposed to the merge commit.
+ //
+ string report_sha;
vector<check_run> check_runs;
+ // The GitHub ID of the synthetic conclusion check run or absent if it
+ // hasn't been created yet. See also merge_node_id above.
+ //
+ optional<string> conclusion_node_id;
+
// Return the check run with the specified build ID or nullptr if not
// found.
//
@@ -76,12 +99,25 @@ namespace brep
explicit
service_data (const string& json);
+ // The check_suite constructor.
+ //
+ service_data (bool warning_success,
+ string iat_token,
+ timestamp iat_expires_at,
+ uint64_t installation_id,
+ string repository_node_id,
+ string report_sha);
+
+ // The pull_request constructor.
+ //
service_data (bool warning_success,
string iat_token,
timestamp iat_expires_at,
uint64_t installation_id,
string repository_node_id,
- string head_sha);
+ string report_sha,
+ string repository_clone_url,
+ uint32_t pr_number);
service_data () = default;