Remove old export file when requesting new project export using API
What does this MR do?
Currently Project Export API does not allow project export to be regenerated within 24 hours window. If POST request is made to /export
endpoint followed by a GET request, the response is old project file with export_status: finished
, which can be confusing. Sometimes there are situations where you want to regenerate project export within 24 hours window.
Our UI controller code allows you to do it https://gitlab.com/gitlab-org/gitlab/blob/georgekoltsov/add-regenerate-new-export-to-project-export/app/controllers/projects_controller.rb#L236-236 but not the API.
This MR adds an extra step on POST request to /export
endpoint removing the old export file before performing a new export.
Screenshots
Does this MR meet the acceptance criteria?
Conformity
-
Changelog entry - [-] Documentation (if required)
-
Code review guidelines - [-] Merge request performance guidelines
-
Style guides - [-] Database guides
- [-] Separation of EE specific content
Availability and Testing
-
Review and add/update tests for this feature/bug. Consider all test levels. See the Test Planning Process. -
Tested in all supported browsers -
Informed Infrastructure department of a default or new setting change, if applicable per definition of done
Security
If this MR contains changes to processing or storing of credentials or tokens, authorization and authentication methods and other items described in the security review guidelines:
-
Label as security and @ mention @gitlab-com/gl-security/appsec
-
The MR includes necessary changes to maintain consistency between UI, API, email, or other methods -
Security reports checked/validated by a reviewer from the AppSec team