# 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.Copilot do
@moduledoc """
GitHub `copilot` API.
"""
import Noizu.Github
@doc """
Add teams to the Copilot subscription for an organization
@see https://docs.github.com/rest/copilot/copilot-user-management#add-teams-to-the-copilot-subscription-for-an-organization
"""
def add_copilot_seats_for_teams(org, body, options \\ nil) do
url = github_base() <> "/orgs/#{org}/copilot/billing/selected_teams"
body = body
api_call(:post, url, body, Noizu.Github.Raw, options)
end
@doc """
Add users to the Copilot subscription for an organization
@see https://docs.github.com/rest/copilot/copilot-user-management#add-users-to-the-copilot-subscription-for-an-organization
"""
def add_copilot_seats_for_users(org, body, options \\ nil) do
url = github_base() <> "/orgs/#{org}/copilot/billing/selected_users"
body = body
api_call(:post, url, body, Noizu.Github.Raw, options)
end
@doc """
Add organizations to the enterprise coding agent policy
@see https://docs.github.com/rest/copilot/copilot-coding-agent-management#add-organizations-to-the-enterprise-coding-agent-policy
"""
def add_organizations_to_enterprise_coding_agent_policy(enterprise, body, options \\ nil) do
url =
github_base() <> "/enterprises/#{enterprise}/copilot/policies/coding_agent/organizations"
body = body
api_call(:post, url, body, Noizu.Github.Raw, options)
end
@doc """
Remove teams from the Copilot subscription for an organization
@see https://docs.github.com/rest/copilot/copilot-user-management#remove-teams-from-the-copilot-subscription-for-an-organization
"""
def cancel_copilot_seat_assignment_for_teams(org, body, options \\ nil) do
url = github_base() <> "/orgs/#{org}/copilot/billing/selected_teams"
body = body
api_call(:delete, url, body, Noizu.Github.Raw, options)
end
@doc """
Remove users from the Copilot subscription for an organization
@see https://docs.github.com/rest/copilot/copilot-user-management#remove-users-from-the-copilot-subscription-for-an-organization
"""
def cancel_copilot_seat_assignment_for_users(org, body, options \\ nil) do
url = github_base() <> "/orgs/#{org}/copilot/billing/selected_users"
body = body
api_call(:delete, url, body, Noizu.Github.Raw, options)
end
@doc """
Get Copilot content exclusion rules for an organization
@see https://docs.github.com/rest/copilot/copilot-content-exclusion-management#get-copilot-content-exclusion-rules-for-an-organization
"""
def copilot_content_exclusion_for_organization(org, options \\ nil) do
url = github_base() <> "/orgs/#{org}/copilot/content_exclusion"
body = %{}
api_call(:get, url, body, Noizu.Github.Raw, options)
end
@doc """
Get Copilot enterprise usage metrics for a specific day
@see https://docs.github.com/rest/copilot/copilot-usage-metrics#get-copilot-enterprise-usage-metrics-for-a-specific-day
"""
def copilot_enterprise_one_day_usage_metrics(enterprise, options \\ nil) do
url =
(
query =
[
get_field(:day, options, nil)
]
|> Enum.filter(& &1)
qs = if query == [], do: "", else: "?" <> Enum.join(query, "&")
github_base() <>
"/enterprises/#{enterprise}/copilot/metrics/reports/enterprise-1-day" <> qs
)
body = %{}
api_call(:get, url, body, Noizu.Github.CopilotUsageMetrics1DayReport, options)
end
@doc """
Get Copilot enterprise usage metrics
@see https://docs.github.com/rest/copilot/copilot-usage-metrics#get-copilot-enterprise-usage-metrics
"""
def copilot_enterprise_usage_metrics(enterprise, options \\ nil) do
url =
github_base() <>
"/enterprises/#{enterprise}/copilot/metrics/reports/enterprise-28-day/latest"
body = %{}
api_call(:get, url, body, Noizu.Github.CopilotUsageMetrics28DayReport, options)
end
@doc """
Get Copilot enterprise user-teams report for a specific day
@see https://docs.github.com/rest/copilot/copilot-usage-metrics#get-copilot-enterprise-user-teams-report-for-a-specific-day
"""
def copilot_enterprise_user_teams_one_day_report(enterprise, options \\ nil) do
url =
(
query =
[
get_field(:day, options, nil)
]
|> Enum.filter(& &1)
qs = if query == [], do: "", else: "?" <> Enum.join(query, "&")
github_base() <>
"/enterprises/#{enterprise}/copilot/metrics/reports/user-teams-1-day" <> qs
)
body = %{}
api_call(:get, url, body, Noizu.Github.CopilotUsageMetrics1DayReport, options)
end
@doc """
Get Copilot organization usage metrics for a specific day
@see https://docs.github.com/rest/copilot/copilot-usage-metrics#get-copilot-organization-usage-metrics-for-a-specific-day
"""
def copilot_organization_one_day_usage_metrics(org, options \\ nil) do
url =
(
query =
[
get_field(:day, options, nil)
]
|> Enum.filter(& &1)
qs = if query == [], do: "", else: "?" <> Enum.join(query, "&")
github_base() <> "/orgs/#{org}/copilot/metrics/reports/organization-1-day" <> qs
)
body = %{}
api_call(:get, url, body, Noizu.Github.CopilotUsageMetrics1DayReport, options)
end
@doc """
Get Copilot organization usage metrics
@see https://docs.github.com/rest/copilot/copilot-usage-metrics#get-copilot-organization-usage-metrics
"""
def copilot_organization_usage_metrics(org, options \\ nil) do
url = github_base() <> "/orgs/#{org}/copilot/metrics/reports/organization-28-day/latest"
body = %{}
api_call(:get, url, body, Noizu.Github.CopilotUsageMetrics28DayReport, options)
end
@doc """
Get Copilot organization user-teams report for a specific day
@see https://docs.github.com/rest/copilot/copilot-usage-metrics#get-copilot-organization-user-teams-report-for-a-specific-day
"""
def copilot_organization_user_teams_one_day_report(org, options \\ nil) do
url =
(
query =
[
get_field(:day, options, nil)
]
|> Enum.filter(& &1)
qs = if query == [], do: "", else: "?" <> Enum.join(query, "&")
github_base() <> "/orgs/#{org}/copilot/metrics/reports/user-teams-1-day" <> qs
)
body = %{}
api_call(:get, url, body, Noizu.Github.CopilotUsageMetrics1DayReport, options)
end
@doc """
Get Copilot organization users usage metrics for a specific day
@see https://docs.github.com/rest/copilot/copilot-usage-metrics#get-copilot-organization-users-usage-metrics-for-a-specific-day
"""
def copilot_organization_users_one_day_usage_metrics(org, options \\ nil) do
url =
(
query =
[
get_field(:day, options, nil)
]
|> Enum.filter(& &1)
qs = if query == [], do: "", else: "?" <> Enum.join(query, "&")
github_base() <> "/orgs/#{org}/copilot/metrics/reports/users-1-day" <> qs
)
body = %{}
api_call(:get, url, body, Noizu.Github.CopilotUsageMetrics1DayReport, options)
end
@doc """
Get Copilot organization users usage metrics
@see https://docs.github.com/rest/copilot/copilot-usage-metrics#get-copilot-organization-users-usage-metrics
"""
def copilot_organization_users_usage_metrics(org, options \\ nil) do
url = github_base() <> "/orgs/#{org}/copilot/metrics/reports/users-28-day/latest"
body = %{}
api_call(:get, url, body, Noizu.Github.CopilotUsageMetrics28DayReport, options)
end
@doc """
Get Copilot users usage metrics for a specific day
@see https://docs.github.com/rest/copilot/copilot-usage-metrics#get-copilot-users-usage-metrics-for-a-specific-day
"""
def copilot_users_one_day_usage_metrics(enterprise, options \\ nil) do
url =
(
query =
[
get_field(:day, options, nil)
]
|> Enum.filter(& &1)
qs = if query == [], do: "", else: "?" <> Enum.join(query, "&")
github_base() <> "/enterprises/#{enterprise}/copilot/metrics/reports/users-1-day" <> qs
)
body = %{}
api_call(:get, url, body, Noizu.Github.CopilotUsageMetrics1DayReport, options)
end
@doc """
Get Copilot users usage metrics
@see https://docs.github.com/rest/copilot/copilot-usage-metrics#get-copilot-users-usage-metrics
"""
def copilot_users_usage_metrics(enterprise, options \\ nil) do
url =
github_base() <> "/enterprises/#{enterprise}/copilot/metrics/reports/users-28-day/latest"
body = %{}
api_call(:get, url, body, Noizu.Github.CopilotUsageMetrics28DayReport, options)
end
@doc """
Disable a repository for Copilot cloud agent in an organization
@see https://docs.github.com/rest/copilot/copilot-coding-agent-management#disable-a-repository-for-copilot-cloud-agent-in-an-organization
"""
def disable_copilot_coding_agent_for_repository_in_organization(
org,
repository_id,
options \\ nil
) do
url =
github_base() <>
"/orgs/#{org}/copilot/coding-agent/permissions/repositories/#{repository_id}"
body = %{}
api_call(:delete, url, body, Noizu.Github.Raw, options)
end
@doc """
Enable a repository for Copilot cloud agent in an organization
@see https://docs.github.com/rest/copilot/copilot-coding-agent-management#enable-a-repository-for-copilot-cloud-agent-in-an-organization
"""
def enable_copilot_coding_agent_for_repository_in_organization(
org,
repository_id,
body,
options \\ nil
) do
url =
github_base() <>
"/orgs/#{org}/copilot/coding-agent/permissions/repositories/#{repository_id}"
body = body
api_call(:put, url, body, Noizu.Github.Raw, options)
end
@doc """
Get Copilot cloud agent configuration for a repository
@see https://docs.github.com/rest/copilot/copilot-cloud-agent-management#get-copilot-cloud-agent-configuration-for-a-repository
"""
def get_copilot_cloud_agent_configuration(options \\ nil) do
owner = repo_owner(options)
repo = repo_name(options)
url = github_base() <> "/repos/#{owner}/#{repo}/copilot/cloud-agent/configuration"
body = %{}
api_call(:get, url, body, Noizu.Github.Raw, options)
end
@doc """
Get Copilot cloud agent permissions for an organization
@see https://docs.github.com/rest/copilot/copilot-coding-agent-management#get-copilot-cloud-agent-permissions-for-an-organization
"""
def get_copilot_coding_agent_permissions_organization(org, options \\ nil) do
url = github_base() <> "/orgs/#{org}/copilot/coding-agent/permissions"
body = %{}
api_call(:get, url, body, Noizu.Github.Raw, options)
end
@doc """
Get Copilot seat information and settings for an organization
@see https://docs.github.com/rest/copilot/copilot-user-management#get-copilot-seat-information-and-settings-for-an-organization
"""
def get_copilot_organization_details(org, options \\ nil) do
url = github_base() <> "/orgs/#{org}/copilot/billing"
body = %{}
api_call(:get, url, body, Noizu.Github.CopilotOrganizationDetails, options)
end
@doc """
Get Copilot seat assignment details for a user
@see https://docs.github.com/rest/copilot/copilot-user-management#get-copilot-seat-assignment-details-for-a-user
"""
def get_copilot_seat_details_for_user(org, username, options \\ nil) do
url = github_base() <> "/orgs/#{org}/members/#{username}/copilot"
body = %{}
api_call(:get, url, body, Noizu.Github.CopilotSeatDetails, options)
end
@doc """
List repositories enabled for Copilot cloud agent in an organization
@see https://docs.github.com/rest/copilot/copilot-coding-agent-management#list-repositories-enabled-for-copilot-cloud-agent-in-an-organization
"""
def list_copilot_coding_agent_selected_repositories_for_organization(org, 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() <> "/orgs/#{org}/copilot/coding-agent/permissions/repositories" <> qs
)
body = %{}
api_call(:get, url, body, Noizu.Github.Raw, options)
end
@doc """
List all Copilot seat assignments for an organization
@see https://docs.github.com/rest/copilot/copilot-user-management#list-all-copilot-seat-assignments-for-an-organization
"""
def list_copilot_seats(org, options \\ nil) do
url =
(
query =
[
get_field(:page, options, nil),
get_field(:per_page, options, nil)
]
|> Enum.filter(& &1)
qs = if query == [], do: "", else: "?" <> Enum.join(query, "&")
github_base() <> "/orgs/#{org}/copilot/billing/seats" <> qs
)
body = %{}
api_call(:get, url, body, Noizu.Github.Raw, options)
end
@doc """
Remove organizations from the enterprise coding agent policy
@see https://docs.github.com/rest/copilot/copilot-coding-agent-management#remove-organizations-from-the-enterprise-coding-agent-policy
"""
def remove_organizations_from_enterprise_coding_agent_policy(enterprise, body, options \\ nil) do
url =
github_base() <> "/enterprises/#{enterprise}/copilot/policies/coding_agent/organizations"
body = body
api_call(:delete, url, body, Noizu.Github.Raw, options)
end
@doc """
Set Copilot cloud agent permissions for an organization
@see https://docs.github.com/rest/copilot/copilot-coding-agent-management#set-copilot-cloud-agent-permissions-for-an-organization
"""
def set_copilot_coding_agent_permissions_organization(org, body, options \\ nil) do
url = github_base() <> "/orgs/#{org}/copilot/coding-agent/permissions"
body = body
api_call(:put, url, body, Noizu.Github.Raw, options)
end
@doc """
Set selected repositories for Copilot cloud agent in an organization
@see https://docs.github.com/rest/copilot/copilot-coding-agent-management#set-selected-repositories-for-copilot-cloud-agent-in-an-organization
"""
def set_copilot_coding_agent_selected_repositories_for_organization(org, body, options \\ nil) do
url = github_base() <> "/orgs/#{org}/copilot/coding-agent/permissions/repositories"
body = body
api_call(:put, url, body, Noizu.Github.Raw, options)
end
@doc """
Set Copilot content exclusion rules for an organization
@see https://docs.github.com/rest/copilot/copilot-content-exclusion-management#set-copilot-content-exclusion-rules-for-an-organization
"""
def set_copilot_content_exclusion_for_organization(org, body, options \\ nil) do
url = github_base() <> "/orgs/#{org}/copilot/content_exclusion"
body = body
api_call(:put, url, body, Noizu.Github.Raw, options)
end
@doc """
Set the coding agent policy for an enterprise
@see https://docs.github.com/rest/copilot/copilot-coding-agent-management#set-the-coding-agent-policy-for-an-enterprise
"""
def set_enterprise_coding_agent_policy(enterprise, body, options \\ nil) do
url = github_base() <> "/enterprises/#{enterprise}/copilot/policies/coding_agent"
body = body
api_call(:put, url, body, Noizu.Github.Raw, options)
end
end