# 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.Migrations do @moduledoc """ GitHub `migrations` API. """ import Noizu.Github @doc """ Cancel an import @see https://docs.github.com/rest/migrations/source-imports#cancel-an-import """ def cancel_import(options \\ nil) do owner = repo_owner(options) repo = repo_name(options) url = github_base() <> "/repos/#{owner}/#{repo}/import" body = %{} api_call(:delete, url, body, Noizu.Github.Raw, options) end @doc """ Delete a user migration archive @see https://docs.github.com/rest/migrations/users#delete-a-user-migration-archive """ def delete_archive_for_authenticated_user(migration_id, options \\ nil) do url = github_base() <> "/user/migrations/#{migration_id}/archive" body = %{} api_call(:delete, url, body, Noizu.Github.Raw, options) end @doc """ Delete an organization migration archive @see https://docs.github.com/rest/migrations/orgs#delete-an-organization-migration-archive """ def delete_archive_for_org(org, migration_id, options \\ nil) do url = github_base() <> "/orgs/#{org}/migrations/#{migration_id}/archive" body = %{} api_call(:delete, url, body, Noizu.Github.Raw, options) end @doc """ Download an organization migration archive @see https://docs.github.com/rest/migrations/orgs#download-an-organization-migration-archive """ def download_archive_for_org(org, migration_id, options \\ nil) do url = github_base() <> "/orgs/#{org}/migrations/#{migration_id}/archive" body = %{} api_call(:get, url, body, Noizu.Github.Raw, options) end @doc """ Download a user migration archive @see https://docs.github.com/rest/migrations/users#download-a-user-migration-archive """ def get_archive_for_authenticated_user(migration_id, options \\ nil) do url = github_base() <> "/user/migrations/#{migration_id}/archive" body = %{} api_call(:get, url, body, Noizu.Github.Raw, options) end @doc """ Get commit authors @see https://docs.github.com/rest/migrations/source-imports#get-commit-authors """ def get_commit_authors(options \\ nil) do owner = repo_owner(options) repo = repo_name(options) url = ( query = [ get_field(:since, options, nil) ] |> Enum.filter(& &1) qs = if query == [], do: "", else: "?" <> Enum.join(query, "&") github_base() <> "/repos/#{owner}/#{repo}/import/authors" <> qs ) body = %{} api_call(:get, url, body, Noizu.Github.Collection.PorterAuthor, options) end @doc """ Get an import status @see https://docs.github.com/rest/migrations/source-imports#get-an-import-status """ def get_import_status(options \\ nil) do owner = repo_owner(options) repo = repo_name(options) url = github_base() <> "/repos/#{owner}/#{repo}/import" body = %{} api_call(:get, url, body, Noizu.Github.Import, options) end @doc """ Get large files @see https://docs.github.com/rest/migrations/source-imports#get-large-files """ def get_large_files(options \\ nil) do owner = repo_owner(options) repo = repo_name(options) url = github_base() <> "/repos/#{owner}/#{repo}/import/large_files" body = %{} api_call(:get, url, body, Noizu.Github.Collection.PorterLargeFile, options) end @doc """ Get a user migration status @see https://docs.github.com/rest/migrations/users#get-a-user-migration-status """ def get_status_for_authenticated_user(migration_id, options \\ nil) do url = ( query = [ get_field(:exclude, options, nil) ] |> Enum.filter(& &1) qs = if query == [], do: "", else: "?" <> Enum.join(query, "&") github_base() <> "/user/migrations/#{migration_id}" <> qs ) body = %{} api_call(:get, url, body, Noizu.Github.Migration, options) end @doc """ Get an organization migration status @see https://docs.github.com/rest/migrations/orgs#get-an-organization-migration-status """ def get_status_for_org(org, migration_id, options \\ nil) do url = ( query = [ get_field(:exclude, options, nil) ] |> Enum.filter(& &1) qs = if query == [], do: "", else: "?" <> Enum.join(query, "&") github_base() <> "/orgs/#{org}/migrations/#{migration_id}" <> qs ) body = %{} api_call(:get, url, body, Noizu.Github.Migration, options) end @doc """ List user migrations @see https://docs.github.com/rest/migrations/users#list-user-migrations """ 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/migrations" <> qs ) body = %{} api_call(:get, url, body, Noizu.Github.Collection.Migration, options) end @doc """ List organization migrations @see https://docs.github.com/rest/migrations/orgs#list-organization-migrations """ def list_for_org(org, options \\ nil) do url = ( query = [ get_field(:per_page, options, nil), get_field(:page, options, nil), get_field(:exclude, options, nil) ] |> Enum.filter(& &1) qs = if query == [], do: "", else: "?" <> Enum.join(query, "&") github_base() <> "/orgs/#{org}/migrations" <> qs ) body = %{} api_call(:get, url, body, Noizu.Github.Collection.Migration, options) end @doc """ List repositories for a user migration @see https://docs.github.com/rest/migrations/users#list-repositories-for-a-user-migration """ def list_repos_for_authenticated_user(migration_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/migrations/#{migration_id}/repositories" <> qs ) body = %{} api_call(:get, url, body, Noizu.Github.Collection.MinimalRepository, options) end @doc """ List repositories in an organization migration @see https://docs.github.com/rest/migrations/orgs#list-repositories-in-an-organization-migration """ def list_repos_for_org(org, migration_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}/migrations/#{migration_id}/repositories" <> qs ) body = %{} api_call(:get, url, body, Noizu.Github.Collection.MinimalRepository, options) end @doc """ Map a commit author @see https://docs.github.com/rest/migrations/source-imports#map-a-commit-author """ def map_commit_author(author_id, body, options \\ nil) do owner = repo_owner(options) repo = repo_name(options) url = github_base() <> "/repos/#{owner}/#{repo}/import/authors/#{author_id}" body = body api_call(:patch, url, body, Noizu.Github.PorterAuthor, options) end @doc """ Update Git LFS preference @see https://docs.github.com/rest/migrations/source-imports#update-git-lfs-preference """ def set_lfs_preference(body, options \\ nil) do owner = repo_owner(options) repo = repo_name(options) url = github_base() <> "/repos/#{owner}/#{repo}/import/lfs" body = body api_call(:patch, url, body, Noizu.Github.Import, options) end @doc """ Start a user migration @see https://docs.github.com/rest/migrations/users#start-a-user-migration """ def start_for_authenticated_user(body, options \\ nil) do url = github_base() <> "/user/migrations" body = body api_call(:post, url, body, Noizu.Github.Migration, options) end @doc """ Start an organization migration @see https://docs.github.com/rest/migrations/orgs#start-an-organization-migration """ def start_for_org(org, body, options \\ nil) do url = github_base() <> "/orgs/#{org}/migrations" body = body api_call(:post, url, body, Noizu.Github.Migration, options) end @doc """ Start an import @see https://docs.github.com/rest/migrations/source-imports#start-an-import """ def start_import(body, options \\ nil) do owner = repo_owner(options) repo = repo_name(options) url = github_base() <> "/repos/#{owner}/#{repo}/import" body = body api_call(:put, url, body, Noizu.Github.Import, options) end @doc """ Unlock a user repository @see https://docs.github.com/rest/migrations/users#unlock-a-user-repository """ def unlock_repo_for_authenticated_user(migration_id, repo_name, options \\ nil) do url = github_base() <> "/user/migrations/#{migration_id}/repos/#{repo_name}/lock" body = %{} api_call(:delete, url, body, Noizu.Github.Raw, options) end @doc """ Unlock an organization repository @see https://docs.github.com/rest/migrations/orgs#unlock-an-organization-repository """ def unlock_repo_for_org(org, migration_id, repo_name, options \\ nil) do url = github_base() <> "/orgs/#{org}/migrations/#{migration_id}/repos/#{repo_name}/lock" body = %{} api_call(:delete, url, body, Noizu.Github.Raw, options) end @doc """ Update an import @see https://docs.github.com/rest/migrations/source-imports#update-an-import """ def update_import(body, options \\ nil) do owner = repo_owner(options) repo = repo_name(options) url = github_base() <> "/repos/#{owner}/#{repo}/import" body = body api_call(:patch, url, body, Noizu.Github.Import, options) end end