37 lines
978 B
Text
37 lines
978 B
Text
|
#!/usr/bin/env ruby
|
||
|
|
||
|
require 'uri'
|
||
|
require 'net/http'
|
||
|
require 'yaml'
|
||
|
|
||
|
url = URI("https://gitlab.com/gitlab-com/www-gitlab-com/raw/master/data/stages.yml")
|
||
|
|
||
|
http = Net::HTTP.new(url.host, url.port)
|
||
|
http.use_ssl = true
|
||
|
|
||
|
request = Net::HTTP::Get.new(url)
|
||
|
|
||
|
response = http.request(request)
|
||
|
|
||
|
stages_doc = YAML.safe_load(response.read_body)
|
||
|
feature_categories = stages_doc["stages"].values
|
||
|
.flat_map { |stage| stage["groups"].values }
|
||
|
.flat_map { |group| group["categories"] }
|
||
|
.select(&:itself)
|
||
|
.uniq
|
||
|
.sort
|
||
|
|
||
|
File.open("#{__dir__}/../config/feature_categories.yml", 'w') do |file|
|
||
|
file.puts(<<~HEADER_COMMENT)
|
||
|
#
|
||
|
# This file contains a list of all feature categories in GitLab
|
||
|
# It is generated from the stages file at #{url}.
|
||
|
# If you would like to update it, please run
|
||
|
# `./scripts/update-feature-categories` to generate a new copy
|
||
|
#
|
||
|
# PLEASE DO NOT EDIT THIS FILE MANUALLY.
|
||
|
#
|
||
|
HEADER_COMMENT
|
||
|
file.write(feature_categories.to_yaml)
|
||
|
end
|