Export all issues to CSV to object storage

Everyone can contribute. Help move this issue forward while earning points, leveling up and collecting rewards.

Right now we can only export a limited number of CSVs (15 MB), and this gets e-mailed to the requester.

For my machine learning work, I would like to export all issues and be able to download the file via object storage. Right now I'm hacking ExportCsv::BaseService:

diff --git a/app/services/issuable/export_csv/base_service.rb b/app/services/issuable/export_csv/base_service.rb
index 49ff05935c93..6e9c68aa10ee 100644
--- a/app/services/issuable/export_csv/base_service.rb
+++ b/app/services/issuable/export_csv/base_service.rb
@@ -12,7 +12,7 @@ def initialize(issuables_relation, project)
       end
 
       def csv_data
-        csv_builder.render(TARGET_FILESIZE)
+        csv_builder.render
       end
 
       private
project = Project.find_by_full_path('gitlab-org/gitlab')
issues = project.issues; nil
service = Issues::ExportCsvService.new(issues, project); nil
output = File.open("/tmp/gitlab-issues.csv", "w")
output.write(service.csv_data); nil
output.close

Just as we do with import/export for project, we could just have a separate section for downloading the exported issues.

Edited by 🤖 GitLab Bot 🤖