module Pact::ProviderVerifier::Git
Constants
- BRANCH_ENV_VAR_NAMES
- COMMAND
Public Class Methods
Source
# File lib/pact/provider_verifier/git.rb, line 11 def self.branch find_branch_from_env_vars || branch_from_git_command end
Source
# File lib/pact/provider_verifier/git.rb, line 21 def self.branch_from_env_var(env_var_name) val = ENV[env_var_name] if val && val.strip.size > 0 val else nil end end
Source
# File lib/pact/provider_verifier/git.rb, line 30 def self.branch_from_git_command branch_names = nil begin branch_names = execute_git_command .split("\n") .collect(&:strip) .reject(&:empty?) .collect(&:split) .collect(&:first) .collect{ |line| line.gsub(/^origin\//, '') } .reject{ |line| line == "HEAD" } rescue StandardError => e raise Pact::ProviderVerifier::Error, "Could not determine current git branch using command `#{COMMAND}`. #{e.class} #{e.message}" end validate_branch_names(branch_names) branch_names[0] end
Source
# File lib/pact/provider_verifier/git.rb, line 60 def self.execute_git_command `#{COMMAND}` end
Source
# File lib/pact/provider_verifier/git.rb, line 17 def self.find_branch_from_env_vars BRANCH_ENV_VAR_NAMES.collect { |env_var_name| branch_from_env_var(env_var_name) }.compact.first end
private
Source
# File lib/pact/provider_verifier/git.rb, line 50 def self.validate_branch_names(branch_names) if branch_names.size == 0 raise Pact::ProviderVerifier::Error, "Command `#{COMMAND}` didn't return anything that could be identified as the current branch." end if branch_names.size > 1 raise Pact::ProviderVerifier::Error, "Command `#{COMMAND}` returned multiple branches: #{branch_names.join(", ")}. You will need to get the branch name another way." end end