module Gitlab::Ci::Lint
Constants
- VERSION
Public Class Methods
validate(values, configuration, options)
click to toggle source
# File lib/gitlab/ci/lint.rb, line 9 def self.validate values, configuration, options system = GitLab::CI::Lint::System.new actions = GitLab::CI::Lint::Actions.new system.file_exist?(values, "Error: You must specify the values.yml file") values = File.absolute_path(values) system.file_is_readable?(values, "Error: Could not find file at '#{values}'") yml_reader = GitLab::CI::Lint::YMLReader.new(values) content = yml_reader.get_content gitlab = content["gitlab"] logger = GitLab::CI::Lint::Log.instance gitlab_endpoint = options["endpoint"] ? options["endpoint"] : ((!gitlab["endpoint"].to_s.empty? && !gitlab["endpoint"].nil?) ? gitlab["endpoint"] : configuration.gitlab_endpoint) gitlab_token = options["token"] ? options["token"] : ((!gitlab["token"].to_s.empty? && !gitlab["token"].nil?) ? gitlab["token"] : configuration.gitlab_token) timeout = options["timeout"] ? options["timeout"] : ((!gitlab["timeout"].to_s.empty? && !gitlab["timeout"].nil?) ? gitlab["timeout"] : configuration.timeout) gitlab_ci_file = options["file"] ? options["file"] : ((!gitlab["file"].to_s.empty? && !gitlab["file"].nil?) ? gitlab["file"] : configuration.gitlab_ci_file) logger.info("Starting GitLab CI YML Validation...") headers = gitlab_token ? { "Content-Type" => "application/json", "Private-Token" => gitlab_token } : { "Content-Type" => "application/json" } actions.validate_gitlab_ci_yml(gitlab_endpoint, gitlab_ci_file, headers, timeout) return 0 end