Files
importer-issue-ops/lib/models/provider.rb

43 lines
944 B
Ruby
Raw Permalink Normal View History

2022-01-07 19:45:53 +00:00
# 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
2023-05-15 10:58:01 -07:00
include EnvironmentWriter
2022-01-07 19:45:53 +00:00
PROVIDER_MAP = {
"azure-devops" => ::AzureDevops,
2023-08-10 11:08:04 -05:00
"bamboo" => ::Bamboo,
"bitbucket" => ::Bitbucket,
2022-01-07 19:45:53 +00:00
"circle-ci" => ::CircleCI,
"gitlab" => ::GitlabCI,
"jenkins" => ::Jenkins,
2023-08-10 11:08:04 -05:00
"travis-ci" => ::TravisCI
2022-01-07 19:45:53 +00:00
}.freeze
def initialize(labels)
providers = JSON.parse(labels).select { |label| PROVIDER_MAP.key?(label) }
2022-01-07 19:45:53 +00:00
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