Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2019-12-09 06:07:57 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2019-12-09 06:07:57 +0300
commit330eac18cef61a4f58b3601265f7b631d2311cd0 (patch)
tree87eec5d8c441581938ca908ce30199832e118b85 /lib
parent3359a5a56337b93cd34b9914b6468395bfb6c514 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'lib')
-rw-r--r--lib/api/api.rb1
-rw-r--r--lib/api/entities.rb12
-rw-r--r--lib/api/remote_mirrors.rb30
3 files changed, 43 insertions, 0 deletions
diff --git a/lib/api/api.rb b/lib/api/api.rb
index a2bdb76b834..6949cfa8e49 100644
--- a/lib/api/api.rb
+++ b/lib/api/api.rb
@@ -156,6 +156,7 @@ module API
mount ::API::ProtectedTags
mount ::API::Releases
mount ::API::Release::Links
+ mount ::API::RemoteMirrors
mount ::API::Repositories
mount ::API::Runner
mount ::API::Runners
diff --git a/lib/api/entities.rb b/lib/api/entities.rb
index 1297f8e87a2..f89070ea1cb 100644
--- a/lib/api/entities.rb
+++ b/lib/api/entities.rb
@@ -166,6 +166,18 @@ module API
end
end
+ class RemoteMirror < Grape::Entity
+ expose :id
+ expose :enabled
+ expose :safe_url, as: :url
+ expose :update_status
+ expose :last_update_at
+ expose :last_update_started_at
+ expose :last_successful_update_at
+ expose :last_error
+ expose :only_protected_branches
+ end
+
class ProjectImportStatus < ProjectIdentity
expose :import_status
diff --git a/lib/api/remote_mirrors.rb b/lib/api/remote_mirrors.rb
new file mode 100644
index 00000000000..8a085517ce9
--- /dev/null
+++ b/lib/api/remote_mirrors.rb
@@ -0,0 +1,30 @@
+# frozen_string_literal: true
+
+module API
+ class RemoteMirrors < Grape::API
+ include PaginationParams
+
+ before do
+ # TODO: Remove flag: https://gitlab.com/gitlab-org/gitlab/issues/38121
+ not_found! unless Feature.enabled?(:remote_mirrors_api, user_project)
+ end
+
+ params do
+ requires :id, type: String, desc: 'The ID of a project'
+ end
+ resource :projects, requirements: API::NAMESPACE_OR_PROJECT_REQUIREMENTS do
+ desc "List the project's remote mirrors" do
+ success Entities::RemoteMirror
+ end
+ params do
+ use :pagination
+ end
+ get ':id/remote_mirrors' do
+ unauthorized! unless can?(current_user, :admin_remote_mirror, user_project)
+
+ present paginate(user_project.remote_mirrors),
+ with: Entities::RemoteMirror
+ end
+ end
+ end
+end