danger 0.8.5 → 0.9.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +4 -1
- data/bin/danger +2 -2
- data/lib/danger.rb +13 -13
- data/lib/danger/ci_source/buildkite.rb +5 -5
- data/lib/danger/ci_source/ci_source.rb +3 -3
- data/lib/danger/ci_source/circle.rb +13 -13
- data/lib/danger/ci_source/circle_api.rb +4 -4
- data/lib/danger/ci_source/drone.rb +5 -5
- data/lib/danger/ci_source/jenkins.rb +4 -4
- data/lib/danger/ci_source/local_git_repo.rb +13 -13
- data/lib/danger/ci_source/semaphore.rb +5 -5
- data/lib/danger/ci_source/surf.rb +24 -0
- data/lib/danger/ci_source/teamcity.rb +4 -4
- data/lib/danger/ci_source/travis.rb +6 -6
- data/lib/danger/ci_source/xcode_server.rb +2 -2
- data/lib/danger/commands/init.rb +93 -82
- data/lib/danger/commands/init_helpers/interviewer.rb +15 -15
- data/lib/danger/commands/local.rb +13 -13
- data/lib/danger/commands/plugins/plugin_lint.rb +11 -8
- data/lib/danger/commands/plugins/plugin_readme.rb +15 -11
- data/lib/danger/commands/runner.rb +31 -20
- data/lib/danger/core_ext/string.rb +3 -3
- data/lib/danger/danger_core/dangerfile.rb +31 -31
- data/lib/danger/danger_core/dangerfile_dsl.rb +1 -1
- data/lib/danger/danger_core/environment_manager.rb +6 -6
- data/lib/danger/danger_core/plugins/dangerfile_git_plugin.rb +5 -5
- data/lib/danger/danger_core/plugins/dangerfile_github_plugin.rb +2 -2
- data/lib/danger/danger_core/plugins/dangerfile_import_plugin.rb +9 -9
- data/lib/danger/danger_core/plugins/dangerfile_messaging_plugin.rb +3 -3
- data/lib/danger/danger_core/standard_error.rb +6 -6
- data/lib/danger/plugin_support/plugin.rb +1 -1
- data/lib/danger/plugin_support/plugin_file_resolver.rb +6 -6
- data/lib/danger/plugin_support/plugin_parser.rb +75 -31
- data/lib/danger/request_source/request_source.rb +4 -4
- data/lib/danger/scm_source/git_repo.rb +3 -3
- data/lib/danger/version.rb +2 -2
- metadata +17 -4
- data/lib/danger/commands/plugins/plugin_abstract.rb +0 -11
- data/lib/danger/commands/plugins/plugin_new.rb +0 -34
@@ -7,19 +7,19 @@ module Danger
|
|
7
7
|
end
|
8
8
|
|
9
9
|
def show_prompt
|
10
|
-
ui.print
|
10
|
+
ui.print "> ".bold.green
|
11
11
|
end
|
12
12
|
|
13
13
|
def yellow_bang
|
14
|
-
|
14
|
+
"! ".yellow
|
15
15
|
end
|
16
16
|
|
17
17
|
def green_bang
|
18
|
-
|
18
|
+
"! ".green
|
19
19
|
end
|
20
20
|
|
21
21
|
def red_bang
|
22
|
-
|
22
|
+
"! ".red
|
23
23
|
end
|
24
24
|
|
25
25
|
def say(output)
|
@@ -28,12 +28,12 @@ module Danger
|
|
28
28
|
|
29
29
|
def header(title)
|
30
30
|
say title.yellow
|
31
|
-
say
|
31
|
+
say ""
|
32
32
|
pause 0.6
|
33
33
|
end
|
34
34
|
|
35
35
|
def link(url)
|
36
|
-
say
|
36
|
+
say " -> " + url.underline + "\n"
|
37
37
|
end
|
38
38
|
|
39
39
|
def pause(time)
|
@@ -48,12 +48,12 @@ module Danger
|
|
48
48
|
|
49
49
|
def run_command(command, output_command = nil)
|
50
50
|
output_command ||= command
|
51
|
-
ui.puts
|
51
|
+
ui.puts " " + output_command.magenta
|
52
52
|
system command
|
53
53
|
end
|
54
54
|
|
55
55
|
def ask(question)
|
56
|
-
answer =
|
56
|
+
answer = ""
|
57
57
|
loop do
|
58
58
|
ui.puts "\n#{question}?"
|
59
59
|
|
@@ -73,26 +73,26 @@ module Danger
|
|
73
73
|
print_info = proc do
|
74
74
|
possible_answers.each_with_index do |answer, i|
|
75
75
|
the_answer = (i == 0) ? answer.underline : answer
|
76
|
-
ui.print
|
77
|
-
ui.print(
|
76
|
+
ui.print " " + the_answer
|
77
|
+
ui.print(" /") if i != possible_answers.length - 1
|
78
78
|
end
|
79
79
|
ui.print " ]\n"
|
80
80
|
end
|
81
81
|
print_info.call
|
82
82
|
|
83
|
-
answer =
|
83
|
+
answer = ""
|
84
84
|
|
85
85
|
loop do
|
86
86
|
show_prompt
|
87
87
|
answer = @no_waiting ? possible_answers[0].downcase : STDIN.gets.downcase.chomp
|
88
88
|
|
89
|
-
answer =
|
90
|
-
answer =
|
89
|
+
answer = "yes" if answer == "y"
|
90
|
+
answer = "no" if answer == "n"
|
91
91
|
|
92
92
|
# default to first answer
|
93
|
-
if answer ==
|
93
|
+
if answer == ""
|
94
94
|
answer = possible_answers[0].downcase
|
95
|
-
ui.puts
|
95
|
+
ui.puts "Using: " + answer.yellow
|
96
96
|
end
|
97
97
|
|
98
98
|
break if possible_answers.map(&:downcase).include? answer
|
@@ -1,30 +1,30 @@
|
|
1
1
|
module Danger
|
2
2
|
class Local < Runner
|
3
|
-
self.summary =
|
4
|
-
self.command =
|
3
|
+
self.summary = "Run the Dangerfile locally."
|
4
|
+
self.command = "local"
|
5
5
|
|
6
6
|
def initialize(argv)
|
7
|
-
@dangerfile_path =
|
8
|
-
@pr_num = argv.option(
|
7
|
+
@dangerfile_path = "Dangerfile" if File.exist? "Dangerfile"
|
8
|
+
@pr_num = argv.option("use-merged-pr")
|
9
9
|
super
|
10
10
|
end
|
11
11
|
|
12
12
|
def self.options
|
13
13
|
[
|
14
|
-
[
|
14
|
+
["--use-merged-pr=[#id]", "The ID of an already merged PR inside your history to use as a reference for the local run."]
|
15
15
|
].concat(super)
|
16
16
|
end
|
17
17
|
|
18
18
|
def validate!
|
19
19
|
super
|
20
20
|
unless @dangerfile_path
|
21
|
-
help!
|
21
|
+
help! "Could not find a Dangerfile."
|
22
22
|
end
|
23
23
|
end
|
24
24
|
|
25
25
|
def run
|
26
|
-
ENV[
|
27
|
-
ENV[
|
26
|
+
ENV["DANGER_USE_LOCAL_GIT"] = "YES"
|
27
|
+
ENV["LOCAL_GIT_PR_ID"] = @pr_num if @pr_num
|
28
28
|
|
29
29
|
env = EnvironmentManager.new(ENV)
|
30
30
|
dm = Dangerfile.new(env, cork)
|
@@ -32,7 +32,7 @@ module Danger
|
|
32
32
|
|
33
33
|
source = dm.env.ci_source
|
34
34
|
if source.nil? or source.repo_slug.empty?
|
35
|
-
cork.puts
|
35
|
+
cork.puts "danger local failed because it only works with GitHub projects at the moment. Sorry.".red
|
36
36
|
exit 0
|
37
37
|
end
|
38
38
|
|
@@ -41,20 +41,20 @@ module Danger
|
|
41
41
|
cork.puts "Running your Dangerfile against this PR - https://#{gh.host}/#{source.repo_slug}/pull/#{source.pull_request_id}"
|
42
42
|
|
43
43
|
if verbose != true
|
44
|
-
cork.puts
|
44
|
+
cork.puts "Turning on --verbose"
|
45
45
|
dm.verbose = true
|
46
46
|
end
|
47
47
|
|
48
48
|
cork.puts
|
49
49
|
|
50
50
|
# We can use tokenless here, as it's running on someone's computer
|
51
|
-
# and is IP locked, as opposed
|
51
|
+
# and is IP locked, as opposed to on the CI.
|
52
52
|
gh.support_tokenless_auth = true
|
53
53
|
|
54
54
|
begin
|
55
55
|
gh.fetch_details
|
56
56
|
rescue Octokit::NotFound
|
57
|
-
cork.puts "Local repository was not found on GitHub. If you're trying to test a private repository please provide a valid API token through " +
|
57
|
+
cork.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."
|
58
58
|
return
|
59
59
|
end
|
60
60
|
|
@@ -63,7 +63,7 @@ module Danger
|
|
63
63
|
begin
|
64
64
|
dm.env.fill_environment_vars
|
65
65
|
dm.env.ensure_danger_branches_are_setup
|
66
|
-
dm.env.scm.diff_for_folder(
|
66
|
+
dm.env.scm.diff_for_folder(".", from: Danger::EnvironmentManager.danger_base_branch, to: Danger::EnvironmentManager.danger_head_branch)
|
67
67
|
dm.parse(Pathname.new(@dangerfile_path))
|
68
68
|
dm.print_results
|
69
69
|
ensure
|
@@ -1,18 +1,21 @@
|
|
1
|
-
require
|
2
|
-
require
|
3
|
-
require 'danger/plugin_support/plugin_file_resolver'
|
1
|
+
require "danger/plugin_support/plugin_parser"
|
2
|
+
require "danger/plugin_support/plugin_file_resolver"
|
4
3
|
|
5
4
|
module Danger
|
6
|
-
class PluginLint <
|
7
|
-
self.summary =
|
8
|
-
self.command =
|
5
|
+
class PluginLint < CLAide::Command::Plugins
|
6
|
+
self.summary = "Lints a plugin"
|
7
|
+
self.command = "lint"
|
8
|
+
|
9
|
+
attr_accessor :cork
|
9
10
|
|
10
11
|
def initialize(argv)
|
11
12
|
@refs = argv.arguments! unless argv.arguments.empty?
|
13
|
+
@cork = Cork::Board.new(silent: argv.option("silent", false),
|
14
|
+
verbose: argv.option("verbose", false))
|
12
15
|
super
|
13
16
|
end
|
14
17
|
|
15
|
-
self.summary =
|
18
|
+
self.summary = "Lint plugins from files, gems or the current folder. Outputs JSON array representation of Plugins on success."
|
16
19
|
|
17
20
|
self.description = <<-DESC
|
18
21
|
Converts a collection of file paths of Danger plugins into a JSON format.
|
@@ -21,7 +24,7 @@ module Danger
|
|
21
24
|
DESC
|
22
25
|
|
23
26
|
self.arguments = [
|
24
|
-
CLAide::Argument.new(
|
27
|
+
CLAide::Argument.new("Paths, Gems or Nothing", false, true)
|
25
28
|
]
|
26
29
|
|
27
30
|
def run
|
@@ -1,19 +1,23 @@
|
|
1
|
-
require
|
2
|
-
require
|
3
|
-
require
|
4
|
-
require
|
1
|
+
require "danger/plugin_support/plugin_parser"
|
2
|
+
require "danger/plugin_support/plugin_file_resolver"
|
3
|
+
require "json"
|
4
|
+
require "erb"
|
5
5
|
|
6
6
|
module Danger
|
7
|
-
class PluginReadme <
|
8
|
-
self.summary =
|
9
|
-
self.command =
|
7
|
+
class PluginReadme < CLAide::Command::Plugins
|
8
|
+
self.summary = "Generates a README from a set of plugins"
|
9
|
+
self.command = "readme"
|
10
|
+
|
11
|
+
attr_accessor :cork
|
10
12
|
|
11
13
|
def initialize(argv)
|
12
14
|
@refs = argv.arguments! unless argv.arguments.empty?
|
15
|
+
@cork = Cork::Board.new(silent: argv.option("silent", false),
|
16
|
+
verbose: argv.option("verbose", false))
|
13
17
|
super
|
14
18
|
end
|
15
19
|
|
16
|
-
self.summary =
|
20
|
+
self.summary = "Lint plugins from files, gems or the current folder. Outputs JSON array representation of Plugins on success."
|
17
21
|
|
18
22
|
self.description = <<-DESC
|
19
23
|
Converts a collection of file paths of Danger plugins into a format usable in a README.
|
@@ -21,7 +25,7 @@ module Danger
|
|
21
25
|
DESC
|
22
26
|
|
23
27
|
self.arguments = [
|
24
|
-
CLAide::Argument.new(
|
28
|
+
CLAide::Argument.new("Paths, Gems or Nothing", false, true)
|
25
29
|
]
|
26
30
|
|
27
31
|
attr_accessor :json, :markdown
|
@@ -35,8 +39,8 @@ module Danger
|
|
35
39
|
self.markdown = Redcarpet::Markdown.new(Redcarpet::Render::HTML, no_intra_emphasis: true)
|
36
40
|
self.json = JSON.parse(parser.to_json)
|
37
41
|
|
38
|
-
template = File.join(Danger.gem_path,
|
39
|
-
cork.puts ERB.new(File.read(template), 0,
|
42
|
+
template = File.join(Danger.gem_path, "lib/danger/plugin_support/templates/readme_table.html.erb")
|
43
|
+
cork.puts ERB.new(File.read(template), 0, "-").result(binding)
|
40
44
|
end
|
41
45
|
end
|
42
46
|
end
|
@@ -1,11 +1,22 @@
|
|
1
1
|
module Danger
|
2
2
|
class Runner < CLAide::Command
|
3
|
-
require
|
4
|
-
require
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
3
|
+
require "danger/commands/init"
|
4
|
+
require "danger/commands/local"
|
5
|
+
|
6
|
+
# manually set claide plugins as a subcommand
|
7
|
+
require "claide_plugin"
|
8
|
+
@subcommands << CLAide::Command::Plugins
|
9
|
+
CLAide::Plugins.config =
|
10
|
+
CLAide::Plugins::Configuration.new("Danger",
|
11
|
+
"danger",
|
12
|
+
"https://raw.githubusercontent.com/danger/danger.systems/master/plugins-search-generated.json",
|
13
|
+
"https://github.com/danger/danger-plugin-template")
|
14
|
+
|
15
|
+
require "danger/commands/plugins/plugin_lint"
|
16
|
+
require "danger/commands/plugins/plugin_readme"
|
17
|
+
|
18
|
+
self.summary = "Run the Dangerfile."
|
19
|
+
self.command = "danger"
|
9
20
|
self.version = Danger::VERSION
|
10
21
|
|
11
22
|
self.plugin_prefixes = %w(claide danger)
|
@@ -13,29 +24,29 @@ module Danger
|
|
13
24
|
attr_accessor :cork
|
14
25
|
|
15
26
|
def initialize(argv)
|
16
|
-
dangerfile = argv.option(
|
27
|
+
dangerfile = argv.option("dangerfile", "Dangerfile")
|
17
28
|
@dangerfile_path = dangerfile if File.exist? dangerfile
|
18
|
-
@base = argv.option(
|
19
|
-
@head = argv.option(
|
20
|
-
@danger_id = argv.option(
|
21
|
-
@cork = Cork::Board.new(silent: argv.option(
|
22
|
-
verbose: argv.option(
|
29
|
+
@base = argv.option("base")
|
30
|
+
@head = argv.option("head")
|
31
|
+
@danger_id = argv.option("danger_id", "danger")
|
32
|
+
@cork = Cork::Board.new(silent: argv.option("silent", false),
|
33
|
+
verbose: argv.option("verbose", false))
|
23
34
|
super
|
24
35
|
end
|
25
36
|
|
26
37
|
def validate!
|
27
38
|
super
|
28
39
|
if self.class == Runner && !@dangerfile_path
|
29
|
-
help!
|
40
|
+
help! "Could not find a Dangerfile."
|
30
41
|
end
|
31
42
|
end
|
32
43
|
|
33
44
|
def self.options
|
34
45
|
[
|
35
|
-
[
|
36
|
-
[
|
37
|
-
[
|
38
|
-
[
|
46
|
+
["--base=[master|dev|stable]", "A branch/tag/commit to use as the base of the diff"],
|
47
|
+
["--head=[master|dev|stable]", "A branch/tag/commit to use as the head"],
|
48
|
+
["--dangerfile=<path/to/dangerfile>", "The location of your Dangerfile"],
|
49
|
+
["--danger_id=<id>", "The identifier of this Danger instance"]
|
39
50
|
].concat(super)
|
40
51
|
end
|
41
52
|
|
@@ -55,7 +66,7 @@ module Danger
|
|
55
66
|
# Offer the chance for a user to specify a branch through the command line
|
56
67
|
ci_base = @base || EnvironmentManager.danger_base_branch
|
57
68
|
ci_head = @head || EnvironmentManager.danger_head_branch
|
58
|
-
dm.env.scm.diff_for_folder(
|
69
|
+
dm.env.scm.diff_for_folder(".", from: ci_base, to: ci_head)
|
59
70
|
|
60
71
|
dm.parse Pathname.new(@dangerfile_path)
|
61
72
|
|
@@ -65,7 +76,7 @@ module Danger
|
|
65
76
|
dm.env.clean_up
|
66
77
|
end
|
67
78
|
else
|
68
|
-
cork.puts
|
79
|
+
cork.puts "Not a Pull Request - skipping `danger` run"
|
69
80
|
end
|
70
81
|
end
|
71
82
|
|
@@ -81,7 +92,7 @@ module Danger
|
|
81
92
|
raise exception if exception.kind_of?(SystemExit)
|
82
93
|
message = "#{exception.message.red} (#{exception.class.to_s.yellow})"
|
83
94
|
if exception.backtrace
|
84
|
-
danger_lib = File.expand_path(
|
95
|
+
danger_lib = File.expand_path("../../..", __FILE__)
|
85
96
|
message << "\n\t" << exception.backtrace.reverse_each.
|
86
97
|
drop_while { |bt| !bt.start_with?(danger_lib) }.reverse.
|
87
98
|
join("\n\t")
|
@@ -1,6 +1,6 @@
|
|
1
1
|
class String
|
2
2
|
def danger_class
|
3
|
-
split(
|
3
|
+
split("_").collect!(&:capitalize).join
|
4
4
|
end
|
5
5
|
|
6
6
|
def danger_pluralize(count)
|
@@ -8,10 +8,10 @@ class String
|
|
8
8
|
end
|
9
9
|
|
10
10
|
def danger_underscore
|
11
|
-
self.gsub(/::/,
|
11
|
+
self.gsub(/::/, "/").
|
12
12
|
gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2').
|
13
13
|
gsub(/([a-z\d])([A-Z])/, '\1_\2').
|
14
|
-
tr(
|
14
|
+
tr("-", "_").
|
15
15
|
downcase
|
16
16
|
end
|
17
17
|
end
|
@@ -1,14 +1,14 @@
|
|
1
1
|
# So much was ripped direct from CocoaPods-Core - thanks!
|
2
2
|
|
3
|
-
require
|
4
|
-
require
|
3
|
+
require "danger/danger_core/dangerfile_dsl"
|
4
|
+
require "danger/danger_core/standard_error"
|
5
5
|
|
6
|
-
require
|
7
|
-
require
|
8
|
-
require
|
9
|
-
require
|
6
|
+
require "danger/danger_core/plugins/dangerfile_messaging_plugin"
|
7
|
+
require "danger/danger_core/plugins/dangerfile_import_plugin"
|
8
|
+
require "danger/danger_core/plugins/dangerfile_git_plugin"
|
9
|
+
require "danger/danger_core/plugins/dangerfile_github_plugin"
|
10
10
|
|
11
|
-
require
|
11
|
+
require "danger/danger_core/plugins/dangerfile_github_plugin"
|
12
12
|
|
13
13
|
module Danger
|
14
14
|
class Dangerfile
|
@@ -25,7 +25,7 @@ module Danger
|
|
25
25
|
# presented to the user.
|
26
26
|
#
|
27
27
|
def to_s
|
28
|
-
|
28
|
+
"Dangerfile"
|
29
29
|
end
|
30
30
|
|
31
31
|
# These are the classes that are allowed to also use method_missing
|
@@ -73,7 +73,7 @@ module Danger
|
|
73
73
|
@env = env_manager
|
74
74
|
|
75
75
|
# Triggers local plugins from the root of a project
|
76
|
-
Dir[
|
76
|
+
Dir["./danger_plugins/*.rb"].each do |file|
|
77
77
|
require File.expand_path(file)
|
78
78
|
end
|
79
79
|
|
@@ -115,10 +115,10 @@ module Danger
|
|
115
115
|
methods.map do |method|
|
116
116
|
case method
|
117
117
|
when :api
|
118
|
-
value =
|
118
|
+
value = "Octokit::Client"
|
119
119
|
|
120
120
|
when :pr_json
|
121
|
-
value =
|
121
|
+
value = "[Skipped]"
|
122
122
|
|
123
123
|
when :pr_body
|
124
124
|
value = plugin.send(method)
|
@@ -140,20 +140,20 @@ module Danger
|
|
140
140
|
def print_known_info
|
141
141
|
rows = []
|
142
142
|
rows += method_values_for_plugin_hashes(core_dsl_attributes)
|
143
|
-
rows << [
|
143
|
+
rows << ["---", "---"]
|
144
144
|
rows += method_values_for_plugin_hashes(external_dsl_attributes)
|
145
|
-
rows << [
|
146
|
-
rows << [
|
147
|
-
rows << [
|
148
|
-
rows << [
|
149
|
-
rows << [
|
150
|
-
rows << [
|
145
|
+
rows << ["---", "---"]
|
146
|
+
rows << ["SCM", env.scm.class]
|
147
|
+
rows << ["Source", env.ci_source.class]
|
148
|
+
rows << ["Requests", env.request_source.class]
|
149
|
+
rows << ["Base Commit", env.meta_info_for_base]
|
150
|
+
rows << ["Head Commit", env.meta_info_for_head]
|
151
151
|
|
152
152
|
params = {}
|
153
153
|
params[:rows] = rows.each { |current| current[0] = current[0].yellow }
|
154
154
|
params[:title] = "Danger v#{Danger::VERSION}\nDSL Attributes".green
|
155
155
|
|
156
|
-
ui.section(
|
156
|
+
ui.section("Info:") do
|
157
157
|
ui.puts
|
158
158
|
ui.puts Terminal::Table.new(params)
|
159
159
|
ui.puts
|
@@ -165,23 +165,23 @@ module Danger
|
|
165
165
|
def parse(path, contents = nil)
|
166
166
|
print_known_info if verbose
|
167
167
|
|
168
|
-
contents ||= File.open(path,
|
168
|
+
contents ||= File.open(path, "r:utf-8", &:read)
|
169
169
|
|
170
170
|
# Work around for Rubinius incomplete encoding in 1.9 mode
|
171
|
-
if contents.respond_to?(:encoding) && contents.encoding.name !=
|
172
|
-
contents.encode!(
|
171
|
+
if contents.respond_to?(:encoding) && contents.encoding.name != "UTF-8"
|
172
|
+
contents.encode!("UTF-8")
|
173
173
|
end
|
174
174
|
|
175
|
-
if contents.tr!(
|
175
|
+
if contents.tr!("“”‘’‛", %(""'''))
|
176
176
|
# Changes have been made
|
177
177
|
ui.puts "Your #{path.basename} has had smart quotes sanitised. " \
|
178
|
-
|
179
|
-
|
180
|
-
|
178
|
+
"To avoid issues in the future, you should not use " \
|
179
|
+
"TextEdit for editing it. If you are not using TextEdit, " \
|
180
|
+
"you should turn off smart quotes in your editor of choice.".red
|
181
181
|
end
|
182
182
|
|
183
|
-
if contents.include?(
|
184
|
-
ui.puts
|
183
|
+
if contents.include?("puts")
|
184
|
+
ui.puts "You used `puts` in your Dangerfile. To print out text to GitHub use `message` instead"
|
185
185
|
end
|
186
186
|
|
187
187
|
self.defined_in_file = path
|
@@ -203,9 +203,9 @@ module Danger
|
|
203
203
|
status = status_report
|
204
204
|
return if (status[:errors] + status[:warnings] + status[:messages] + status[:markdowns]).count == 0
|
205
205
|
|
206
|
-
ui.section(
|
206
|
+
ui.section("Results:") do
|
207
207
|
[:errors, :warnings, :messages].each do |key|
|
208
|
-
formatted = key.to_s.capitalize +
|
208
|
+
formatted = key.to_s.capitalize + ":"
|
209
209
|
title = case key
|
210
210
|
when :errors
|
211
211
|
formatted.red
|
@@ -219,7 +219,7 @@ module Danger
|
|
219
219
|
end
|
220
220
|
|
221
221
|
if status[:markdowns].count > 0
|
222
|
-
ui.section(
|
222
|
+
ui.section("Markdown:") do
|
223
223
|
status[:markdowns].each do |current_markdown|
|
224
224
|
ui.puts current_markdown
|
225
225
|
end
|