# 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.Orgs do @moduledoc """ GitHub `orgs` API. """ import Noizu.Github @doc """ Add a security manager team @see https://docs.github.com/rest/orgs/security-managers#add-a-security-manager-team """ def add_security_manager_team(org, team_slug, body, options \\ nil) do url = github_base() <> "/orgs/#{org}/security-managers/teams/#{team_slug}" body = body api_call(:put, url, body, Noizu.Github.Raw, options) end @doc """ Assign an organization role to a team @see https://docs.github.com/rest/orgs/organization-roles#assign-an-organization-role-to-a-team """ def assign_team_to_org_role(org, team_slug, role_id, body, options \\ nil) do url = github_base() <> "/orgs/#{org}/organization-roles/teams/#{team_slug}/#{role_id}" body = body api_call(:put, url, body, Noizu.Github.Raw, options) end @doc """ Assign an organization role to a user @see https://docs.github.com/rest/orgs/organization-roles#assign-an-organization-role-to-a-user """ def assign_user_to_org_role(org, username, role_id, body, options \\ nil) do url = github_base() <> "/orgs/#{org}/organization-roles/users/#{username}/#{role_id}" body = body api_call(:put, url, body, Noizu.Github.Raw, options) end @doc """ Block a user from an organization @see https://docs.github.com/rest/orgs/blocking#block-a-user-from-an-organization """ def block_user(org, username, body, options \\ nil) do url = github_base() <> "/orgs/#{org}/blocks/#{username}" body = body api_call(:put, url, body, Noizu.Github.Raw, options) end @doc """ Cancel an organization invitation @see https://docs.github.com/rest/orgs/members#cancel-an-organization-invitation """ def cancel_invitation(org, invitation_id, options \\ nil) do url = github_base() <> "/orgs/#{org}/invitations/#{invitation_id}" body = %{} api_call(:delete, url, body, Noizu.Github.Raw, options) end @doc """ Check if a user is blocked by an organization @see https://docs.github.com/rest/orgs/blocking#check-if-a-user-is-blocked-by-an-organization """ def check_blocked_user(org, username, options \\ nil) do url = github_base() <> "/orgs/#{org}/blocks/#{username}" body = %{} api_call(:get, url, body, Noizu.Github.Raw, options) end @doc """ Check organization membership for a user @see https://docs.github.com/rest/orgs/members#check-organization-membership-for-a-user """ def check_membership_for_user(org, username, options \\ nil) do url = github_base() <> "/orgs/#{org}/members/#{username}" body = %{} api_call(:get, url, body, Noizu.Github.Raw, options) end @doc """ Check public organization membership for a user @see https://docs.github.com/rest/orgs/members#check-public-organization-membership-for-a-user """ def check_public_membership_for_user(org, username, options \\ nil) do url = github_base() <> "/orgs/#{org}/public_members/#{username}" body = %{} api_call(:get, url, body, Noizu.Github.Raw, options) end @doc """ Convert an organization member to outside collaborator @see https://docs.github.com/rest/orgs/outside-collaborators#convert-an-organization-member-to-outside-collaborator """ def convert_member_to_outside_collaborator(org, username, body, options \\ nil) do url = github_base() <> "/orgs/#{org}/outside_collaborators/#{username}" body = body api_call(:put, url, body, Noizu.Github.Raw, options) end @doc """ Create an artifact deployment record @see https://docs.github.com/rest/orgs/artifact-metadata#create-an-artifact-deployment-record """ def create_artifact_deployment_record(org, body, options \\ nil) do url = github_base() <> "/orgs/#{org}/artifacts/metadata/deployment-record" body = body api_call(:post, url, body, Noizu.Github.Raw, options) end @doc """ Create artifact metadata storage record @see https://docs.github.com/rest/orgs/artifact-metadata#create-artifact-metadata-storage-record """ def create_artifact_storage_record(org, body, options \\ nil) do url = github_base() <> "/orgs/#{org}/artifacts/metadata/storage-record" body = body api_call(:post, url, body, Noizu.Github.Raw, options) end @doc """ Create an organization invitation @see https://docs.github.com/rest/orgs/members#create-an-organization-invitation """ def create_invitation(org, body, options \\ nil) do url = github_base() <> "/orgs/#{org}/invitations" body = body api_call(:post, url, body, Noizu.Github.OrganizationInvitation, options) end @doc """ Create issue field for an organization @see https://docs.github.com/rest/orgs/issue-fields#create-issue-field-for-an-organization """ def create_issue_field(org, body, options \\ nil) do url = github_base() <> "/orgs/#{org}/issue-fields" body = body api_call(:post, url, body, Noizu.Github.IssueField, options) end @doc """ Create issue type for an organization @see https://docs.github.com/rest/orgs/issue-types#create-issue-type-for-an-organization """ def create_issue_type(org, body, options \\ nil) do url = github_base() <> "/orgs/#{org}/issue-types" body = body api_call(:post, url, body, Noizu.Github.IssueType, options) end @doc """ Create an organization webhook @see https://docs.github.com/rest/orgs/webhooks#create-an-organization-webhook """ def create_webhook(org, body, options \\ nil) do url = github_base() <> "/orgs/#{org}/hooks" body = body api_call(:post, url, body, Noizu.Github.OrgHook, options) end @doc """ Create or update a custom property for an organization @see https://docs.github.com/rest/orgs/custom-properties#create-or-update-a-custom-property-for-an-organization """ def custom_properties_for_repos_create_or_update_organization_definition( org, custom_property_name, body, options \\ nil ) do url = github_base() <> "/orgs/#{org}/properties/schema/#{custom_property_name}" body = body api_call(:put, url, body, Noizu.Github.CustomProperty, options) end @doc """ Create or update custom properties for an organization @see https://docs.github.com/rest/orgs/custom-properties#create-or-update-custom-properties-for-an-organization """ def custom_properties_for_repos_create_or_update_organization_definitions( org, body, options \\ nil ) do url = github_base() <> "/orgs/#{org}/properties/schema" body = body api_call(:patch, url, body, Noizu.Github.Collection.CustomProperty, options) end @doc """ Create or update custom property values for organization repositories @see https://docs.github.com/rest/orgs/custom-properties#create-or-update-custom-property-values-for-organization-repositories """ def custom_properties_for_repos_create_or_update_organization_values(org, body, options \\ nil) do url = github_base() <> "/orgs/#{org}/properties/values" body = body api_call(:patch, url, body, Noizu.Github.Raw, options) end @doc """ Remove a custom property for an organization @see https://docs.github.com/rest/orgs/custom-properties#remove-a-custom-property-for-an-organization """ def custom_properties_for_repos_delete_organization_definition( org, custom_property_name, options \\ nil ) do url = github_base() <> "/orgs/#{org}/properties/schema/#{custom_property_name}" body = %{} api_call(:delete, url, body, Noizu.Github.Raw, options) end @doc """ Get a custom property for an organization @see https://docs.github.com/rest/orgs/custom-properties#get-a-custom-property-for-an-organization """ def custom_properties_for_repos_get_organization_definition( org, custom_property_name, options \\ nil ) do url = github_base() <> "/orgs/#{org}/properties/schema/#{custom_property_name}" body = %{} api_call(:get, url, body, Noizu.Github.CustomProperty, options) end @doc """ Get all custom properties for an organization @see https://docs.github.com/rest/orgs/custom-properties#get-all-custom-properties-for-an-organization """ def custom_properties_for_repos_get_organization_definitions(org, options \\ nil) do url = github_base() <> "/orgs/#{org}/properties/schema" body = %{} api_call(:get, url, body, Noizu.Github.Collection.CustomProperty, options) end @doc """ List custom property values for organization repositories @see https://docs.github.com/rest/orgs/custom-properties#list-custom-property-values-for-organization-repositories """ def custom_properties_for_repos_get_organization_values(org, options \\ nil) do url = ( query = [ get_field(:per_page, options, nil), get_field(:page, options, nil), get_field(:repository_query, options, nil) ] |> Enum.filter(& &1) qs = if query == [], do: "", else: "?" <> Enum.join(query, "&") github_base() <> "/orgs/#{org}/properties/values" <> qs ) body = %{} api_call(:get, url, body, Noizu.Github.Collection.OrgRepoCustomPropertyValues, options) end @doc """ Delete an organization @see https://docs.github.com/rest/orgs/orgs#delete-an-organization """ def delete(org, options \\ nil) do url = github_base() <> "/orgs/#{org}" body = %{} api_call(:delete, url, body, Noizu.Github.Raw, options) end @doc """ Delete attestations in bulk @see https://docs.github.com/rest/orgs/attestations#delete-attestations-in-bulk """ def delete_attestations_bulk(org, body, options \\ nil) do url = github_base() <> "/orgs/#{org}/attestations/delete-request" body = body api_call(:post, url, body, Noizu.Github.Raw, options) end @doc """ Delete attestations by ID @see https://docs.github.com/rest/orgs/attestations#delete-attestations-by-id """ def delete_attestations_by_id(org, attestation_id, options \\ nil) do url = github_base() <> "/orgs/#{org}/attestations/#{attestation_id}" body = %{} api_call(:delete, url, body, Noizu.Github.Raw, options) end @doc """ Delete attestations by subject digest @see https://docs.github.com/rest/orgs/attestations#delete-attestations-by-subject-digest """ def delete_attestations_by_subject_digest(org, subject_digest, options \\ nil) do url = github_base() <> "/orgs/#{org}/attestations/digest/#{subject_digest}" body = %{} api_call(:delete, url, body, Noizu.Github.Raw, options) end @doc """ Delete issue field for an organization @see https://docs.github.com/rest/orgs/issue-fields#delete-issue-field-for-an-organization """ def delete_issue_field(org, issue_field_id, options \\ nil) do url = github_base() <> "/orgs/#{org}/issue-fields/#{issue_field_id}" body = %{} api_call(:delete, url, body, Noizu.Github.Raw, options) end @doc """ Delete issue type for an organization @see https://docs.github.com/rest/orgs/issue-types#delete-issue-type-for-an-organization """ def delete_issue_type(org, issue_type_id, options \\ nil) do url = github_base() <> "/orgs/#{org}/issue-types/#{issue_type_id}" body = %{} api_call(:delete, url, body, Noizu.Github.Raw, options) end @doc """ Delete an organization webhook @see https://docs.github.com/rest/orgs/webhooks#delete-an-organization-webhook """ def delete_webhook(org, hook_id, options \\ nil) do url = github_base() <> "/orgs/#{org}/hooks/#{hook_id}" body = %{} api_call(:delete, url, body, Noizu.Github.Raw, options) end @doc """ Disable a selected repository for immutable releases in an organization @see https://docs.github.com/rest/orgs/orgs#disable-a-selected-repository-for-immutable-releases-in-an-organization """ def disable_selected_repository_immutable_releases_organization( org, repository_id, options \\ nil ) do url = github_base() <> "/orgs/#{org}/settings/immutable-releases/repositories/#{repository_id}" body = %{} api_call(:delete, url, body, Noizu.Github.Raw, options) end @doc """ Enable or disable a security feature for an organization @see https://docs.github.com/rest/orgs/orgs#enable-or-disable-a-security-feature-for-an-organization """ def enable_or_disable_security_product_on_all_org_repos( org, security_product, enablement, body, options \\ nil ) do url = github_base() <> "/orgs/#{org}/#{security_product}/#{enablement}" body = body api_call(:post, url, body, Noizu.Github.Raw, options) end @doc """ Enable a selected repository for immutable releases in an organization @see https://docs.github.com/rest/orgs/orgs#enable-a-selected-repository-for-immutable-releases-in-an-organization """ def enable_selected_repository_immutable_releases_organization( org, repository_id, body, options \\ nil ) do url = github_base() <> "/orgs/#{org}/settings/immutable-releases/repositories/#{repository_id}" body = body api_call(:put, url, body, Noizu.Github.Raw, options) end @doc """ Get an organization @see https://docs.github.com/rest/orgs/orgs#get-an-organization """ def get(org, options \\ nil) do url = github_base() <> "/orgs/#{org}" body = %{} api_call(:get, url, body, Noizu.Github.OrganizationFull, options) end @doc """ Get immutable releases settings for an organization @see https://docs.github.com/rest/orgs/orgs#get-immutable-releases-settings-for-an-organization """ def get_immutable_releases_settings(org, options \\ nil) do url = github_base() <> "/orgs/#{org}/settings/immutable-releases" body = %{} api_call(:get, url, body, Noizu.Github.ImmutableReleasesOrganizationSettings, options) end @doc """ List selected repositories for immutable releases enforcement @see https://docs.github.com/rest/orgs/orgs#list-selected-repositories-for-immutable-releases-enforcement """ def get_immutable_releases_settings_repositories(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}/settings/immutable-releases/repositories" <> qs ) body = %{} api_call(:get, url, body, Noizu.Github.Raw, options) end @doc """ Get an organization membership for the authenticated user @see https://docs.github.com/rest/orgs/members#get-an-organization-membership-for-the-authenticated-user """ def get_membership_for_authenticated_user(org, options \\ nil) do url = github_base() <> "/user/memberships/orgs/#{org}" body = %{} api_call(:get, url, body, Noizu.Github.OrgMembership, options) end @doc """ Get organization membership for a user @see https://docs.github.com/rest/orgs/members#get-organization-membership-for-a-user """ def get_membership_for_user(org, username, options \\ nil) do url = github_base() <> "/orgs/#{org}/memberships/#{username}" body = %{} api_call(:get, url, body, Noizu.Github.OrgMembership, options) end @doc """ Get an organization role @see https://docs.github.com/rest/orgs/organization-roles#get-an-organization-role """ def get_org_role(org, role_id, options \\ nil) do url = github_base() <> "/orgs/#{org}/organization-roles/#{role_id}" body = %{} api_call(:get, url, body, Noizu.Github.OrganizationRole, options) end @doc """ Get organization ruleset history @see https://docs.github.com/rest/orgs/rules#get-organization-ruleset-history """ def get_org_ruleset_history(org, ruleset_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() <> "/orgs/#{org}/rulesets/#{ruleset_id}/history" <> qs ) body = %{} api_call(:get, url, body, Noizu.Github.Collection.RulesetVersion, options) end @doc """ Get organization ruleset version @see https://docs.github.com/rest/orgs/rules#get-organization-ruleset-version """ def get_org_ruleset_version(org, ruleset_id, version_id, options \\ nil) do url = github_base() <> "/orgs/#{org}/rulesets/#{ruleset_id}/history/#{version_id}" body = %{} api_call(:get, url, body, Noizu.Github.RulesetVersionWithState, options) end @doc """ Get an organization webhook @see https://docs.github.com/rest/orgs/webhooks#get-an-organization-webhook """ def get_webhook(org, hook_id, options \\ nil) do url = github_base() <> "/orgs/#{org}/hooks/#{hook_id}" body = %{} api_call(:get, url, body, Noizu.Github.OrgHook, options) end @doc """ Get a webhook configuration for an organization @see https://docs.github.com/rest/orgs/webhooks#get-a-webhook-configuration-for-an-organization """ def get_webhook_config_for_org(org, hook_id, options \\ nil) do url = github_base() <> "/orgs/#{org}/hooks/#{hook_id}/config" body = %{} api_call(:get, url, body, Noizu.Github.WebhookConfig, options) end @doc """ Get a webhook delivery for an organization webhook @see https://docs.github.com/rest/orgs/webhooks#get-a-webhook-delivery-for-an-organization-webhook """ def get_webhook_delivery(org, hook_id, delivery_id, options \\ nil) do url = github_base() <> "/orgs/#{org}/hooks/#{hook_id}/deliveries/#{delivery_id}" body = %{} api_call(:get, url, body, Noizu.Github.HookDelivery, options) end @doc """ List organizations @see https://docs.github.com/rest/orgs/orgs#list-organizations """ def list(options \\ nil) do url = ( query = [ get_field(:since, options, nil), get_field(:per_page, options, nil) ] |> Enum.filter(& &1) qs = if query == [], do: "", else: "?" <> Enum.join(query, "&") github_base() <> "/organizations" <> qs ) body = %{} api_call(:get, url, body, Noizu.Github.Collection.OrganizationSimple, options) end @doc """ List app installations for an organization @see https://docs.github.com/rest/orgs/orgs#list-app-installations-for-an-organization """ def list_app_installations(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}/installations" <> qs ) body = %{} api_call(:get, url, body, Noizu.Github.Raw, options) end @doc """ List artifact deployment records @see https://docs.github.com/rest/orgs/artifact-metadata#list-artifact-deployment-records """ def list_artifact_deployment_records(org, subject_digest, options \\ nil) do url = github_base() <> "/orgs/#{org}/artifacts/#{subject_digest}/metadata/deployment-records" body = %{} api_call(:get, url, body, Noizu.Github.Raw, options) end @doc """ List artifact storage records @see https://docs.github.com/rest/orgs/artifact-metadata#list-artifact-storage-records """ def list_artifact_storage_records(org, subject_digest, options \\ nil) do url = github_base() <> "/orgs/#{org}/artifacts/#{subject_digest}/metadata/storage-records" body = %{} api_call(:get, url, body, Noizu.Github.Raw, options) end @doc """ List attestation repositories @see https://docs.github.com/rest/orgs/attestations#list-attestation-repositories """ def list_attestation_repositories(org, options \\ nil) do url = ( query = [ get_field(:per_page, options, nil), get_field(:before, options, nil), get_field(:after, options, nil), get_field(:predicate_type, options, nil) ] |> Enum.filter(& &1) qs = if query == [], do: "", else: "?" <> Enum.join(query, "&") github_base() <> "/orgs/#{org}/attestations/repositories" <> qs ) body = %{} api_call(:get, url, body, Noizu.Github.Collection, options) end @doc """ List attestations @see https://docs.github.com/rest/orgs/attestations#list-attestations """ def list_attestations(org, subject_digest, options \\ nil) do url = ( query = [ get_field(:per_page, options, nil), get_field(:before, options, nil), get_field(:after, options, nil), get_field(:predicate_type, options, nil) ] |> Enum.filter(& &1) qs = if query == [], do: "", else: "?" <> Enum.join(query, "&") github_base() <> "/orgs/#{org}/attestations/#{subject_digest}" <> qs ) body = %{} api_call(:get, url, body, Noizu.Github.Raw, options) end @doc """ List attestations by bulk subject digests @see https://docs.github.com/rest/orgs/attestations#list-attestations-by-bulk-subject-digests """ def list_attestations_bulk(org, body, options \\ nil) do url = ( query = [ get_field(:per_page, options, nil), get_field(:before, options, nil), get_field(:after, options, nil) ] |> Enum.filter(& &1) qs = if query == [], do: "", else: "?" <> Enum.join(query, "&") github_base() <> "/orgs/#{org}/attestations/bulk-list" <> qs ) body = body api_call(:post, url, body, Noizu.Github.Raw, options) end @doc """ List users blocked by an organization @see https://docs.github.com/rest/orgs/blocking#list-users-blocked-by-an-organization """ def list_blocked_users(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}/blocks" <> qs ) body = %{} api_call(:get, url, body, Noizu.Github.Collection.SimpleUser, options) end @doc """ List failed organization invitations @see https://docs.github.com/rest/orgs/members#list-failed-organization-invitations """ def list_failed_invitations(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}/failed_invitations" <> qs ) body = %{} api_call(:get, url, body, Noizu.Github.Collection.OrganizationInvitation, options) end @doc """ List organizations for the authenticated user @see https://docs.github.com/rest/orgs/orgs#list-organizations-for-the-authenticated-user """ def list_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/orgs" <> qs ) body = %{} api_call(:get, url, body, Noizu.Github.Collection.OrganizationSimple, options) end @doc """ List organizations for a user @see https://docs.github.com/rest/orgs/orgs#list-organizations-for-a-user """ def list_for_user(username, 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() <> "/users/#{username}/orgs" <> qs ) body = %{} api_call(:get, url, body, Noizu.Github.Collection.OrganizationSimple, options) end @doc """ List organization invitation teams @see https://docs.github.com/rest/orgs/members#list-organization-invitation-teams """ def list_invitation_teams(org, invitation_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() <> "/orgs/#{org}/invitations/#{invitation_id}/teams" <> qs ) body = %{} api_call(:get, url, body, Noizu.Github.Collection.Team, options) end @doc """ List issue fields for an organization @see https://docs.github.com/rest/orgs/issue-fields#list-issue-fields-for-an-organization """ def list_issue_fields(org, options \\ nil) do url = github_base() <> "/orgs/#{org}/issue-fields" body = %{} api_call(:get, url, body, Noizu.Github.Collection.IssueField, options) end @doc """ List issue types for an organization @see https://docs.github.com/rest/orgs/issue-types#list-issue-types-for-an-organization """ def list_issue_types(org, options \\ nil) do url = github_base() <> "/orgs/#{org}/issue-types" body = %{} api_call(:get, url, body, Noizu.Github.Collection.IssueType, options) end @doc """ List organization members @see https://docs.github.com/rest/orgs/members#list-organization-members """ def list_members(org, options \\ nil) do url = ( query = [ get_field(:filter, options, nil), get_field(:role, 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() <> "/orgs/#{org}/members" <> qs ) body = %{} api_call(:get, url, body, Noizu.Github.Collection.SimpleUser, options) end @doc """ List organization memberships for the authenticated user @see https://docs.github.com/rest/orgs/members#list-organization-memberships-for-the-authenticated-user """ def list_memberships_for_authenticated_user(options \\ nil) do url = ( query = [ get_field(:state, 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() <> "/user/memberships/orgs" <> qs ) body = %{} api_call(:get, url, body, Noizu.Github.Collection.OrgMembership, options) end @doc """ List teams that are assigned to an organization role @see https://docs.github.com/rest/orgs/organization-roles#list-teams-that-are-assigned-to-an-organization-role """ def list_org_role_teams(org, role_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() <> "/orgs/#{org}/organization-roles/#{role_id}/teams" <> qs ) body = %{} api_call(:get, url, body, Noizu.Github.Collection.TeamRoleAssignment, options) end @doc """ List users that are assigned to an organization role @see https://docs.github.com/rest/orgs/organization-roles#list-users-that-are-assigned-to-an-organization-role """ def list_org_role_users(org, role_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() <> "/orgs/#{org}/organization-roles/#{role_id}/users" <> qs ) body = %{} api_call(:get, url, body, Noizu.Github.Collection.UserRoleAssignment, options) end @doc """ Get all organization roles for an organization @see https://docs.github.com/rest/orgs/organization-roles#get-all-organization-roles-for-an-organization """ def list_org_roles(org, options \\ nil) do url = github_base() <> "/orgs/#{org}/organization-roles" body = %{} api_call(:get, url, body, Noizu.Github.Raw, options) end @doc """ List outside collaborators for an organization @see https://docs.github.com/rest/orgs/outside-collaborators#list-outside-collaborators-for-an-organization """ def list_outside_collaborators(org, options \\ nil) do url = ( query = [ 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() <> "/orgs/#{org}/outside_collaborators" <> qs ) body = %{} api_call(:get, url, body, Noizu.Github.Collection.SimpleUser, options) end @doc """ List repositories a fine-grained personal access token has access to @see https://docs.github.com/rest/orgs/personal-access-tokens#list-repositories-a-fine-grained-personal-access-token-has-access-to """ def list_pat_grant_repositories(org, pat_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() <> "/orgs/#{org}/personal-access-tokens/#{pat_id}/repositories" <> qs ) body = %{} api_call(:get, url, body, Noizu.Github.Collection.MinimalRepository, options) end @doc """ List repositories requested to be accessed by a fine-grained personal access token @see https://docs.github.com/rest/orgs/personal-access-tokens#list-repositories-requested-to-be-accessed-by-a-fine-grained-personal-access-token """ def list_pat_grant_request_repositories(org, pat_request_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() <> "/orgs/#{org}/personal-access-token-requests/#{pat_request_id}/repositories" <> qs ) body = %{} api_call(:get, url, body, Noizu.Github.Collection.MinimalRepository, options) end @doc """ List requests to access organization resources with fine-grained personal access tokens @see https://docs.github.com/rest/orgs/personal-access-tokens#list-requests-to-access-organization-resources-with-fine-grained-personal-access-tokens """ def list_pat_grant_requests(org, options \\ nil) do url = ( query = [ get_field(:per_page, options, nil), get_field(:page, options, nil), get_field(:sort, options, nil), get_field(:direction, options, nil), get_field(:owner, options, nil), get_field(:repository, options, nil), get_field(:permission, options, nil), get_field(:last_used_before, options, nil), get_field(:last_used_after, options, nil), get_field(:token_id, options, nil) ] |> Enum.filter(& &1) qs = if query == [], do: "", else: "?" <> Enum.join(query, "&") github_base() <> "/orgs/#{org}/personal-access-token-requests" <> qs ) body = %{} api_call( :get, url, body, Noizu.Github.Collection.OrganizationProgrammaticAccessGrantRequest, options ) end @doc """ List fine-grained personal access tokens with access to organization resources @see https://docs.github.com/rest/orgs/personal-access-tokens#list-fine-grained-personal-access-tokens-with-access-to-organization-resources """ def list_pat_grants(org, options \\ nil) do url = ( query = [ get_field(:per_page, options, nil), get_field(:page, options, nil), get_field(:sort, options, nil), get_field(:direction, options, nil), get_field(:owner, options, nil), get_field(:repository, options, nil), get_field(:permission, options, nil), get_field(:last_used_before, options, nil), get_field(:last_used_after, options, nil), get_field(:token_id, options, nil) ] |> Enum.filter(& &1) qs = if query == [], do: "", else: "?" <> Enum.join(query, "&") github_base() <> "/orgs/#{org}/personal-access-tokens" <> qs ) body = %{} api_call( :get, url, body, Noizu.Github.Collection.OrganizationProgrammaticAccessGrant, options ) end @doc """ List pending organization invitations @see https://docs.github.com/rest/orgs/members#list-pending-organization-invitations """ def list_pending_invitations(org, options \\ nil) do url = ( query = [ get_field(:per_page, options, nil), get_field(:page, options, nil), get_field(:role, options, nil), get_field(:invitation_source, options, nil) ] |> Enum.filter(& &1) qs = if query == [], do: "", else: "?" <> Enum.join(query, "&") github_base() <> "/orgs/#{org}/invitations" <> qs ) body = %{} api_call(:get, url, body, Noizu.Github.Collection.OrganizationInvitation, options) end @doc """ List public organization members @see https://docs.github.com/rest/orgs/members#list-public-organization-members """ def list_public_members(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}/public_members" <> qs ) body = %{} api_call(:get, url, body, Noizu.Github.Collection.SimpleUser, options) end @doc """ List security manager teams @see https://docs.github.com/rest/orgs/security-managers#list-security-manager-teams """ def list_security_manager_teams(org, options \\ nil) do url = github_base() <> "/orgs/#{org}/security-managers" body = %{} api_call(:get, url, body, Noizu.Github.Collection.TeamSimple, options) end @doc """ List deliveries for an organization webhook @see https://docs.github.com/rest/orgs/webhooks#list-deliveries-for-an-organization-webhook """ def list_webhook_deliveries(org, hook_id, 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() <> "/orgs/#{org}/hooks/#{hook_id}/deliveries" <> qs ) body = %{} api_call(:get, url, body, Noizu.Github.Collection.HookDeliveryItem, options) end @doc """ List organization webhooks @see https://docs.github.com/rest/orgs/webhooks#list-organization-webhooks """ def list_webhooks(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}/hooks" <> qs ) body = %{} api_call(:get, url, body, Noizu.Github.Collection.OrgHook, options) end @doc """ Ping an organization webhook @see https://docs.github.com/rest/orgs/webhooks#ping-an-organization-webhook """ def ping_webhook(org, hook_id, body, options \\ nil) do url = github_base() <> "/orgs/#{org}/hooks/#{hook_id}/pings" body = body api_call(:post, url, body, Noizu.Github.Raw, options) end @doc """ Redeliver a delivery for an organization webhook @see https://docs.github.com/rest/orgs/webhooks#redeliver-a-delivery-for-an-organization-webhook """ def redeliver_webhook_delivery(org, hook_id, delivery_id, body, options \\ nil) do url = github_base() <> "/orgs/#{org}/hooks/#{hook_id}/deliveries/#{delivery_id}/attempts" body = body api_call(:post, url, body, Noizu.Github.Raw, options) end @doc """ Remove an organization member @see https://docs.github.com/rest/orgs/members#remove-an-organization-member """ def remove_member(org, username, options \\ nil) do url = github_base() <> "/orgs/#{org}/members/#{username}" body = %{} api_call(:delete, url, body, Noizu.Github.Raw, options) end @doc """ Remove organization membership for a user @see https://docs.github.com/rest/orgs/members#remove-organization-membership-for-a-user """ def remove_membership_for_user(org, username, options \\ nil) do url = github_base() <> "/orgs/#{org}/memberships/#{username}" body = %{} api_call(:delete, url, body, Noizu.Github.Raw, options) end @doc """ Remove outside collaborator from an organization @see https://docs.github.com/rest/orgs/outside-collaborators#remove-outside-collaborator-from-an-organization """ def remove_outside_collaborator(org, username, options \\ nil) do url = github_base() <> "/orgs/#{org}/outside_collaborators/#{username}" body = %{} api_call(:delete, url, body, Noizu.Github.Raw, options) end @doc """ Remove public organization membership for the authenticated user @see https://docs.github.com/rest/orgs/members#remove-public-organization-membership-for-the-authenticated-user """ def remove_public_membership_for_authenticated_user(org, username, options \\ nil) do url = github_base() <> "/orgs/#{org}/public_members/#{username}" body = %{} api_call(:delete, url, body, Noizu.Github.Raw, options) end @doc """ Remove a security manager team @see https://docs.github.com/rest/orgs/security-managers#remove-a-security-manager-team """ def remove_security_manager_team(org, team_slug, options \\ nil) do url = github_base() <> "/orgs/#{org}/security-managers/teams/#{team_slug}" body = %{} api_call(:delete, url, body, Noizu.Github.Raw, options) end @doc """ Review a request to access organization resources with a fine-grained personal access token @see https://docs.github.com/rest/orgs/personal-access-tokens#review-a-request-to-access-organization-resources-with-a-fine-grained-personal-access-token """ def review_pat_grant_request(org, pat_request_id, body, options \\ nil) do url = github_base() <> "/orgs/#{org}/personal-access-token-requests/#{pat_request_id}" body = body api_call(:post, url, body, Noizu.Github.Raw, options) end @doc """ Review requests to access organization resources with fine-grained personal access tokens @see https://docs.github.com/rest/orgs/personal-access-tokens#review-requests-to-access-organization-resources-with-fine-grained-personal-access-tokens """ def review_pat_grant_requests_in_bulk(org, body, options \\ nil) do url = github_base() <> "/orgs/#{org}/personal-access-token-requests" body = body api_call(:post, url, body, Noizu.Github.Raw, options) end @doc """ Remove all organization roles for a team @see https://docs.github.com/rest/orgs/organization-roles#remove-all-organization-roles-for-a-team """ def revoke_all_org_roles_team(org, team_slug, options \\ nil) do url = github_base() <> "/orgs/#{org}/organization-roles/teams/#{team_slug}" body = %{} api_call(:delete, url, body, Noizu.Github.Raw, options) end @doc """ Remove all organization roles for a user @see https://docs.github.com/rest/orgs/organization-roles#remove-all-organization-roles-for-a-user """ def revoke_all_org_roles_user(org, username, options \\ nil) do url = github_base() <> "/orgs/#{org}/organization-roles/users/#{username}" body = %{} api_call(:delete, url, body, Noizu.Github.Raw, options) end @doc """ Remove an organization role from a team @see https://docs.github.com/rest/orgs/organization-roles#remove-an-organization-role-from-a-team """ def revoke_org_role_team(org, team_slug, role_id, options \\ nil) do url = github_base() <> "/orgs/#{org}/organization-roles/teams/#{team_slug}/#{role_id}" body = %{} api_call(:delete, url, body, Noizu.Github.Raw, options) end @doc """ Remove an organization role from a user @see https://docs.github.com/rest/orgs/organization-roles#remove-an-organization-role-from-a-user """ def revoke_org_role_user(org, username, role_id, options \\ nil) do url = github_base() <> "/orgs/#{org}/organization-roles/users/#{username}/#{role_id}" body = %{} api_call(:delete, url, body, Noizu.Github.Raw, options) end @doc """ Set cluster deployment records @see https://docs.github.com/rest/orgs/artifact-metadata#set-cluster-deployment-records """ def set_cluster_deployment_records(org, cluster, body, options \\ nil) do url = github_base() <> "/orgs/#{org}/artifacts/metadata/deployment-record/cluster/#{cluster}" body = body api_call(:post, url, body, Noizu.Github.Raw, options) end @doc """ Set immutable releases settings for an organization @see https://docs.github.com/rest/orgs/orgs#set-immutable-releases-settings-for-an-organization """ def set_immutable_releases_settings(org, body, options \\ nil) do url = github_base() <> "/orgs/#{org}/settings/immutable-releases" body = body api_call(:put, url, body, Noizu.Github.Raw, options) end @doc """ Set selected repositories for immutable releases enforcement @see https://docs.github.com/rest/orgs/orgs#set-selected-repositories-for-immutable-releases-enforcement """ def set_immutable_releases_settings_repositories(org, body, options \\ nil) do url = github_base() <> "/orgs/#{org}/settings/immutable-releases/repositories" body = body api_call(:put, url, body, Noizu.Github.Raw, options) end @doc """ Set organization membership for a user @see https://docs.github.com/rest/orgs/members#set-organization-membership-for-a-user """ def set_membership_for_user(org, username, body, options \\ nil) do url = github_base() <> "/orgs/#{org}/memberships/#{username}" body = body api_call(:put, url, body, Noizu.Github.OrgMembership, options) end @doc """ Set public organization membership for the authenticated user @see https://docs.github.com/rest/orgs/members#set-public-organization-membership-for-the-authenticated-user """ def set_public_membership_for_authenticated_user(org, username, body, options \\ nil) do url = github_base() <> "/orgs/#{org}/public_members/#{username}" body = body api_call(:put, url, body, Noizu.Github.Raw, options) end @doc """ Unblock a user from an organization @see https://docs.github.com/rest/orgs/blocking#unblock-a-user-from-an-organization """ def unblock_user(org, username, options \\ nil) do url = github_base() <> "/orgs/#{org}/blocks/#{username}" body = %{} api_call(:delete, url, body, Noizu.Github.Raw, options) end @doc """ Update an organization @see https://docs.github.com/rest/orgs/orgs#update-an-organization """ def update(org, body, options \\ nil) do url = github_base() <> "/orgs/#{org}" body = body api_call(:patch, url, body, Noizu.Github.OrganizationFull, options) end @doc """ Update issue field for an organization @see https://docs.github.com/rest/orgs/issue-fields#update-issue-field-for-an-organization """ def update_issue_field(org, issue_field_id, body, options \\ nil) do url = github_base() <> "/orgs/#{org}/issue-fields/#{issue_field_id}" body = body api_call(:patch, url, body, Noizu.Github.IssueField, options) end @doc """ Update issue type for an organization @see https://docs.github.com/rest/orgs/issue-types#update-issue-type-for-an-organization """ def update_issue_type(org, issue_type_id, body, options \\ nil) do url = github_base() <> "/orgs/#{org}/issue-types/#{issue_type_id}" body = body api_call(:put, url, body, Noizu.Github.IssueType, options) end @doc """ Update an organization membership for the authenticated user @see https://docs.github.com/rest/orgs/members#update-an-organization-membership-for-the-authenticated-user """ def update_membership_for_authenticated_user(org, body, options \\ nil) do url = github_base() <> "/user/memberships/orgs/#{org}" body = body api_call(:patch, url, body, Noizu.Github.OrgMembership, options) end @doc """ Update the access a fine-grained personal access token has to organization resources @see https://docs.github.com/rest/orgs/personal-access-tokens#update-the-access-a-fine-grained-personal-access-token-has-to-organization-resources """ def update_pat_access(org, pat_id, body, options \\ nil) do url = github_base() <> "/orgs/#{org}/personal-access-tokens/#{pat_id}" body = body api_call(:post, url, body, Noizu.Github.Raw, options) end @doc """ Update the access to organization resources via fine-grained personal access tokens @see https://docs.github.com/rest/orgs/personal-access-tokens#update-the-access-to-organization-resources-via-fine-grained-personal-access-tokens """ def update_pat_accesses(org, body, options \\ nil) do url = github_base() <> "/orgs/#{org}/personal-access-tokens" body = body api_call(:post, url, body, Noizu.Github.Raw, options) end @doc """ Update an organization webhook @see https://docs.github.com/rest/orgs/webhooks#update-an-organization-webhook """ def update_webhook(org, hook_id, body, options \\ nil) do url = github_base() <> "/orgs/#{org}/hooks/#{hook_id}" body = body api_call(:patch, url, body, Noizu.Github.OrgHook, options) end @doc """ Update a webhook configuration for an organization @see https://docs.github.com/rest/orgs/webhooks#update-a-webhook-configuration-for-an-organization """ def update_webhook_config_for_org(org, hook_id, body, options \\ nil) do url = github_base() <> "/orgs/#{org}/hooks/#{hook_id}/config" body = body api_call(:patch, url, body, Noizu.Github.WebhookConfig, options) end end