Files
importer-issue-ops/lib/models/provider.rb
Collin McNeese 4e9610599b provider update for label parsing
Signed-off-by: Collin McNeese <collinmcneese@github.com>
2022-12-21 09:40:18 -06:00

41 lines
872 B
Ruby

# frozen_string_literal: true
require_rel "./azure_devops/**/*.rb"
require_rel "./circle_ci/**/*.rb"
require_rel "./gitlab_ci/**/*.rb"
require_rel "./jenkins/**/*.rb"
require_rel "./travis_ci/**/*.rb"
class Provider
include OutputWriter
PROVIDER_MAP = {
"azure-devops" => ::AzureDevops,
"circle-ci" => ::CircleCI,
"gitlab" => ::GitlabCI,
"jenkins" => ::Jenkins,
"travis-ci" => ::TravisCI
}.freeze
def initialize(labels)
providers = JSON.parse(labels).select { |label| PROVIDER_MAP.key?(label) }
raise "One provider must be selected" if providers.empty?
raise "Only one provider can be selected" unless providers.one?
@provider = providers.first
end
def cli_command
@provider
end
def module
PROVIDER_MAP[@provider]
end
def to_output
set_output("provider", cli_command)
end
end