Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'lib/tasks/gitlab/openapi.rake')
-rw-r--r--lib/tasks/gitlab/openapi.rake23
1 files changed, 23 insertions, 0 deletions
diff --git a/lib/tasks/gitlab/openapi.rake b/lib/tasks/gitlab/openapi.rake
new file mode 100644
index 00000000000..fd067a1bf0b
--- /dev/null
+++ b/lib/tasks/gitlab/openapi.rake
@@ -0,0 +1,23 @@
+# frozen_string_literal: true
+
+require 'logger'
+
+if Rails.env.development?
+ require 'grape-swagger/rake/oapi_tasks'
+ GrapeSwagger::Rake::OapiTasks.new('::API::API')
+end
+
+namespace :gitlab do
+ namespace :openapi do
+ task :generate do
+ raise 'This task can only be run in the development environment' unless Rails.env.development?
+
+ ENV['store'] = 'tmp/openapi.json'
+ Rake::Task["oapi:fetch"].invoke(['openapi.json'])
+
+ yaml_content = Gitlab::Json.parse(File.read('tmp/openapi_swagger_doc.json')).to_yaml
+
+ File.write("doc/api/openapi/openapi_v2.yaml", yaml_content)
+ end
+ end
+end