Files
importer-issue-ops/lib/models/provider.rb
2023-09-13 13:12:05 -05:00

43 lines
944 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 EnvironmentWriter
PROVIDER_MAP = {
"azure-devops" => ::AzureDevops,
"bamboo" => ::Bamboo,
"bitbucket" => ::Bitbucket,
"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