danger 3.5.4 → 3.5.5
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c92b72cb5561d7e1421f18365fc62b481c9762d8
|
4
|
+
data.tar.gz: f8cdf206cb65498b8312019dfc839d70d4360ef2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3dc93f4a46211f5924006f83797e15a02284faf6f515343daf211041a066719916292df8b49f60a360ff828d910686bcdef932676ca91c68c3c9e414ea93034d
|
7
|
+
data.tar.gz: 1a615082ce6d120d6732357ce403247da7a607affe8620ea2a2edb55cc9c239b3bdb585c2c39967e6c3d71db493f4b1c4ffd125481009049f54ff12e961c6fdd
|
@@ -37,8 +37,8 @@ module Danger
|
|
37
37
|
@base = argv.option("base")
|
38
38
|
@head = argv.option("head")
|
39
39
|
@fail_on_errors = argv.option("fail-on-errors", false)
|
40
|
-
new_comment = argv.flag?("new-comment")
|
41
|
-
@danger_id =
|
40
|
+
@new_comment = argv.flag?("new-comment")
|
41
|
+
@danger_id = argv.option("danger_id", "danger")
|
42
42
|
@cork = Cork::Board.new(silent: argv.option("silent", false),
|
43
43
|
verbose: argv.option("verbose", false))
|
44
44
|
super
|
@@ -58,7 +58,7 @@ module Danger
|
|
58
58
|
["--fail-on-errors=<true|false>", "Should always fail the build process, defaults to false"],
|
59
59
|
["--dangerfile=<path/to/dangerfile>", "The location of your Dangerfile"],
|
60
60
|
["--danger_id=<id>", "The identifier of this Danger instance"],
|
61
|
-
["--new-comment", "Makes
|
61
|
+
["--new-comment", "Makes Danger post a new comment instead of editing it's previous one"]
|
62
62
|
].concat(super)
|
63
63
|
end
|
64
64
|
|
@@ -68,6 +68,7 @@ module Danger
|
|
68
68
|
head: @head,
|
69
69
|
dangerfile_path: @dangerfile_path,
|
70
70
|
danger_id: @danger_id,
|
71
|
+
new_comment: @new_comment,
|
71
72
|
fail_on_errors: @fail_on_errors
|
72
73
|
)
|
73
74
|
end
|
@@ -241,7 +241,7 @@ module Danger
|
|
241
241
|
violation_report[:errors].count > 0
|
242
242
|
end
|
243
243
|
|
244
|
-
def post_results(danger_id)
|
244
|
+
def post_results(danger_id, new_comment)
|
245
245
|
violations = violation_report
|
246
246
|
|
247
247
|
env.request_source.update_pull_request!(
|
@@ -249,7 +249,8 @@ module Danger
|
|
249
249
|
errors: violations[:errors],
|
250
250
|
messages: violations[:messages],
|
251
251
|
markdowns: status_report[:markdowns],
|
252
|
-
danger_id: danger_id
|
252
|
+
danger_id: danger_id,
|
253
|
+
new_comment: new_comment
|
253
254
|
)
|
254
255
|
end
|
255
256
|
|
@@ -258,7 +259,7 @@ module Danger
|
|
258
259
|
env.scm.diff_for_folder(".".freeze, from: base_branch, to: head_branch)
|
259
260
|
end
|
260
261
|
|
261
|
-
def run(base_branch, head_branch, dangerfile_path, danger_id)
|
262
|
+
def run(base_branch, head_branch, dangerfile_path, danger_id, new_comment)
|
262
263
|
# Setup internal state
|
263
264
|
init_plugins
|
264
265
|
env.fill_environment_vars
|
@@ -273,7 +274,7 @@ module Danger
|
|
273
274
|
# Push results to the API
|
274
275
|
# Pass along the details of the run to the request source
|
275
276
|
# to send back to the code review site.
|
276
|
-
post_results(danger_id)
|
277
|
+
post_results(danger_id, new_comment)
|
277
278
|
|
278
279
|
# Print results in the terminal
|
279
280
|
print_results
|
@@ -11,6 +11,7 @@ module Danger
|
|
11
11
|
head: nil,
|
12
12
|
dangerfile_path: nil,
|
13
13
|
danger_id: nil,
|
14
|
+
new_comment: nil,
|
14
15
|
fail_on_errors: nil)
|
15
16
|
# Create a silent Cork instance if cork is nil, as it's likely a test
|
16
17
|
cork ||= Cork::Board.new(silent: false, verbose: false)
|
@@ -27,7 +28,8 @@ module Danger
|
|
27
28
|
base_branch(base),
|
28
29
|
head_branch(head),
|
29
30
|
dangerfile_path,
|
30
|
-
danger_id
|
31
|
+
danger_id,
|
32
|
+
new_comment
|
31
33
|
)
|
32
34
|
end
|
33
35
|
|
@@ -105,15 +105,16 @@ module Danger
|
|
105
105
|
end
|
106
106
|
|
107
107
|
# Sending data to GitHub
|
108
|
-
def update_pull_request!(warnings: [], errors: [], messages: [], markdowns: [], danger_id: "danger")
|
108
|
+
def update_pull_request!(warnings: [], errors: [], messages: [], markdowns: [], danger_id: "danger", new_comment: false)
|
109
109
|
comment_result = {}
|
110
110
|
editable_comments = issue_comments.select { |comment| comment.generated_by_danger?(danger_id) }
|
111
|
+
last_comment = editable_comments.last
|
112
|
+
should_create_new_comment = new_comment || last_comment.nil?
|
111
113
|
|
112
|
-
if
|
114
|
+
if should_create_new_comment
|
113
115
|
previous_violations = {}
|
114
116
|
else
|
115
|
-
|
116
|
-
previous_violations = parse_comment(comment)
|
117
|
+
previous_violations = parse_comment(last_comment.body)
|
117
118
|
end
|
118
119
|
|
119
120
|
main_violations = (warnings + errors + messages + markdowns).reject(&:inline?)
|
@@ -154,11 +155,10 @@ module Danger
|
|
154
155
|
danger_id: danger_id,
|
155
156
|
template: "github")
|
156
157
|
|
157
|
-
if
|
158
|
+
if should_create_new_comment
|
158
159
|
comment_result = client.add_comment(ci_source.repo_slug, ci_source.pull_request_id, body)
|
159
160
|
else
|
160
|
-
|
161
|
-
comment_result = client.update_comment(ci_source.repo_slug, original_id, body)
|
161
|
+
comment_result = client.update_comment(ci_source.repo_slug, last_comment.id, body)
|
162
162
|
end
|
163
163
|
end
|
164
164
|
|
@@ -199,6 +199,7 @@ module Danger
|
|
199
199
|
end
|
200
200
|
else
|
201
201
|
puts message
|
202
|
+
puts "\nDanger does not have write access to the PR to set a PR status.".yellow
|
202
203
|
end
|
203
204
|
end
|
204
205
|
end
|
@@ -12,10 +12,10 @@ module Danger
|
|
12
12
|
|
13
13
|
ensure_commitish_exists!(from)
|
14
14
|
ensure_commitish_exists!(to)
|
15
|
-
merge_base = repo.merge_base(from, to)
|
16
15
|
|
17
|
-
|
18
|
-
|
16
|
+
merge_base = find_merge_base(repo, from, to)
|
17
|
+
|
18
|
+
self.diff = repo.diff(merge_base, to)
|
19
19
|
self.log = repo.log.between(from, to)
|
20
20
|
end
|
21
21
|
|
@@ -29,7 +29,7 @@ module Danger
|
|
29
29
|
end
|
30
30
|
|
31
31
|
def head_commit
|
32
|
-
exec
|
32
|
+
exec("rev-parse HEAD")
|
33
33
|
end
|
34
34
|
|
35
35
|
def origins
|
@@ -37,46 +37,60 @@ module Danger
|
|
37
37
|
end
|
38
38
|
|
39
39
|
def ensure_commitish_exists!(commitish)
|
40
|
-
|
40
|
+
git_shallow_fetch if commit_not_exists?(commitish)
|
41
41
|
|
42
|
-
if
|
42
|
+
if commit_not_exists?(commitish)
|
43
43
|
raise_if_we_cannot_find_the_commit(commitish)
|
44
44
|
end
|
45
45
|
end
|
46
46
|
|
47
47
|
private
|
48
48
|
|
49
|
+
def git_shallow_fetch
|
50
|
+
exec("fetch --unshallow")
|
51
|
+
end
|
52
|
+
|
49
53
|
def default_env
|
50
54
|
{ "LANG" => "en_US.UTF-8" }
|
51
55
|
end
|
52
56
|
|
53
|
-
def raise_if_we_cannot_find_the_commit(
|
54
|
-
raise "Commit #{
|
57
|
+
def raise_if_we_cannot_find_the_commit(commitish)
|
58
|
+
raise "Commit #{commitish[0..7]} doesn't exist. Are you running `danger local/pr` against the correct repository? Also this usually happens when you rebase/reset and force-pushed."
|
55
59
|
end
|
56
|
-
end
|
57
|
-
end
|
58
60
|
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
#
|
63
|
-
# for which the fix comes from an unmerged PR from 2012
|
64
|
-
# https://github.com/schacon/ruby-git/pull/43
|
61
|
+
def commit_exists?(sha1)
|
62
|
+
!commit_not_exists?(sha1)
|
63
|
+
end
|
65
64
|
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
65
|
+
def commit_not_exists?(sha1)
|
66
|
+
exec("rev-parse --quiet --verify #{sha1}^{commit}").empty?
|
67
|
+
end
|
68
|
+
|
69
|
+
def find_merge_base(repo, from, to)
|
70
|
+
possible_merge_base = possible_merge_base(repo, from, to)
|
71
|
+
|
72
|
+
unless possible_merge_base
|
73
|
+
git_shallow_fetch
|
74
|
+
possible_merge_base = possible_merge_base(repo, from, to)
|
75
|
+
end
|
76
|
+
|
77
|
+
raise "Cannot find a merge base between #{from} and #{to}." unless possible_merge_base
|
78
|
+
|
79
|
+
possible_merge_base
|
80
|
+
end
|
81
|
+
|
82
|
+
def possible_merge_base(repo, from, to)
|
83
|
+
[repo.merge_base(from, to)].find { |base| commit_exists?(base) }
|
70
84
|
end
|
71
85
|
end
|
86
|
+
end
|
72
87
|
|
73
|
-
|
88
|
+
module Git
|
89
|
+
class Base
|
90
|
+
# Use git-merge-base https://git-scm.com/docs/git-merge-base to
|
91
|
+
# find as good common ancestors as possible for a merge
|
74
92
|
def merge_base(commit1, commit2, *other_commits)
|
75
|
-
|
76
|
-
arr_opts << commit1
|
77
|
-
arr_opts << commit2
|
78
|
-
arr_opts += other_commits
|
79
|
-
command("merge-base", arr_opts)
|
93
|
+
Open3.popen2("git", "merge-base", "--all", commit1, commit2, *other_commits) { |_stdin, stdout, _wait_thr| stdout.read.rstrip }
|
80
94
|
end
|
81
95
|
end
|
82
96
|
end
|
data/lib/danger/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: danger
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.5.
|
4
|
+
version: 3.5.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Orta Therox
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2016-10-
|
12
|
+
date: 2016-10-14 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: claide
|
@@ -269,14 +269,14 @@ dependencies:
|
|
269
269
|
requirements:
|
270
270
|
- - "~>"
|
271
271
|
- !ruby/object:Gem::Version
|
272
|
-
version: '0.
|
272
|
+
version: '0.44'
|
273
273
|
type: :development
|
274
274
|
prerelease: false
|
275
275
|
version_requirements: !ruby/object:Gem::Requirement
|
276
276
|
requirements:
|
277
277
|
- - "~>"
|
278
278
|
- !ruby/object:Gem::Version
|
279
|
-
version: '0.
|
279
|
+
version: '0.44'
|
280
280
|
- !ruby/object:Gem::Dependency
|
281
281
|
name: yard
|
282
282
|
requirement: !ruby/object:Gem::Requirement
|