25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
# File 'lib/danger/commands/local.rb', line 25
def run
ENV["DANGER_USE_LOCAL_GIT"] = "YES"
ENV["LOCAL_GIT_PR_ID"] = @pr_num if @pr_num
env = EnvironmentManager.new(ENV)
dm = Dangerfile.new(env)
dm.init_plugins
source = dm.env.ci_source
if source.nil? or source.repo_slug.empty?
puts "danger local failed because it only works with GitHub projects at the moment. Sorry.".red
exit 0
end
gh = dm.env.request_source
puts "Running your Dangerfile against this PR - https://#{gh.github_host}/#{source.repo_slug}/pull/#{source.pull_request_id}"
if verbose != true
puts "Turning on --verbose"
dm.verbose = true
end
puts ""
gh.support_tokenless_auth = true
begin
gh.fetch_details
rescue Octokit::NotFound
puts "Local repository was not found on GitHub. If you're trying to test a private repository please provide a valid API token through " + "DANGER_GITHUB_API_TOKEN".yellow + " environment variable."
return
end
dm.env.request_source = gh
begin
dm.env.ensure_danger_branches_are_setup
dm.env.scm.diff_for_folder(".", from: dm.env.ci_source.base_commit, to: dm.env.ci_source.head_commit)
dm.parse(Pathname.new(@dangerfile_path))
dm.print_results
ensure
dm.env.clean_up
end
end
|