summaryrefslogtreecommitdiff
path: root/lib/api
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2021-07-26 21:08:38 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2021-07-26 21:08:38 +0000
commit936d15143b786f841bf0ee8e2458215ee010f33e (patch)
treef850c872c4d0328358ebdec10a343e8c63e519ce /lib/api
parentf57f1c6cd8a89454bb8a4a1b965738dcc8007d5d (diff)
downloadgitlab-ce-936d15143b786f841bf0ee8e2458215ee010f33e.tar.gz
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'lib/api')
-rw-r--r--lib/api/api.rb1
-rw-r--r--lib/api/concerns/packages/debian_distribution_endpoints.rb4
-rw-r--r--lib/api/debian_group_packages.rb2
-rw-r--r--lib/api/group_debian_distributions.rb35
-rw-r--r--lib/api/project_debian_distributions.rb2
5 files changed, 41 insertions, 3 deletions
diff --git a/lib/api/api.rb b/lib/api/api.rb
index 0a8a9682f35..40f1b2fa9d3 100644
--- a/lib/api/api.rb
+++ b/lib/api/api.rb
@@ -188,6 +188,7 @@ module API
mount ::API::GroupMilestones
mount ::API::Groups
mount ::API::GroupContainerRepositories
+ mount ::API::GroupDebianDistributions
mount ::API::GroupVariables
mount ::API::ImportBitbucketServer
mount ::API::ImportGithub
diff --git a/lib/api/concerns/packages/debian_distribution_endpoints.rb b/lib/api/concerns/packages/debian_distribution_endpoints.rb
index 4670c3e3521..798e583b87a 100644
--- a/lib/api/concerns/packages/debian_distribution_endpoints.rb
+++ b/lib/api/concerns/packages/debian_distribution_endpoints.rb
@@ -80,6 +80,8 @@ module API
use :optional_distribution_params
end
get '/' do
+ authorize_read_package!(project_or_group)
+
distribution_params = declared_params(include_missing: false)
distributions = ::Packages::Debian::DistributionsFinder.new(project_or_group, distribution_params).execute
@@ -96,6 +98,8 @@ module API
requires :codename, type: String, regexp: Gitlab::Regex.debian_distribution_regex, desc: 'The Debian Codename'
end
get '/:codename' do
+ authorize_read_package!(project_or_group)
+
distribution = ::Packages::Debian::DistributionsFinder.new(project_or_group, codename: params[:codename]).execute.last!
present distribution, with: ::API::Entities::Packages::Debian::Distribution
diff --git a/lib/api/debian_group_packages.rb b/lib/api/debian_group_packages.rb
index 191ed42a5b8..d4bf440051a 100644
--- a/lib/api/debian_group_packages.rb
+++ b/lib/api/debian_group_packages.rb
@@ -18,7 +18,7 @@ module API
before do
require_packages_enabled!
- not_found! unless ::Feature.enabled?(:debian_packages, user_group)
+ not_found! unless ::Feature.enabled?(:debian_group_packages, user_group)
authorize_read_package!(user_group)
end
diff --git a/lib/api/group_debian_distributions.rb b/lib/api/group_debian_distributions.rb
new file mode 100644
index 00000000000..01a8774bd97
--- /dev/null
+++ b/lib/api/group_debian_distributions.rb
@@ -0,0 +1,35 @@
+# frozen_string_literal: true
+
+module API
+ class GroupDebianDistributions < ::API::Base
+ params do
+ requires :id, type: String, desc: 'The ID of a group'
+ end
+
+ resource :groups, requirements: API::NAMESPACE_OR_PROJECT_REQUIREMENTS do
+ rescue_from ArgumentError do |e|
+ render_api_error!(e.message, 400)
+ end
+
+ rescue_from ActiveRecord::RecordInvalid do |e|
+ render_api_error!(e.message, 400)
+ end
+
+ after_validation do
+ require_packages_enabled!
+
+ not_found! unless ::Feature.enabled?(:debian_group_packages, user_group)
+ end
+
+ namespace ':id/-' do
+ helpers do
+ def project_or_group
+ user_group
+ end
+ end
+
+ include ::API::Concerns::Packages::DebianDistributionEndpoints
+ end
+ end
+ end
+end
diff --git a/lib/api/project_debian_distributions.rb b/lib/api/project_debian_distributions.rb
index 58edf51f4f7..f057251fb6b 100644
--- a/lib/api/project_debian_distributions.rb
+++ b/lib/api/project_debian_distributions.rb
@@ -19,8 +19,6 @@ module API
require_packages_enabled!
not_found! unless ::Feature.enabled?(:debian_packages, user_project)
-
- authorize_read_package!
end
namespace ':id' do