# 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.Apps do
@moduledoc """
GitHub `apps` API.
"""
import Noizu.Github
@doc """
Add a repository to an app installation
@see https://docs.github.com/rest/apps/installations#add-a-repository-to-an-app-installation
"""
def add_repo_to_installation_for_authenticated_user(
installation_id,
repository_id,
body,
options \\ nil
) do
url = github_base() <> "/user/installations/#{installation_id}/repositories/#{repository_id}"
body = body
api_call(:put, url, body, Noizu.Github.Raw, options)
end
@doc """
Check a token
@see https://docs.github.com/rest/apps/oauth-applications#check-a-token
"""
def check_token(client_id, body, options \\ nil) do
url = github_base() <> "/applications/#{client_id}/token"
body = body
api_call(:post, url, body, Noizu.Github.Authorization, options)
end
@doc """
Create a GitHub App from a manifest
@see https://docs.github.com/rest/apps/apps#create-a-github-app-from-a-manifest
"""
def create_from_manifest(code, body, options \\ nil) do
url = github_base() <> "/app-manifests/#{code}/conversions"
body = body
api_call(:post, url, body, Noizu.Github.Raw, options)
end
@doc """
Create an installation access token for an app
@see https://docs.github.com/rest/apps/apps#create-an-installation-access-token-for-an-app
"""
def create_installation_access_token(installation_id, body, options \\ nil) do
url = github_base() <> "/app/installations/#{installation_id}/access_tokens"
body = body
api_call(:post, url, body, Noizu.Github.InstallationToken, options)
end
@doc """
Delete an app authorization
@see https://docs.github.com/rest/apps/oauth-applications#delete-an-app-authorization
"""
def delete_authorization(client_id, body, options \\ nil) do
url = github_base() <> "/applications/#{client_id}/grant"
body = body
api_call(:delete, url, body, Noizu.Github.Raw, options)
end
@doc """
Delete an installation for the authenticated app
@see https://docs.github.com/rest/apps/apps#delete-an-installation-for-the-authenticated-app
"""
def delete_installation(installation_id, options \\ nil) do
url = github_base() <> "/app/installations/#{installation_id}"
body = %{}
api_call(:delete, url, body, Noizu.Github.Raw, options)
end
@doc """
Delete an app token
@see https://docs.github.com/rest/apps/oauth-applications#delete-an-app-token
"""
def delete_token(client_id, body, options \\ nil) do
url = github_base() <> "/applications/#{client_id}/token"
body = body
api_call(:delete, url, body, Noizu.Github.Raw, options)
end
@doc """
Get the authenticated app
@see https://docs.github.com/rest/apps/apps#get-the-authenticated-app
"""
def get_authenticated(options \\ nil) do
url = github_base() <> "/app"
body = %{}
api_call(:get, url, body, Noizu.Github.Integration, options)
end
@doc """
Get an app
@see https://docs.github.com/rest/apps/apps#get-an-app
"""
def get_by_slug(app_slug, options \\ nil) do
url = github_base() <> "/apps/#{app_slug}"
body = %{}
api_call(:get, url, body, Noizu.Github.Integration, options)
end
@doc """
Get an installation for the authenticated app
@see https://docs.github.com/rest/apps/apps#get-an-installation-for-the-authenticated-app
"""
def get_installation(installation_id, options \\ nil) do
url = github_base() <> "/app/installations/#{installation_id}"
body = %{}
api_call(:get, url, body, Noizu.Github.Installation, options)
end
@doc """
Get an organization installation for the authenticated app
@see https://docs.github.com/rest/apps/apps#get-an-organization-installation-for-the-authenticated-app
"""
def get_org_installation(org, options \\ nil) do
url = github_base() <> "/orgs/#{org}/installation"
body = %{}
api_call(:get, url, body, Noizu.Github.Installation, options)
end
@doc """
Get a repository installation for the authenticated app
@see https://docs.github.com/rest/apps/apps#get-a-repository-installation-for-the-authenticated-app
"""
def get_repo_installation(options \\ nil) do
owner = repo_owner(options)
repo = repo_name(options)
url = github_base() <> "/repos/#{owner}/#{repo}/installation"
body = %{}
api_call(:get, url, body, Noizu.Github.Installation, options)
end
@doc """
Get a subscription plan for an account
@see https://docs.github.com/rest/apps/marketplace#get-a-subscription-plan-for-an-account
"""
def get_subscription_plan_for_account(account_id, options \\ nil) do
url = github_base() <> "/marketplace_listing/accounts/#{account_id}"
body = %{}
api_call(:get, url, body, Noizu.Github.MarketplacePurchase, options)
end
@doc """
Get a subscription plan for an account (stubbed)
@see https://docs.github.com/rest/apps/marketplace#get-a-subscription-plan-for-an-account-stubbed
"""
def get_subscription_plan_for_account_stubbed(account_id, options \\ nil) do
url = github_base() <> "/marketplace_listing/stubbed/accounts/#{account_id}"
body = %{}
api_call(:get, url, body, Noizu.Github.MarketplacePurchase, options)
end
@doc """
Get a user installation for the authenticated app
@see https://docs.github.com/rest/apps/apps#get-a-user-installation-for-the-authenticated-app
"""
def get_user_installation(username, options \\ nil) do
url = github_base() <> "/users/#{username}/installation"
body = %{}
api_call(:get, url, body, Noizu.Github.Installation, options)
end
@doc """
Get a webhook configuration for an app
@see https://docs.github.com/rest/apps/webhooks#get-a-webhook-configuration-for-an-app
"""
def get_webhook_config_for_app(options \\ nil) do
url = github_base() <> "/app/hook/config"
body = %{}
api_call(:get, url, body, Noizu.Github.WebhookConfig, options)
end
@doc """
Get a delivery for an app webhook
@see https://docs.github.com/rest/apps/webhooks#get-a-delivery-for-an-app-webhook
"""
def get_webhook_delivery(delivery_id, options \\ nil) do
url = github_base() <> "/app/hook/deliveries/#{delivery_id}"
body = %{}
api_call(:get, url, body, Noizu.Github.HookDelivery, options)
end
@doc """
List accounts for a plan
@see https://docs.github.com/rest/apps/marketplace#list-accounts-for-a-plan
"""
def list_accounts_for_plan(plan_id, options \\ nil) do
url =
(
query =
[
get_field(:sort, options, nil),
get_field(:direction, 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() <> "/marketplace_listing/plans/#{plan_id}/accounts" <> qs
)
body = %{}
api_call(:get, url, body, Noizu.Github.Collection.MarketplacePurchase, options)
end
@doc """
List accounts for a plan (stubbed)
@see https://docs.github.com/rest/apps/marketplace#list-accounts-for-a-plan-stubbed
"""
def list_accounts_for_plan_stubbed(plan_id, options \\ nil) do
url =
(
query =
[
get_field(:sort, options, nil),
get_field(:direction, 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() <> "/marketplace_listing/stubbed/plans/#{plan_id}/accounts" <> qs
)
body = %{}
api_call(:get, url, body, Noizu.Github.Collection.MarketplacePurchase, options)
end
@doc """
List repositories accessible to the user access token
@see https://docs.github.com/rest/apps/installations#list-repositories-accessible-to-the-user-access-token
"""
def list_installation_repos_for_authenticated_user(installation_id, options \\ nil) do
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() <> "/user/installations/#{installation_id}/repositories" <> qs
)
body = %{}
api_call(:get, url, body, Noizu.Github.Raw, options)
end
@doc """
List installation requests for the authenticated app
@see https://docs.github.com/rest/apps/apps#list-installation-requests-for-the-authenticated-app
"""
def list_installation_requests_for_authenticated_app(options \\ nil) do
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() <> "/app/installation-requests" <> qs
)
body = %{}
api_call(:get, url, body, Noizu.Github.Collection.IntegrationInstallationRequest, options)
end
@doc """
List installations for the authenticated app
@see https://docs.github.com/rest/apps/apps#list-installations-for-the-authenticated-app
"""
def list_installations(options \\ nil) do
url =
(
query =
[
get_field(:per_page, options, nil),
get_field(:page, options, nil),
get_field(:since, options, nil),
get_field(:outdated, options, nil)
]
|> Enum.filter(& &1)
qs = if query == [], do: "", else: "?" <> Enum.join(query, "&")
github_base() <> "/app/installations" <> qs
)
body = %{}
api_call(:get, url, body, Noizu.Github.Collection.Installation, options)
end
@doc """
List app installations accessible to the user access token
@see https://docs.github.com/rest/apps/installations#list-app-installations-accessible-to-the-user-access-token
"""
def list_installations_for_authenticated_user(options \\ nil) do
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() <> "/user/installations" <> qs
)
body = %{}
api_call(:get, url, body, Noizu.Github.Raw, options)
end
@doc """
List plans
@see https://docs.github.com/rest/apps/marketplace#list-plans
"""
def list_plans(options \\ nil) do
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() <> "/marketplace_listing/plans" <> qs
)
body = %{}
api_call(:get, url, body, Noizu.Github.Collection.MarketplaceListingPlan, options)
end
@doc """
List plans (stubbed)
@see https://docs.github.com/rest/apps/marketplace#list-plans-stubbed
"""
def list_plans_stubbed(options \\ nil) do
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() <> "/marketplace_listing/stubbed/plans" <> qs
)
body = %{}
api_call(:get, url, body, Noizu.Github.Collection.MarketplaceListingPlan, options)
end
@doc """
List repositories accessible to the app installation
@see https://docs.github.com/rest/apps/installations#list-repositories-accessible-to-the-app-installation
"""
def list_repos_accessible_to_installation(options \\ nil) do
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() <> "/installation/repositories" <> qs
)
body = %{}
api_call(:get, url, body, Noizu.Github.Raw, options)
end
@doc """
List subscriptions for the authenticated user
@see https://docs.github.com/rest/apps/marketplace#list-subscriptions-for-the-authenticated-user
"""
def list_subscriptions_for_authenticated_user(options \\ nil) do
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() <> "/user/marketplace_purchases" <> qs
)
body = %{}
api_call(:get, url, body, Noizu.Github.Collection.UserMarketplacePurchase, options)
end
@doc """
List subscriptions for the authenticated user (stubbed)
@see https://docs.github.com/rest/apps/marketplace#list-subscriptions-for-the-authenticated-user-stubbed
"""
def list_subscriptions_for_authenticated_user_stubbed(options \\ nil) do
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() <> "/user/marketplace_purchases/stubbed" <> qs
)
body = %{}
api_call(:get, url, body, Noizu.Github.Collection.UserMarketplacePurchase, options)
end
@doc """
List deliveries for an app webhook
@see https://docs.github.com/rest/apps/webhooks#list-deliveries-for-an-app-webhook
"""
def list_webhook_deliveries(options \\ nil) do
url =
(
query =
[
get_field(:per_page, options, nil),
get_field(:cursor, options, nil),
get_field(:status, options, nil)
]
|> Enum.filter(& &1)
qs = if query == [], do: "", else: "?" <> Enum.join(query, "&")
github_base() <> "/app/hook/deliveries" <> qs
)
body = %{}
api_call(:get, url, body, Noizu.Github.Collection.HookDeliveryItem, options)
end
@doc """
Redeliver a delivery for an app webhook
@see https://docs.github.com/rest/apps/webhooks#redeliver-a-delivery-for-an-app-webhook
"""
def redeliver_webhook_delivery(delivery_id, body, options \\ nil) do
url = github_base() <> "/app/hook/deliveries/#{delivery_id}/attempts"
body = body
api_call(:post, url, body, Noizu.Github.Raw, options)
end
@doc """
Remove a repository from an app installation
@see https://docs.github.com/rest/apps/installations#remove-a-repository-from-an-app-installation
"""
def remove_repo_from_installation_for_authenticated_user(
installation_id,
repository_id,
options \\ nil
) do
url = github_base() <> "/user/installations/#{installation_id}/repositories/#{repository_id}"
body = %{}
api_call(:delete, url, body, Noizu.Github.Raw, options)
end
@doc """
Reset a token
@see https://docs.github.com/rest/apps/oauth-applications#reset-a-token
"""
def reset_token(client_id, body, options \\ nil) do
url = github_base() <> "/applications/#{client_id}/token"
body = body
api_call(:patch, url, body, Noizu.Github.Authorization, options)
end
@doc """
Revoke an installation access token
@see https://docs.github.com/rest/apps/installations#revoke-an-installation-access-token
"""
def revoke_installation_access_token(options \\ nil) do
url = github_base() <> "/installation/token"
body = %{}
api_call(:delete, url, body, Noizu.Github.Raw, options)
end
@doc """
Create a scoped access token
@see https://docs.github.com/rest/apps/apps#create-a-scoped-access-token
"""
def scope_token(client_id, body, options \\ nil) do
url = github_base() <> "/applications/#{client_id}/token/scoped"
body = body
api_call(:post, url, body, Noizu.Github.Authorization, options)
end
@doc """
Suspend an app installation
@see https://docs.github.com/rest/apps/apps#suspend-an-app-installation
"""
def suspend_installation(installation_id, body, options \\ nil) do
url = github_base() <> "/app/installations/#{installation_id}/suspended"
body = body
api_call(:put, url, body, Noizu.Github.Raw, options)
end
@doc """
Unsuspend an app installation
@see https://docs.github.com/rest/apps/apps#unsuspend-an-app-installation
"""
def unsuspend_installation(installation_id, options \\ nil) do
url = github_base() <> "/app/installations/#{installation_id}/suspended"
body = %{}
api_call(:delete, url, body, Noizu.Github.Raw, options)
end
@doc """
Update a webhook configuration for an app
@see https://docs.github.com/rest/apps/webhooks#update-a-webhook-configuration-for-an-app
"""
def update_webhook_config_for_app(body, options \\ nil) do
url = github_base() <> "/app/hook/config"
body = body
api_call(:patch, url, body, Noizu.Github.WebhookConfig, options)
end
end