# 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.Users do
@moduledoc """
GitHub `users` API.
"""
import Noizu.Github
@doc """
Add an email address for the authenticated user
@see https://docs.github.com/rest/users/emails#add-an-email-address-for-the-authenticated-user
"""
def add_email_for_authenticated_user(body, options \\ nil) do
url = github_base() <> "/user/emails"
body = body
api_call(:post, url, body, Noizu.Github.Collection.Email, options)
end
@doc """
Add social accounts for the authenticated user
@see https://docs.github.com/rest/users/social-accounts#add-social-accounts-for-the-authenticated-user
"""
def add_social_account_for_authenticated_user(body, options \\ nil) do
url = github_base() <> "/user/social_accounts"
body = body
api_call(:post, url, body, Noizu.Github.Collection.SocialAccount, options)
end
@doc """
Block a user
@see https://docs.github.com/rest/users/blocking#block-a-user
"""
def block(username, body, options \\ nil) do
url = github_base() <> "/user/blocks/#{username}"
body = body
api_call(:put, url, body, Noizu.Github.Raw, options)
end
@doc """
Check if a user is blocked by the authenticated user
@see https://docs.github.com/rest/users/blocking#check-if-a-user-is-blocked-by-the-authenticated-user
"""
def check_blocked(username, options \\ nil) do
url = github_base() <> "/user/blocks/#{username}"
body = %{}
api_call(:get, url, body, Noizu.Github.Raw, options)
end
@doc """
Check if a user follows another user
@see https://docs.github.com/rest/users/followers#check-if-a-user-follows-another-user
"""
def check_following_for_user(username, target_user, options \\ nil) do
url = github_base() <> "/users/#{username}/following/#{target_user}"
body = %{}
api_call(:get, url, body, Noizu.Github.Raw, options)
end
@doc """
Check if a person is followed by the authenticated user
@see https://docs.github.com/rest/users/followers#check-if-a-person-is-followed-by-the-authenticated-user
"""
def check_person_is_followed_by_authenticated(username, options \\ nil) do
url = github_base() <> "/user/following/#{username}"
body = %{}
api_call(:get, url, body, Noizu.Github.Raw, options)
end
@doc """
Create a GPG key for the authenticated user
@see https://docs.github.com/rest/users/gpg-keys#create-a-gpg-key-for-the-authenticated-user
"""
def create_gpg_key_for_authenticated_user(body, options \\ nil) do
url = github_base() <> "/user/gpg_keys"
body = body
api_call(:post, url, body, Noizu.Github.GpgKey, options)
end
@doc """
Create a public SSH key for the authenticated user
@see https://docs.github.com/rest/users/keys#create-a-public-ssh-key-for-the-authenticated-user
"""
def create_public_ssh_key_for_authenticated_user(body, options \\ nil) do
url = github_base() <> "/user/keys"
body = body
api_call(:post, url, body, Noizu.Github.Key, options)
end
@doc """
Create a SSH signing key for the authenticated user
@see https://docs.github.com/rest/users/ssh-signing-keys#create-a-ssh-signing-key-for-the-authenticated-user
"""
def create_ssh_signing_key_for_authenticated_user(body, options \\ nil) do
url = github_base() <> "/user/ssh_signing_keys"
body = body
api_call(:post, url, body, Noizu.Github.SshSigningKey, options)
end
@doc """
Delete attestations in bulk
@see https://docs.github.com/rest/users/attestations#delete-attestations-in-bulk
"""
def delete_attestations_bulk(username, body, options \\ nil) do
url = github_base() <> "/users/#{username}/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/users/attestations#delete-attestations-by-id
"""
def delete_attestations_by_id(username, attestation_id, options \\ nil) do
url = github_base() <> "/users/#{username}/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/users/attestations#delete-attestations-by-subject-digest
"""
def delete_attestations_by_subject_digest(username, subject_digest, options \\ nil) do
url = github_base() <> "/users/#{username}/attestations/digest/#{subject_digest}"
body = %{}
api_call(:delete, url, body, Noizu.Github.Raw, options)
end
@doc """
Delete an email address for the authenticated user
@see https://docs.github.com/rest/users/emails#delete-an-email-address-for-the-authenticated-user
"""
def delete_email_for_authenticated_user(body, options \\ nil) do
url = github_base() <> "/user/emails"
body = body
api_call(:delete, url, body, Noizu.Github.Raw, options)
end
@doc """
Delete a GPG key for the authenticated user
@see https://docs.github.com/rest/users/gpg-keys#delete-a-gpg-key-for-the-authenticated-user
"""
def delete_gpg_key_for_authenticated_user(gpg_key_id, options \\ nil) do
url = github_base() <> "/user/gpg_keys/#{gpg_key_id}"
body = %{}
api_call(:delete, url, body, Noizu.Github.Raw, options)
end
@doc """
Delete a public SSH key for the authenticated user
@see https://docs.github.com/rest/users/keys#delete-a-public-ssh-key-for-the-authenticated-user
"""
def delete_public_ssh_key_for_authenticated_user(key_id, options \\ nil) do
url = github_base() <> "/user/keys/#{key_id}"
body = %{}
api_call(:delete, url, body, Noizu.Github.Raw, options)
end
@doc """
Delete social accounts for the authenticated user
@see https://docs.github.com/rest/users/social-accounts#delete-social-accounts-for-the-authenticated-user
"""
def delete_social_account_for_authenticated_user(body, options \\ nil) do
url = github_base() <> "/user/social_accounts"
body = body
api_call(:delete, url, body, Noizu.Github.Raw, options)
end
@doc """
Delete an SSH signing key for the authenticated user
@see https://docs.github.com/rest/users/ssh-signing-keys#delete-an-ssh-signing-key-for-the-authenticated-user
"""
def delete_ssh_signing_key_for_authenticated_user(ssh_signing_key_id, options \\ nil) do
url = github_base() <> "/user/ssh_signing_keys/#{ssh_signing_key_id}"
body = %{}
api_call(:delete, url, body, Noizu.Github.Raw, options)
end
@doc """
Follow a user
@see https://docs.github.com/rest/users/followers#follow-a-user
"""
def follow(username, body, options \\ nil) do
url = github_base() <> "/user/following/#{username}"
body = body
api_call(:put, url, body, Noizu.Github.Raw, options)
end
@doc """
Get the authenticated user
@see https://docs.github.com/rest/users/users#get-the-authenticated-user
"""
def get_authenticated(options \\ nil) do
url = github_base() <> "/user"
body = %{}
api_call(:get, url, body, Noizu.Github.Raw, options)
end
@doc """
Get a user using their ID
@see https://docs.github.com/rest/users/users#get-a-user-using-their-id
"""
def get_by_id(account_id, options \\ nil) do
url = github_base() <> "/user/#{account_id}"
body = %{}
api_call(:get, url, body, Noizu.Github.Raw, options)
end
@doc """
Get a user
@see https://docs.github.com/rest/users/users#get-a-user
"""
def get_by_username(username, options \\ nil) do
url = github_base() <> "/users/#{username}"
body = %{}
api_call(:get, url, body, Noizu.Github.Raw, options)
end
@doc """
Get contextual information for a user
@see https://docs.github.com/rest/users/users#get-contextual-information-for-a-user
"""
def get_context_for_user(username, options \\ nil) do
url =
(
query =
[
get_field(:subject_type, options, nil),
get_field(:subject_id, options, nil)
]
|> Enum.filter(& &1)
qs = if query == [], do: "", else: "?" <> Enum.join(query, "&")
github_base() <> "/users/#{username}/hovercard" <> qs
)
body = %{}
api_call(:get, url, body, Noizu.Github.Hovercard, options)
end
@doc """
Get a GPG key for the authenticated user
@see https://docs.github.com/rest/users/gpg-keys#get-a-gpg-key-for-the-authenticated-user
"""
def get_gpg_key_for_authenticated_user(gpg_key_id, options \\ nil) do
url = github_base() <> "/user/gpg_keys/#{gpg_key_id}"
body = %{}
api_call(:get, url, body, Noizu.Github.GpgKey, options)
end
@doc """
Get a public SSH key for the authenticated user
@see https://docs.github.com/rest/users/keys#get-a-public-ssh-key-for-the-authenticated-user
"""
def get_public_ssh_key_for_authenticated_user(key_id, options \\ nil) do
url = github_base() <> "/user/keys/#{key_id}"
body = %{}
api_call(:get, url, body, Noizu.Github.Key, options)
end
@doc """
Get an SSH signing key for the authenticated user
@see https://docs.github.com/rest/users/ssh-signing-keys#get-an-ssh-signing-key-for-the-authenticated-user
"""
def get_ssh_signing_key_for_authenticated_user(ssh_signing_key_id, options \\ nil) do
url = github_base() <> "/user/ssh_signing_keys/#{ssh_signing_key_id}"
body = %{}
api_call(:get, url, body, Noizu.Github.SshSigningKey, options)
end
@doc """
List users
@see https://docs.github.com/rest/users/users#list-users
"""
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() <> "/users" <> qs
)
body = %{}
api_call(:get, url, body, Noizu.Github.Collection.SimpleUser, options)
end
@doc """
List attestations
@see https://docs.github.com/rest/users/attestations#list-attestations
"""
def list_attestations(username, 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() <> "/users/#{username}/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/users/attestations#list-attestations-by-bulk-subject-digests
"""
def list_attestations_bulk(username, 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() <> "/users/#{username}/attestations/bulk-list" <> qs
)
body = body
api_call(:post, url, body, Noizu.Github.Raw, options)
end
@doc """
List users blocked by the authenticated user
@see https://docs.github.com/rest/users/blocking#list-users-blocked-by-the-authenticated-user
"""
def list_blocked_by_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/blocks" <> qs
)
body = %{}
api_call(:get, url, body, Noizu.Github.Collection.SimpleUser, options)
end
@doc """
List email addresses for the authenticated user
@see https://docs.github.com/rest/users/emails#list-email-addresses-for-the-authenticated-user
"""
def list_emails_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/emails" <> qs
)
body = %{}
api_call(:get, url, body, Noizu.Github.Collection.Email, options)
end
@doc """
List the people the authenticated user follows
@see https://docs.github.com/rest/users/followers#list-the-people-the-authenticated-user-follows
"""
def list_followed_by_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/following" <> qs
)
body = %{}
api_call(:get, url, body, Noizu.Github.Collection.SimpleUser, options)
end
@doc """
List followers of the authenticated user
@see https://docs.github.com/rest/users/followers#list-followers-of-the-authenticated-user
"""
def list_followers_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/followers" <> qs
)
body = %{}
api_call(:get, url, body, Noizu.Github.Collection.SimpleUser, options)
end
@doc """
List followers of a user
@see https://docs.github.com/rest/users/followers#list-followers-of-a-user
"""
def list_followers_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}/followers" <> qs
)
body = %{}
api_call(:get, url, body, Noizu.Github.Collection.SimpleUser, options)
end
@doc """
List the people a user follows
@see https://docs.github.com/rest/users/followers#list-the-people-a-user-follows
"""
def list_following_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}/following" <> qs
)
body = %{}
api_call(:get, url, body, Noizu.Github.Collection.SimpleUser, options)
end
@doc """
List GPG keys for the authenticated user
@see https://docs.github.com/rest/users/gpg-keys#list-gpg-keys-for-the-authenticated-user
"""
def list_gpg_keys_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/gpg_keys" <> qs
)
body = %{}
api_call(:get, url, body, Noizu.Github.Collection.GpgKey, options)
end
@doc """
List GPG keys for a user
@see https://docs.github.com/rest/users/gpg-keys#list-gpg-keys-for-a-user
"""
def list_gpg_keys_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}/gpg_keys" <> qs
)
body = %{}
api_call(:get, url, body, Noizu.Github.Collection.GpgKey, options)
end
@doc """
List public email addresses for the authenticated user
@see https://docs.github.com/rest/users/emails#list-public-email-addresses-for-the-authenticated-user
"""
def list_public_emails_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/public_emails" <> qs
)
body = %{}
api_call(:get, url, body, Noizu.Github.Collection.Email, options)
end
@doc """
List public keys for a user
@see https://docs.github.com/rest/users/keys#list-public-keys-for-a-user
"""
def list_public_keys_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}/keys" <> qs
)
body = %{}
api_call(:get, url, body, Noizu.Github.Collection.KeySimple, options)
end
@doc """
List public SSH keys for the authenticated user
@see https://docs.github.com/rest/users/keys#list-public-ssh-keys-for-the-authenticated-user
"""
def list_public_ssh_keys_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/keys" <> qs
)
body = %{}
api_call(:get, url, body, Noizu.Github.Collection.Key, options)
end
@doc """
List social accounts for the authenticated user
@see https://docs.github.com/rest/users/social-accounts#list-social-accounts-for-the-authenticated-user
"""
def list_social_accounts_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/social_accounts" <> qs
)
body = %{}
api_call(:get, url, body, Noizu.Github.Collection.SocialAccount, options)
end
@doc """
List social accounts for a user
@see https://docs.github.com/rest/users/social-accounts#list-social-accounts-for-a-user
"""
def list_social_accounts_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}/social_accounts" <> qs
)
body = %{}
api_call(:get, url, body, Noizu.Github.Collection.SocialAccount, options)
end
@doc """
List SSH signing keys for the authenticated user
@see https://docs.github.com/rest/users/ssh-signing-keys#list-ssh-signing-keys-for-the-authenticated-user
"""
def list_ssh_signing_keys_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/ssh_signing_keys" <> qs
)
body = %{}
api_call(:get, url, body, Noizu.Github.Collection.SshSigningKey, options)
end
@doc """
List SSH signing keys for a user
@see https://docs.github.com/rest/users/ssh-signing-keys#list-ssh-signing-keys-for-a-user
"""
def list_ssh_signing_keys_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}/ssh_signing_keys" <> qs
)
body = %{}
api_call(:get, url, body, Noizu.Github.Collection.SshSigningKey, options)
end
@doc """
Set primary email visibility for the authenticated user
@see https://docs.github.com/rest/users/emails#set-primary-email-visibility-for-the-authenticated-user
"""
def set_primary_email_visibility_for_authenticated_user(body, options \\ nil) do
url = github_base() <> "/user/email/visibility"
body = body
api_call(:patch, url, body, Noizu.Github.Collection.Email, options)
end
@doc """
Unblock a user
@see https://docs.github.com/rest/users/blocking#unblock-a-user
"""
def unblock(username, options \\ nil) do
url = github_base() <> "/user/blocks/#{username}"
body = %{}
api_call(:delete, url, body, Noizu.Github.Raw, options)
end
@doc """
Unfollow a user
@see https://docs.github.com/rest/users/followers#unfollow-a-user
"""
def unfollow(username, options \\ nil) do
url = github_base() <> "/user/following/#{username}"
body = %{}
api_call(:delete, url, body, Noizu.Github.Raw, options)
end
@doc """
Update the authenticated user
@see https://docs.github.com/rest/users/users#update-the-authenticated-user
"""
def update_authenticated(body, options \\ nil) do
url = github_base() <> "/user"
body = body
api_call(:patch, url, body, Noizu.Github.PrivateUser, options)
end
end