38 lines
		
	
	
		
			1008 B
		
	
	
	
		
			Ruby
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			1008 B
		
	
	
	
		
			Ruby
		
	
	
		
			Executable File
		
	
	
#!/usr/bin/env ruby
 | 
						|
# frozen_string_literal: true
 | 
						|
 | 
						|
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
 |