diff options
Diffstat (limited to 'lib/api/maven_packages.rb')
-rw-r--r-- | lib/api/maven_packages.rb | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/lib/api/maven_packages.rb b/lib/api/maven_packages.rb index 72313d6a588..30cdaba76ba 100644 --- a/lib/api/maven_packages.rb +++ b/lib/api/maven_packages.rb @@ -220,7 +220,7 @@ module API end params do - requires :id, type: String, desc: 'The ID of a project' + requires :id, types: [String, Integer], desc: 'The ID or URL-encoded path of the project' end resource :projects, requirements: API::NAMESPACE_OR_PROJECT_REQUIREMENTS do desc 'Download the maven package file' do @@ -232,18 +232,20 @@ module API end route_setting :authentication, job_token_allowed: true, deploy_token_allowed: true get ':id/packages/maven/*path/:file_name', requirements: MAVEN_ENDPOINT_REQUIREMENTS do + project = user_project(action: :read_package) + # return a similar failure to user_project - unless Feature.enabled?(:maven_central_request_forwarding, user_project&.root_ancestor) + unless Feature.enabled?(:maven_central_request_forwarding, project&.root_ancestor) not_found!('Project') unless path_exists?(params[:path]) end - authorize_read_package!(user_project) + authorize_read_package!(project) file_name, format = extract_format(params[:file_name]) - package = fetch_package(file_name: file_name, project: user_project) + package = fetch_package(file_name: file_name, project: project) - find_and_present_package_file(package, file_name, format, params.merge(target: user_project)) + find_and_present_package_file(package, file_name, format, params.merge(target: project)) end desc 'Workhorse authorize the maven package file upload' do @@ -268,7 +270,7 @@ module API params do requires :path, type: String, desc: 'Package path' requires :file_name, type: String, desc: 'Package file name', regexp: Gitlab::Regex.maven_file_name_regex - requires :file, type: ::API::Validations::Types::WorkhorseFile, desc: 'The package file to be published (generated by Multipart middleware)' + requires :file, type: ::API::Validations::Types::WorkhorseFile, desc: 'The package file to be published (generated by Multipart middleware)', documentation: { type: 'file' } end route_setting :authentication, job_token_allowed: true, deploy_token_allowed: true put ':id/packages/maven/*path/:file_name', requirements: MAVEN_ENDPOINT_REQUIREMENTS do |