danger 3.5.5 → 3.6.0
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 +4 -4
- data/README.md +2 -0
- data/lib/danger/ci_source/jenkins.rb +32 -1
- data/lib/danger/danger_core/plugins/dangerfile_messaging_plugin.rb +1 -1
- data/lib/danger/request_sources/github.rb +5 -5
- data/lib/danger/request_sources/gitlab.rb +9 -7
- data/lib/danger/request_sources/support/get_ignored_violation.rb +17 -0
- data/lib/danger/version.rb +1 -1
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 829cfd070afd91b790b2aac00e62a09d0e8e169e
|
4
|
+
data.tar.gz: 5d52205da94c5a538fb1f148be5719733864c76a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8b540ce368e451e7287f5fa711281c1426c0f1118c9b8b753244425d7e9626251f16e50cc4bfce19dc42dab9ded3b33cf6bde007b872cd8dc52045593ab0efdb
|
7
|
+
data.tar.gz: ee493e7e72148446b71082a52fef7a23efee22f0ec3bc92bbb6c9e3005b5d7fffaea04abf51eba94b6e4bcfcc4f564ea52f82358d7b862a7322dc17a6adba8cc
|
data/README.md
CHANGED
@@ -45,6 +45,8 @@ We keep all of the end-user documentation at [http://danger.systems](http://dang
|
|
45
45
|
|
46
46
|
Some quick links: [Guides Index](http://danger.systems/guides.html), [DSL Reference](http://danger.systems/reference.html), [Getting Started](http://danger.systems/guides/getting_started.html) and [What does Danger Do?](http://danger.systems/guides/what_does_danger_do.html).
|
47
47
|
|
48
|
+
Sidenote: There is a [pure JS version](https://github.com/danger/danger-js) in the works, it's at the point where it can fail your build but that's about it for now, would love help there if it interests you.
|
49
|
+
|
48
50
|
## I'm here to help out!
|
49
51
|
|
50
52
|
Brilliant. So, let's get you set up.
|
@@ -17,6 +17,12 @@ module Danger
|
|
17
17
|
#
|
18
18
|
# With that set up, you can edit your job to add `bundle exec danger` at the build action.
|
19
19
|
#
|
20
|
+
# ##### Pipeline
|
21
|
+
# If your're using [pipelines](https://jenkins.io/solutions/pipeline/) you should be using the [GitHub branch source plugin](https://wiki.jenkins-ci.org/display/JENKINS/GitHub+Branch+Source+Plugin)
|
22
|
+
# for easy setup and handling of PRs.
|
23
|
+
#
|
24
|
+
# After you've set up the plugin, add a `sh 'bundle exec danger'` line in your pipeline script and make sure that build PRs is enabled.
|
25
|
+
#
|
20
26
|
# #### GitLab
|
21
27
|
# You will want to be using the [GitLab Plugin](https://github.com/jenkinsci/gitlab-plugin)
|
22
28
|
# in order to ensure that you have the build environment set up for MR integration.
|
@@ -53,7 +59,7 @@ module Danger
|
|
53
59
|
end
|
54
60
|
|
55
61
|
def initialize(env)
|
56
|
-
self.repo_url =
|
62
|
+
self.repo_url = self.class.repo_url(env)
|
57
63
|
self.pull_request_id = self.class.pull_request_id(env)
|
58
64
|
|
59
65
|
repo_matches = self.repo_url.match(%r{([\/:])([^\/]+\/[^\/.]+)(?:.git)?$})
|
@@ -63,9 +69,34 @@ module Danger
|
|
63
69
|
def self.pull_request_id(env)
|
64
70
|
if env["ghprbPullId"]
|
65
71
|
env["ghprbPullId"]
|
72
|
+
elsif env["CHANGE_ID"]
|
73
|
+
env["CHANGE_ID"]
|
66
74
|
else
|
67
75
|
env["gitlabMergeRequestId"]
|
68
76
|
end
|
69
77
|
end
|
78
|
+
|
79
|
+
def self.repo_url(env)
|
80
|
+
if env["GIT_URL_1"]
|
81
|
+
env["GIT_URL_1"]
|
82
|
+
elsif env["CHANGE_URL"]
|
83
|
+
change_url = env["CHANGE_URL"]
|
84
|
+
case change_url
|
85
|
+
when %r{\/pull\/} # GitHub
|
86
|
+
matches = change_url.match(%r{(.+)\/pull\/[0-9]+})
|
87
|
+
matches[1] unless matches.nil?
|
88
|
+
when %r{\/merge_requests\/} # GitLab
|
89
|
+
matches = change_url.match(%r{(.+)\/merge_requests\/[0-9]+})
|
90
|
+
matches[1] unless matches.nil?
|
91
|
+
when %r{\/pull-requests\/} # Bitbucket
|
92
|
+
matches = change_url.match(%r{(.+)\/pull-requests\/[0-9]+})
|
93
|
+
matches[1] unless matches.nil?
|
94
|
+
else
|
95
|
+
change_url
|
96
|
+
end
|
97
|
+
else
|
98
|
+
env["GIT_URL"]
|
99
|
+
end
|
100
|
+
end
|
70
101
|
end
|
71
102
|
end
|
@@ -15,7 +15,7 @@ module Danger
|
|
15
15
|
# By default, using `fail` would fail the corresponding build. Either via an API call, or
|
16
16
|
# via the return value for the danger command.
|
17
17
|
#
|
18
|
-
# It is possible to have Danger ignore specific warnings or errors by writing `Danger: Ignore "[warning/error text]`.
|
18
|
+
# It is possible to have Danger ignore specific warnings or errors by writing `Danger: Ignore "[warning/error text]"`.
|
19
19
|
#
|
20
20
|
# Sidenote: Messaging is the only plugin which adds functions to the root of the Dangerfile.
|
21
21
|
#
|
@@ -3,6 +3,8 @@ require "octokit"
|
|
3
3
|
require "danger/helpers/comments_helper"
|
4
4
|
require "danger/helpers/comment"
|
5
5
|
|
6
|
+
require "danger/request_sources/support/get_ignored_violation"
|
7
|
+
|
6
8
|
module Danger
|
7
9
|
module RequestSources
|
8
10
|
class GitHub < RequestSource
|
@@ -83,13 +85,11 @@ module Danger
|
|
83
85
|
end
|
84
86
|
|
85
87
|
fetch_issue_details(self.pr_json)
|
86
|
-
self.ignored_violations = ignored_violations_from_pr
|
88
|
+
self.ignored_violations = ignored_violations_from_pr
|
87
89
|
end
|
88
90
|
|
89
|
-
def ignored_violations_from_pr
|
90
|
-
|
91
|
-
return [] if pr_body.nil?
|
92
|
-
pr_body.chomp.scan(/>\s*danger\s*:\s*ignore\s*"(.*)"/i).flatten
|
91
|
+
def ignored_violations_from_pr
|
92
|
+
GetIgnoredViolation.new(self.pr_json["body"]).call
|
93
93
|
end
|
94
94
|
|
95
95
|
def fetch_issue_details(pr_json)
|
@@ -3,6 +3,8 @@ require "gitlab"
|
|
3
3
|
require "danger/helpers/comments_helper"
|
4
4
|
require "danger/helpers/comment"
|
5
5
|
|
6
|
+
require "danger/request_sources/support/get_ignored_violation"
|
7
|
+
|
6
8
|
module Danger
|
7
9
|
module RequestSources
|
8
10
|
class GitLab < RequestSource
|
@@ -88,19 +90,19 @@ module Danger
|
|
88
90
|
def fetch_details
|
89
91
|
self.mr_json = client.merge_request(escaped_ci_slug, self.ci_source.pull_request_id)
|
90
92
|
self.commits_json = client.merge_request_commits(escaped_ci_slug, self.ci_source.pull_request_id)
|
91
|
-
self.ignored_violations = ignored_violations_from_pr
|
93
|
+
self.ignored_violations = ignored_violations_from_pr
|
92
94
|
end
|
93
95
|
|
94
|
-
def ignored_violations_from_pr
|
95
|
-
|
96
|
-
return [] if pr_body.nil?
|
97
|
-
pr_body.chomp.scan(/>\s*danger\s*:\s*ignore\s*"(.*)"/i).flatten
|
96
|
+
def ignored_violations_from_pr
|
97
|
+
GetIgnoredViolation.new(self.mr_json.description).call
|
98
98
|
end
|
99
99
|
|
100
|
-
def update_pull_request!(warnings: [], errors: [], messages: [], markdowns: [], danger_id: "danger")
|
100
|
+
def update_pull_request!(warnings: [], errors: [], messages: [], markdowns: [], danger_id: "danger", new_comment: false)
|
101
101
|
editable_comments = mr_comments.select { |comment| comment.generated_by_danger?(danger_id) }
|
102
102
|
|
103
|
-
|
103
|
+
should_create_new_comment = new_comment || editable_comments.empty?
|
104
|
+
|
105
|
+
if should_create_new_comment
|
104
106
|
previous_violations = {}
|
105
107
|
else
|
106
108
|
comment = editable_comments.first.body
|
@@ -0,0 +1,17 @@
|
|
1
|
+
class GetIgnoredViolation
|
2
|
+
IGNORE_REGEXP = />*\s*danger\s*:\s*ignore\s*"(?<error>[^"]*)"/i
|
3
|
+
|
4
|
+
def initialize(body)
|
5
|
+
@body = body
|
6
|
+
end
|
7
|
+
|
8
|
+
def call
|
9
|
+
return [] unless body
|
10
|
+
|
11
|
+
body.chomp.scan(IGNORE_REGEXP).flatten
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
attr_reader :body
|
17
|
+
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.
|
4
|
+
version: 3.6.0
|
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-26 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: claide
|
@@ -447,6 +447,7 @@ files:
|
|
447
447
|
- lib/danger/request_sources/github.rb
|
448
448
|
- lib/danger/request_sources/gitlab.rb
|
449
449
|
- lib/danger/request_sources/request_source.rb
|
450
|
+
- lib/danger/request_sources/support/get_ignored_violation.rb
|
450
451
|
- lib/danger/scm_source/git_repo.rb
|
451
452
|
- lib/danger/version.rb
|
452
453
|
homepage: https://github.com/danger/danger
|
@@ -469,7 +470,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
469
470
|
version: '0'
|
470
471
|
requirements: []
|
471
472
|
rubyforge_project:
|
472
|
-
rubygems_version: 2.
|
473
|
+
rubygems_version: 2.2.2
|
473
474
|
signing_key:
|
474
475
|
specification_version: 4
|
475
476
|
summary: Like Unit Tests, but for your Team Culture.
|