summaryrefslogtreecommitdiff
path: root/lib/api/generic_packages.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/api/generic_packages.rb')
-rw-r--r--lib/api/generic_packages.rb9
1 files changed, 7 insertions, 2 deletions
diff --git a/lib/api/generic_packages.rb b/lib/api/generic_packages.rb
index 5e184d35255..8cca3378eec 100644
--- a/lib/api/generic_packages.rb
+++ b/lib/api/generic_packages.rb
@@ -54,6 +54,7 @@ module API
requires :file_name, type: String, desc: 'Package file name', regexp: Gitlab::Regex.generic_package_file_name_regex, file_path: true
optional :status, type: String, values: ALLOWED_STATUSES, desc: 'Package status'
requires :file, type: ::API::Validations::Types::WorkhorseFile, desc: 'The package file to be published (generated by Multipart middleware)'
+ optional :select, type: String, values: %w[package_file]
end
route_setting :authentication, job_token_allowed: true, basic_auth_personal_access_token: true, deploy_token_allowed: true
@@ -65,11 +66,15 @@ module API
track_package_event('push_package', :generic, project: project, user: current_user, namespace: project.namespace)
create_package_file_params = declared_params.merge(build: current_authenticated_job)
- ::Packages::Generic::CreatePackageFileService
+ package_file = ::Packages::Generic::CreatePackageFileService
.new(project, current_user, create_package_file_params)
.execute
- created!
+ if params[:select] == 'package_file'
+ present package_file
+ else
+ created!
+ end
rescue ObjectStorage::RemoteStoreError => e
Gitlab::ErrorTracking.track_exception(e, extra: { file_name: params[:file_name], project_id: project.id })