val create : web_ui:Uri.t -> ?canaries:CI_target.Set.t Datakit_github.Repo.Map.t -> (unit -> CI_utils.DK.t Lwt.t) -> (CI_target.t -> string CI_term.t Astring.String.Map.t) Datakit_github.Repo.Map.t -> t
create ~web_ui connect projects is a new DataKit CI that calls
connect to connect to the database. Once
listen has been called, it will handle CI for
projects maps projects to the status reports to produce.
web_ui is the URL of the main web-page (used when adding links to PRs on GitHub). If
canaries is given, only those targets will be considered.
val listen : ?switch:Lwt_switch.t -> t -> [ `Abort ] Lwt.t
listen t runs a loop that watches for PRs and branches that need building. Returns
`Abort if the switch is turned off.
val dk : t -> CI_utils.DK.t Lwt.t
dk t is the connection to DataKit. If not currently connected, this will be a sleeping thread that will resolve to the next successful connection.
val prs : t -> target Datakit_github.PR.Index.t Datakit_github.Repo.Map.t
prs t is a snapshot of the current state of all known PRs.
val refs : t -> target Datakit_github.Ref.Index.t Datakit_github.Repo.Map.t
targets t is a snapshot of the current state of all branches.
val latest_state : t -> CI_target.t -> CI_history.State.t option Lwt.t
latest_state t target is the current state of
val job_name : job -> string
job_name j is the name of the GitHub status that this job computes.
val state : job -> string CI_output.t option
state job is the current state of
val target : target -> CI_target.v
target target is the GitHub metadata about this target.
val targets_of_commit : t -> Datakit_github.Repo.t -> string -> CI_target.t list
targets_of_commit t repo c is the list of targets in
repo with head commit
val repo : target -> Datakit_github.Repo.t
repo t is the GitHub repository that contains
val title : target -> string
title t is the title of PR