lib/cucumber/ci_environment.rb in cucumber-ci-environment-9.0.2 vs lib/cucumber/ci_environment.rb in cucumber-ci-environment-9.0.3

- old
+ new

@@ -5,37 +5,37 @@ module Cucumber module CiEnvironment extend VariableExpression CI_ENVIRONMENTS_PATH = File.join(File.dirname(__FILE__), 'ci_environment/CiEnvironments.json') - def detect_ci_environment(env, file_reader = IO.method(:read)) - ci_environments = JSON.parse(file_reader.call(CI_ENVIRONMENTS_PATH)) + def detect_ci_environment(env) + ci_environments = JSON.parse(IO.read(CI_ENVIRONMENTS_PATH)) ci_environments.each do |ci_environment| - detected = detect(ci_environment, env, file_reader) + detected = detect(ci_environment, env) return detected unless detected.nil? end nil end - def detect(ci_environment, env, file_reader) + def detect(ci_environment, env) url = evaluate(ci_environment['url'], env) return nil if url.nil? result = { name: ci_environment['name'], url: url, buildNumber: evaluate(ci_environment['buildNumber'], env), } - detected_git = detect_git(ci_environment, env, file_reader) + detected_git = detect_git(ci_environment, env) result[:git] = detected_git if detected_git result end - def detect_git(ci_environment, env, file_reader) - revision = detect_revision(ci_environment, env, file_reader) + def detect_git(ci_environment, env) + revision = detect_revision(ci_environment, env) return nil if revision.nil? remote = evaluate(ci_environment['git']['remote'], env) return nil if remote.nil? @@ -49,15 +49,16 @@ git_info[:tag] = tag if tag git_info[:branch] = branch if branch git_info end - def detect_revision(ci_environment, env, file_reader) + def detect_revision(ci_environment, env) if env['GITHUB_EVENT_NAME'] == 'pull_request' raise StandardError('GITHUB_EVENT_PATH not set') unless env['GITHUB_EVENT_PATH'] - event = JSON.parse(file_reader.call(env['GITHUB_EVENT_PATH'])) - raise StandardError("No after property in #{env['GITHUB_EVENT_PATH']}:\n#{JSON.pretty_generate(event)}") unless event['after'] - return event['after'] + event = JSON.parse(IO.read(env['GITHUB_EVENT_PATH'])) + revision = event['pull_request']['head']['sha'] rescue nil + raise StandardError("Could not find .pull_request.head.sha in #{env['GITHUB_EVENT_PATH']}:\n#{JSON.pretty_generate(event)}") if revision.nil? + return revision end return evaluate(ci_environment['git']['revision'], env) end