Abstraction of the GitHub API, suitable for DataKit clients
Library datakit-github
type context = string list

The type build build status contexts. "ci/datakit" is stored as "ci"; "datakit".

type t = private {
commit : Commit.t;
context : context;
url : Uri.t option;
description : string option;
state : Status_state.t;

The type for status values.

val v : ?description:string -> ?url:Uri.t -> Commit.t -> string list -> Status_state.t -> t

v c n is the status with commit c and name n.

val pp : t Fmt.t

pp is the pretty-printer for status values.

val pp_context : context Fmt.t

pp_context pretty-prints build status' contexts.

type id = Commit.t * context

The type for build-status IDs.

val pp_id : id Fmt.t

pp_id is the pretty-printer for build-status IDs.

val id : t -> id

id t is t's ID.

val compare_id : id -> id -> int

compare_id compares build status IDs.

val context : t -> context

context t is t's context.

val state : t -> Status_state.t

state t is t's state.

val description : t -> string option

description t is t's description.

val url : t -> Uri.t option

url t is t's target URL.

val repo : t -> Repo.t

repo t is t's repository.

val commit : t -> Commit.t

commit t is t's commit.

val commit_hash : t -> string

commit_hash t is t's commit SHA1.

val same_id : t -> t -> bool

same_id x y is true if x and y have the same ID.

val compare : t -> t -> int

compare is the comparison function for build status.

module Set : sig ... end

Sets of build status.

module Index : MAP with type key = id

Maps indexed by build status IDs.

val index : Set.t -> t Index.t Repo.Map.t

index s indexes s by build status IDs.