Repository URL to install this package:
Version:
8.5.0.pre.alpha.4 ▾
|
# frozen_string_literal: true
require "git"
require "danger/request_sources/local_only"
module Danger
# ### CI Setup
#
# For setting up LocalOnlyGitRepo there is not much needed. Either `--base` and `--head` need to be specified or
# origin/master is expected for base and HEAD for head
#
class LocalOnlyGitRepo < CI
attr_accessor :base_commit, :head_commit
HEAD_VAR = "DANGER_LOCAL_HEAD"
BASE_VAR = "DANGER_LOCAL_BASE"
def self.validates_as_ci?(env)
env.key? "DANGER_USE_LOCAL_ONLY_GIT"
end
def self.validates_as_pr?(_env)
false
end
def git
@git ||= GitRepo.new
end
def run_git(command)
git.exec(command).encode("UTF-8", "binary", invalid: :replace, undef: :replace, replace: "")
end
def supported_request_sources
@supported_request_sources ||= [Danger::RequestSources::LocalOnly]
end
def initialize(env = {})
# expects --base/--head specified OR origin/master to be base and HEAD head
self.base_commit = env[BASE_VAR] || run_git("rev-parse --abbrev-ref origin/master")
self.head_commit = env[HEAD_VAR] || run_git("rev-parse --abbrev-ref HEAD")
end
end
end