# Generated by `mix github.gen` from docs/github-api/api.github.com.json.
# Do not edit by hand; re-run the task instead.
defmodule Noizu.Github.Api.Checks do
@moduledoc """
GitHub `checks` API.
"""
import Noizu.Github
@doc """
Create a check run
@see https://docs.github.com/rest/checks/runs#create-a-check-run
"""
def create(body, options \\ nil) do
owner = repo_owner(options)
repo = repo_name(options)
url = github_base() <> "/repos/#{owner}/#{repo}/check-runs"
body = body
api_call(:post, url, body, Noizu.Github.CheckRun, options)
end
@doc """
Create a check suite
@see https://docs.github.com/rest/checks/suites#create-a-check-suite
"""
def create_suite(body, options \\ nil) do
owner = repo_owner(options)
repo = repo_name(options)
url = github_base() <> "/repos/#{owner}/#{repo}/check-suites"
body = body
api_call(:post, url, body, Noizu.Github.CheckSuite, options)
end
@doc """
Get a check run
@see https://docs.github.com/rest/checks/runs#get-a-check-run
"""
def get(check_run_id, options \\ nil) do
owner = repo_owner(options)
repo = repo_name(options)
url = github_base() <> "/repos/#{owner}/#{repo}/check-runs/#{check_run_id}"
body = %{}
api_call(:get, url, body, Noizu.Github.CheckRun, options)
end
@doc """
Get a check suite
@see https://docs.github.com/rest/checks/suites#get-a-check-suite
"""
def get_suite(check_suite_id, options \\ nil) do
owner = repo_owner(options)
repo = repo_name(options)
url = github_base() <> "/repos/#{owner}/#{repo}/check-suites/#{check_suite_id}"
body = %{}
api_call(:get, url, body, Noizu.Github.CheckSuite, options)
end
@doc """
List check run annotations
@see https://docs.github.com/rest/checks/runs#list-check-run-annotations
"""
def list_annotations(check_run_id, options \\ nil) do
owner = repo_owner(options)
repo = repo_name(options)
url =
(
query =
[
get_field(:per_page, options, nil),
get_field(:page, options, nil)
]
|> Enum.filter(& &1)
qs = if query == [], do: "", else: "?" <> Enum.join(query, "&")
github_base() <> "/repos/#{owner}/#{repo}/check-runs/#{check_run_id}/annotations" <> qs
)
body = %{}
api_call(:get, url, body, Noizu.Github.Collection.CheckAnnotation, options)
end
@doc """
List check runs for a Git reference
@see https://docs.github.com/rest/checks/runs#list-check-runs-for-a-git-reference
"""
def list_for_ref(ref, options \\ nil) do
owner = repo_owner(options)
repo = repo_name(options)
url =
(
query =
[
get_field(:check_name, options, nil),
get_field(:status, options, nil),
get_field(:filter, options, nil),
get_field(:per_page, options, nil),
get_field(:page, options, nil),
get_field(:app_id, options, nil)
]
|> Enum.filter(& &1)
qs = if query == [], do: "", else: "?" <> Enum.join(query, "&")
github_base() <> "/repos/#{owner}/#{repo}/commits/#{ref}/check-runs" <> qs
)
body = %{}
api_call(:get, url, body, Noizu.Github.Raw, options)
end
@doc """
List check runs in a check suite
@see https://docs.github.com/rest/checks/runs#list-check-runs-in-a-check-suite
"""
def list_for_suite(check_suite_id, options \\ nil) do
owner = repo_owner(options)
repo = repo_name(options)
url =
(
query =
[
get_field(:check_name, options, nil),
get_field(:status, options, nil),
get_field(:filter, options, nil),
get_field(:per_page, options, nil),
get_field(:page, options, nil)
]
|> Enum.filter(& &1)
qs = if query == [], do: "", else: "?" <> Enum.join(query, "&")
github_base() <> "/repos/#{owner}/#{repo}/check-suites/#{check_suite_id}/check-runs" <> qs
)
body = %{}
api_call(:get, url, body, Noizu.Github.Raw, options)
end
@doc """
List check suites for a Git reference
@see https://docs.github.com/rest/checks/suites#list-check-suites-for-a-git-reference
"""
def list_suites_for_ref(ref, options \\ nil) do
owner = repo_owner(options)
repo = repo_name(options)
url =
(
query =
[
get_field(:app_id, options, nil),
get_field(:check_name, options, nil),
get_field(:per_page, options, nil),
get_field(:page, options, nil)
]
|> Enum.filter(& &1)
qs = if query == [], do: "", else: "?" <> Enum.join(query, "&")
github_base() <> "/repos/#{owner}/#{repo}/commits/#{ref}/check-suites" <> qs
)
body = %{}
api_call(:get, url, body, Noizu.Github.Raw, options)
end
@doc """
Rerequest a check run
@see https://docs.github.com/rest/checks/runs#rerequest-a-check-run
"""
def rerequest_run(check_run_id, body, options \\ nil) do
owner = repo_owner(options)
repo = repo_name(options)
url = github_base() <> "/repos/#{owner}/#{repo}/check-runs/#{check_run_id}/rerequest"
body = body
api_call(:post, url, body, Noizu.Github.Raw, options)
end
@doc """
Rerequest a check suite
@see https://docs.github.com/rest/checks/suites#rerequest-a-check-suite
"""
def rerequest_suite(check_suite_id, body, options \\ nil) do
owner = repo_owner(options)
repo = repo_name(options)
url = github_base() <> "/repos/#{owner}/#{repo}/check-suites/#{check_suite_id}/rerequest"
body = body
api_call(:post, url, body, Noizu.Github.Raw, options)
end
@doc """
Update repository preferences for check suites
@see https://docs.github.com/rest/checks/suites#update-repository-preferences-for-check-suites
"""
def set_suites_preferences(body, options \\ nil) do
owner = repo_owner(options)
repo = repo_name(options)
url = github_base() <> "/repos/#{owner}/#{repo}/check-suites/preferences"
body = body
api_call(:patch, url, body, Noizu.Github.CheckSuitePreference, options)
end
@doc """
Update a check run
@see https://docs.github.com/rest/checks/runs#update-a-check-run
"""
def update(check_run_id, body, options \\ nil) do
owner = repo_owner(options)
repo = repo_name(options)
url = github_base() <> "/repos/#{owner}/#{repo}/check-runs/#{check_run_id}"
body = body
api_call(:patch, url, body, Noizu.Github.CheckRun, options)
end
end