1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
|
# frozen_string_literal: true
class Gitlab::Client
# Defines methods related to remote mirrors.
# @see https://docs.gitlab.com/ee/api/remote_mirrors.html
module RemoteMirrors
# List a project's remote mirrors
#
# @example
# Gitlab.remote_mirrors(42)
# Gitlab.remote_mirrors('gitlab-org/gitlab')
#
# @param [Integer, String] project The ID or name of a project.
# @return [Array<Gitlab::ObjectifiedHash>]
def remote_mirrors(project)
get("/projects/#{url_encode project}/remote_mirrors")
end
# Create a remote mirror
#
# @example
# Gitlab.create_remote_mirror(42, 'https://mirror-bot@gitlab.com/gitlab-org/gitlab.git', enabled: true)
#
# @param [Integer, String] project The ID or name of a project.
# @param [String] url The full URL of the remote repository.
# @param [Hash] options A customizable set of options.
# @option options [Boolean] :enabled Determines if the mirror is enabled.
# @option options [Boolean] :only_protected_branches Determines if only protected branches are mirrored.
# @option options [Boolean] :keep_divergent_refs Determines if divergent refs are skipped.
# @return [Gitlab::ObjectifiedHash]
def create_remote_mirror(project, url, options = {})
post("/projects/#{url_encode project}/remote_mirrors", body: options.merge(url: url))
end
# Update a remote mirror's attributes
#
# @example
# Gitlab.edit_remote_mirror(42, 66, only_protected_branches: true)
#
# @param [Integer, String] project The ID or name of a project.
# @param [Integer] id The ID of the remote mirror.
# @param [Hash] options A customizable set of options.
# @option options [Boolean] :enabled Determines if the mirror is enabled.
# @option options [Boolean] :only_protected_branches Determines if only protected branches are mirrored.
# @option options [Boolean] :keep_divergent_refs Determines if divergent refs are skipped.
# @return [Gitlab::ObjectifiedHash]
def edit_remote_mirror(project, id, options = {})
put("/projects/#{url_encode project}/remote_mirrors/#{id}", body: options)
end
end
end
|