Module B0_github

GitHub interaction.

GitHub authentication

type auth

The type for GitHub authentication.

val auth : user:string -> unit -> (auth, string) Stdlib.result

auth ~http ~user () determines a personal access token for user user. It first looks up the contents of the B0_GITHUB_TOKEN environment variable if that fails it looks up for an existing token in the Os.Dir.config () /github/b0-$USER.token file. If that fails instructions are printed on how to setup the token.

GitHub API requests

type content_type = string

The type for content types.

type v3_body = [
| `Json of B0_serialk_json.Jsong.t
| `Other of content_type * string
| `Empty
]

The type for GitHub V3 request bodies. Either JSON or something else tagged with its content type or nothing.

val req_json_v3 : ?⁠headers:B0_http.Http.headers -> B0_http.Httpr.t -> auth -> path:string -> B0_http.Http.meth -> v3_body -> (B0_serialk_json.Json.t, string) Stdlib.result

req_json_v3 auth path m ~headers body performs the request for json on path using method m, additional headers headers, body body and authentication auth.

val query_v4 : B0_http.Httpr.t -> auth -> string -> (B0_serialk_json.Json.t, string) Stdlib.result

query_v4 auth q performs the the GitHub GraphQL V4 query q using authentication auth.

Higher-level interface

module Repo : sig ... end

GitHub repositories.

module Issue : sig ... end

Repository issues.

module Release : sig ... end

Repository releases.

module Pages : sig ... end

Publish to GitHub pages.