Files
news.gitea.happylizard.me/bin/gems/octokit-6.1.1/lib/octokit/client/source_import.rb
T
pizza2d1 4cee170d66
Gitea Actions Demo / Explore-Gitea-Actions (push) Failing after 9s
Add bin and edit workflow
2026-09-16 13:11:16 -06:00

157 lines
7.6 KiB
Ruby

# frozen_string_literal: true
module Octokit
class Client
# Methods for the Source Import API
#
# @see https://developer.github.com/v3/migration/source_imports
module SourceImport
# Start a source import to a GitHub repository using GitHub Importer.
#
# @overload start_source_import(repo, vcs, vcs_url, options = {})
# @deprecated
# @param repo [Integer, String, Hash, Repository] A GitHub repository.
# @param vcs [String] The originating VCS type. Can be one of "subversion", "git", "mercurial", or "tfvc".
# @param vcs_url [String] The URL of the originating repository.
# @param options [Hash]
# @option options [String] :vcs_username If authentication is required, the username to provide to vcs_url.
# @option options [String] :vcs_password If authentication is required, the password to provide to vcs_url.
# @option options [String] :tfvc_project For a tfvc import, the name of the project that is being imported.
# @overload start_source_import(repo, vcs_url, options = {})
# @param repo [Integer, String, Hash, Repository] A GitHub repository.
# @param vcs_url [String] The URL of the originating repository.
# @param options [Hash]
# @param options [String] :vcs The originating VCS type. Can be one of "subversion", "git", "mercurial", or "tfvc".
# @option options [String] :vcs_username If authentication is required, the username to provide to vcs_url.
# @option options [String] :vcs_password If authentication is required, the password to provide to vcs_url.
# @option options [String] :tfvc_project For a tfvc import, the name of the project that is being imported.
# @return [Sawyer::Resource] Hash representing the repository import
# @see https://developer.github.com/v3/migration/source_imports/#start-an-import
#
# @example
# @client.start_source_import("octokit/octokit.rb", "http://svn.mycompany.com/svn/myproject", {
# :vcs => "subversion",
# :vcs_username" => "octocat",
# :vcs_password => "secret"
# })
def start_source_import(*args)
arguments = Octokit::RepoArguments.new(args)
vcs_url = arguments.pop
vcs = arguments.pop
if vcs
octokit_warn 'Octokit#start_source_import vcs parameter is now an option, please update your call before the next major Octokit version update.'
arguments.options.merge!(vcs: vcs)
end
options = arguments.options.merge(vcs_url: vcs_url)
put "#{Repository.path arguments.repo}/import", options
end
# View the progress of an import.
#
# @param repo [Integer, String, Hash, Repository] A GitHub repository.
# @return [Sawyer::Resource] Hash representing the progress of the import
# @see https://developer.github.com/v3/migration/source_imports/#get-import-progress
#
# @example
# @client.source_import_progress("octokit/octokit.rb")
def source_import_progress(repo, options = {})
get "#{Repository.path repo}/import", options
end
# Update source import with authentication or project choice
# Restart source import if no options are passed
#
# @param repo [Integer, String, Hash, Repository] A GitHub repository.
# @return [Sawyer::Resource] Hash representing the repository import
# @see https://developer.github.com/v3/migration/source_imports/#update-existing-import
# @option options [String] :vcs_username If authentication is required, the username to provide to vcs_url.
# @option options [String] :vcs_password If authentication is required, the password to provide to vcs_url.
# @option options [String] To update project choice, please refer to the project_choice array from the progress return hash for the exact attributes.
# https://developer.github.com/v3/migration/source_imports/#update-existing-import
#
# @example
# @client.update_source_import("octokit/octokit.rb", {
# :vcs_username" => "octocat",
# :vcs_password => "secret"
# })
def update_source_import(repo, options = {})
patch "#{Repository.path repo}/import", options
end
# List source import commit authors
#
# @param repo [Integer, String, Hash, Repository] A GitHub repository.
# @param options [Hash]
# @option options [String] :since Only authors found after this id are returned.
# @return [Array<Sawyer::Resource>] Array of hashes representing commit_authors.
# @see https://developer.github.com/v3/migration/source_imports/#get-commit-authors
#
# @example
# @client.source_import_commit_authors("octokit/octokit.rb")
def source_import_commit_authors(repo, options = {})
get "#{Repository.path repo}/import/authors", options
end
# Update an author's identity for the import.
#
# @param author_url [String] The source import API url for the commit author
# @param values [Hash] The updated author attributes
# @option values [String] :email The new Git author email.
# @option values [String] :name The new Git author name.
# @return [Sawyer::Resource] Hash representing the updated commit author
# @see https://developer.github.com/v3/migration/source_imports/#map-a-commit-author
#
# @example
# author_url = "https://api.github.com/repos/octokit/octokit.rb/import/authors/1"
# @client.map_source_import_commit_author(author_url, {
# :email => "hubot@github.com",
# :name => "Hubot the Robot"
# })
def map_source_import_commit_author(author_url, values, options = {})
options = options.merge(values)
patch author_url, options
end
# Stop an import for a repository.
#
# @param repo [Integer, String, Hash, Repository] A GitHub repository.
# @return [Boolean] True if the import has been cancelled, false otherwise.
# @see https://developer.github.com/v3/migration/source_imports/#cancel-an-import
#
# @example
# @client.cancel_source_import("octokit/octokit.rb")
def cancel_source_import(repo, options = {})
boolean_from_response :delete, "#{Repository.path repo}/import", options
end
# List source import large files
#
# @param repo [Integer, String, Hash, Repository] A GitHub repository.
# @param options [Hash]
# @option options [Integer] :page Page of paginated results
# @return [Array<Sawyer::Resource>] Array of hashes representing files over 100MB.
# @see https://developer.github.com/v3/migration/source_imports/#get-large-files
#
# @example
# @client.source_import_large_files("octokit/octokit.rb")
def source_import_large_files(repo, options = {})
get "#{Repository.path repo}/import/large_files", options
end
# Set preference for using Git LFS to import files over 100MB
#
# @param repo [Integer, String, Hash, Repository] A GitHub repository.
# @param use_lfs [String] Preference for using Git LFS to import large files. Can be one of "opt_in" or "opt_out"
# @return [Sawyer::Resource] Hash representing the repository import
# @see https://developer.github.com/v3/migration/source_imports/#set-git-lfs-preference
#
# @example
# @client.opt_in_source_import_lfs("octokit/octokit.rb", "opt_in")
def set_source_import_lfs_preference(repo, use_lfs, options = {})
options = options.merge(use_lfs: use_lfs)
patch "#{Repository.path repo}/import/lfs", options
end
end
end
end