# 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