aboutsummaryrefslogtreecommitdiff
path: root/mod/mod-ci-github.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'mod/mod-ci-github.hxx')
-rw-r--r--mod/mod-ci-github.hxx129
1 files changed, 0 insertions, 129 deletions
diff --git a/mod/mod-ci-github.hxx b/mod/mod-ci-github.hxx
index b628b2a..a6cd180 100644
--- a/mod/mod-ci-github.hxx
+++ b/mod/mod-ci-github.hxx
@@ -13,137 +13,8 @@
#include <mod/ci-common.hxx>
#include <mod/tenant-service.hxx>
-namespace butl
-{
- namespace json
- {
- class parser;
- }
-}
-
namespace brep
{
- // GitHub request/response types.
- //
- // Note that the GitHub REST and GraphQL APIs use different ID types and
- // values. In the REST API they are usually integers (but sometimes
- // strings!) whereas in GraphQL they are always strings (note:
- // base64-encoded and opaque, not just the REST ID value as a string).
- //
- // In both APIs the ID field is called `id`, but REST responses and webhook
- // events also contain the corresponding GraphQL object's ID in the
- // `node_id` field.
- //
- // In the structures below we always use the RESP API/webhook names for ID
- // fields. I.e., `id` always refers to the REST/webhook ID, and `node_id`
- // always refers to the GraphQL ID.
- //
- // Note that having the below types directly in brep causes clashes (e.g.,
- // for the repository name).
- //
- namespace gh
- {
- namespace json = butl::json;
-
- // The "check_suite" object within a check_suite webhook event request.
- //
- struct check_suite
- {
- string node_id;
- string head_branch;
- string head_sha;
- string before;
- string after;
-
- explicit
- check_suite (json::parser&);
-
- check_suite () = default;
- };
-
- struct check_run
- {
- string node_id;
- string name;
- string status;
-
- explicit
- check_run (json::parser&);
-
- check_run () = default;
- };
-
- struct repository
- {
- string node_id;
- string name;
- string full_name;
- string default_branch;
- string clone_url;
-
- explicit
- repository (json::parser&);
-
- repository () = default;
- };
-
- struct installation
- {
- uint64_t id; // Note: used for installation access token (REST API).
-
- explicit
- installation (json::parser&);
-
- installation () = default;
- };
-
- // The check_suite webhook event request.
- //
- struct check_suite_event
- {
- string action;
- gh::check_suite check_suite;
- gh::repository repository;
- gh::installation installation;
-
- explicit
- check_suite_event (json::parser&);
-
- check_suite_event () = default;
- };
-
- struct installation_access_token
- {
- string token;
- timestamp expires_at;
-
- explicit
- installation_access_token (json::parser&);
-
- installation_access_token (string token, timestamp expires_at);
-
- installation_access_token () = default;
- };
-
- ostream&
- operator<< (ostream&, const check_suite&);
-
- ostream&
- operator<< (ostream&, const check_run&);
-
- ostream&
- operator<< (ostream&, const repository&);
-
- ostream&
- operator<< (ostream&, const installation&);
-
- ostream&
- operator<< (ostream&, const check_suite_event&);
-
- ostream&
- operator<< (ostream&, const installation_access_token&);
- }
-
class ci_github: public handler,
private ci_start,
public tenant_service_build_queued,