Extend API for exporting a project with direct upload URL
Exporting a project via API is useful in a number of situations, but polling for the download is frustrating. In many instances, the API consumer is trying to download the project export to put somewhere else, like an S3 bucket. Additionally if many projects are frequently exported this could cause significant disk usage as exports are retained for 24 hours.
Proposal
- Allow a pre-signed S3 URL to provided when requesting the project export
- When the export is ready, GitLab will automatically upload the file using the provided URL and delete the file once uploaded