danger 3.5.4 → 3.5.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
|