danger 8.2.3 → 8.4.2
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/lib/danger/ci_source/azure_pipelines.rb +5 -1
- data/lib/danger/ci_source/buildkite.rb +1 -1
- data/lib/danger/ci_source/codemagic.rb +58 -0
- data/lib/danger/ci_source/jenkins.rb +1 -1
- data/lib/danger/ci_source/support/pull_request_finder.rb +10 -3
- data/lib/danger/ci_source/xcode_cloud.rb +38 -0
- data/lib/danger/comment_generators/gitlab_inline.md.erb +2 -7
- data/lib/danger/danger_core/plugins/dangerfile_github_plugin.rb +8 -0
- data/lib/danger/danger_core/plugins/dangerfile_gitlab_plugin.rb +16 -0
- data/lib/danger/helpers/comments_helper.rb +1 -1
- data/lib/danger/helpers/emoji_mapper.rb +1 -1
- data/lib/danger/request_sources/bitbucket_server.rb +20 -15
- data/lib/danger/request_sources/bitbucket_server_api.rb +15 -6
- data/lib/danger/request_sources/github/github.rb +18 -5
- data/lib/danger/request_sources/gitlab.rb +10 -0
- data/lib/danger/version.rb +1 -1
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 423862c4ae06fbd90dbc52ae126b171c3af53da1867f6051db5e1e00cd1cb09e
|
4
|
+
data.tar.gz: 45d13ff59705d33a756f8a221ef597f8c29f534511a9cd310241d2730b118e59
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3a1e23473e3012edb47a6860ca50a4e0e12512ade5c2796b79720c71ba049c034060893505a5264df3ee36439ae702dffe1cc9472da4e6357d2cef7ba81e24b8
|
7
|
+
data.tar.gz: 4e186a0412277f4d3add84821f39529900c9faec5439ccd62329bc24e6a753c19feafe68208f9ff3b7fe8b12e64ba8b31379b7af5273f24dfa230ec804f12648
|
@@ -19,7 +19,11 @@ module Danger
|
|
19
19
|
#
|
20
20
|
class AzurePipelines < CI
|
21
21
|
def self.validates_as_ci?(env)
|
22
|
-
|
22
|
+
# AGENT_ID is being used by AppCenter as well, so checking here to make sure AppCenter CI doesn't get a false positive for AzurePipelines
|
23
|
+
# Anyone working with AzurePipelines could provide a better/truly unique env key to avoid checking for AppCenter
|
24
|
+
!Danger::Appcenter::validates_as_ci?(env) &&
|
25
|
+
env.key?("AGENT_ID") &&
|
26
|
+
env["BUILD_REPOSITORY_PROVIDER"] != "TfsGit"
|
23
27
|
end
|
24
28
|
|
25
29
|
def self.validates_as_pr?(env)
|
@@ -45,7 +45,7 @@ module Danger
|
|
45
45
|
end
|
46
46
|
|
47
47
|
def supported_request_sources
|
48
|
-
@supported_request_sources ||= [Danger::RequestSources::GitHub, Danger::RequestSources::GitLab]
|
48
|
+
@supported_request_sources ||= [Danger::RequestSources::GitHub, Danger::RequestSources::GitLab, Danger::RequestSources::BitbucketServer]
|
49
49
|
end
|
50
50
|
end
|
51
51
|
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
# https://docs.codemagic.io/building/environment-variables/
|
2
|
+
|
3
|
+
module Danger
|
4
|
+
# ### CI Setup
|
5
|
+
#
|
6
|
+
# Add a script step to your workflow:
|
7
|
+
#
|
8
|
+
# ```
|
9
|
+
# - name: Running Danger
|
10
|
+
# script: |
|
11
|
+
# bundle install
|
12
|
+
# bundle exec danger
|
13
|
+
# ```
|
14
|
+
#
|
15
|
+
# ### Token Setup
|
16
|
+
#
|
17
|
+
# Add the following environment variables to your workflow's environment configuration.
|
18
|
+
# https://docs.codemagic.io/getting-started/yaml/
|
19
|
+
#
|
20
|
+
# #### GitHub
|
21
|
+
# Add the `DANGER_GITHUB_API_TOKEN` to your build user's ENV.
|
22
|
+
#
|
23
|
+
# #### GitLab
|
24
|
+
# Add the `DANGER_GITLAB_API_TOKEN` to your build user's ENV.
|
25
|
+
#
|
26
|
+
# #### Bitbucket Cloud
|
27
|
+
# Add the `DANGER_BITBUCKETSERVER_USERNAME`, `DANGER_BITBUCKETSERVER_PASSWORD`
|
28
|
+
# to your build user's ENV.
|
29
|
+
#
|
30
|
+
# #### Bitbucket server
|
31
|
+
# Add the `DANGER_BITBUCKETSERVER_USERNAME`, `DANGER_BITBUCKETSERVER_PASSWORD`
|
32
|
+
# and `DANGER_BITBUCKETSERVER_HOST` to your build user's ENV.
|
33
|
+
#
|
34
|
+
class Codemagic < CI
|
35
|
+
def self.validates_as_ci?(env)
|
36
|
+
env.key? "FCI_PROJECT_ID"
|
37
|
+
end
|
38
|
+
|
39
|
+
def self.validates_as_pr?(env)
|
40
|
+
return !env["FCI_PULL_REQUEST_NUMBER"].to_s.empty?
|
41
|
+
end
|
42
|
+
|
43
|
+
def supported_request_sources
|
44
|
+
@supported_request_sources ||= [
|
45
|
+
Danger::RequestSources::GitHub,
|
46
|
+
Danger::RequestSources::GitLab,
|
47
|
+
Danger::RequestSources::BitbucketServer,
|
48
|
+
Danger::RequestSources::BitbucketCloud
|
49
|
+
]
|
50
|
+
end
|
51
|
+
|
52
|
+
def initialize(env)
|
53
|
+
self.pull_request_id = env["FCI_PULL_REQUEST_NUMBER"]
|
54
|
+
self.repo_slug = env["FCI_REPO_SLUG"]
|
55
|
+
self.repo_url = GitRepo.new.origins # Codemagic doesn't provide a repo url env variable for n
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
@@ -133,7 +133,7 @@ module Danger
|
|
133
133
|
matches = change_url.match(%r{(.+)\/pull\/[0-9]+})
|
134
134
|
matches[1] unless matches.nil?
|
135
135
|
when %r{\/merge_requests\/} # GitLab
|
136
|
-
matches = change_url.match(%r{(
|
136
|
+
matches = change_url.match(%r{(.+?)(\/-)?\/merge_requests\/[0-9]+})
|
137
137
|
matches[1] unless matches.nil?
|
138
138
|
when %r{\/pull-requests\/} # Bitbucket
|
139
139
|
matches = change_url.match(%r{(.+)\/pull-requests\/[0-9]+})
|
@@ -137,7 +137,7 @@ module Danger
|
|
137
137
|
|
138
138
|
def client
|
139
139
|
scm_provider = find_scm_provider(remote_url)
|
140
|
-
|
140
|
+
|
141
141
|
case scm_provider
|
142
142
|
when :bitbucket_cloud
|
143
143
|
require "danger/request_sources/bitbucket_cloud_api"
|
@@ -151,8 +151,15 @@ module Danger
|
|
151
151
|
|
152
152
|
when :github
|
153
153
|
require "octokit"
|
154
|
-
|
155
|
-
|
154
|
+
access_token = ENV["DANGER_GITHUB_API_TOKEN"]
|
155
|
+
bearer_token = ENV["DANGER_GITHUB_BEARER_TOKEN"]
|
156
|
+
if bearer_token && !bearer_token.empty?
|
157
|
+
Octokit::Client.new(bearer_token: bearer_token, api_endpoint: api_url)
|
158
|
+
elsif access_token && !access_token.empty?
|
159
|
+
Octokit::Client.new(access_token: access_token, api_endpoint: api_url)
|
160
|
+
else
|
161
|
+
raise "No API token given, please provide one using `DANGER_GITHUB_API_TOKEN` or `DANGER_GITHUB_BEARER_TOKEN`"
|
162
|
+
end
|
156
163
|
else
|
157
164
|
raise "SCM provider not supported: #{scm_provider}"
|
158
165
|
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
module Danger
|
2
|
+
# ### CI Setup
|
3
|
+
#
|
4
|
+
# In order to work with Xcode Cloud and Danger, you will need to add `bundle exec danger` to
|
5
|
+
# the `ci_scripts/ci_post_xcodebuild.sh` (Xcode Cloud's expected filename for a post-action build script).
|
6
|
+
# More details and documentation on Xcode Cloud configuration can be found [here](https://developer.apple.com/documentation/xcode/writing-custom-build-scripts).
|
7
|
+
#
|
8
|
+
# ### Token Setup
|
9
|
+
#
|
10
|
+
# You will need to add the `DANGER_GITHUB_API_TOKEN` to your build environment.
|
11
|
+
# If running on GitHub Enterprise, make sure you also set the expected values for
|
12
|
+
# both `DANGER_GITHUB_API_HOST` and `DANGER_GITHUB_HOST`.
|
13
|
+
#
|
14
|
+
class XcodeCloud < CI
|
15
|
+
def self.validates_as_ci?(env)
|
16
|
+
env.key? "CI_XCODEBUILD_ACTION"
|
17
|
+
end
|
18
|
+
|
19
|
+
def self.validates_as_pr?(env)
|
20
|
+
env.key? "CI_PULL_REQUEST_NUMBER"
|
21
|
+
end
|
22
|
+
|
23
|
+
def supported_request_sources
|
24
|
+
@supported_request_sources ||= [
|
25
|
+
Danger::RequestSources::GitHub,
|
26
|
+
Danger::RequestSources::GitLab,
|
27
|
+
Danger::RequestSources::BitbucketCloud,
|
28
|
+
Danger::RequestSources::BitbucketServer
|
29
|
+
]
|
30
|
+
end
|
31
|
+
|
32
|
+
def initialize(env)
|
33
|
+
self.repo_slug = env["CI_PULL_REQUEST_SOURCE_REPO"]
|
34
|
+
self.pull_request_id = env["CI_PULL_REQUEST_NUMBER"]
|
35
|
+
self.repo_url = env["CI_PULL_REQUEST_HTML_URL"]
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -17,10 +17,5 @@
|
|
17
17
|
<%= current %>
|
18
18
|
<%# the previous line has to be aligned far to the left, otherwise markdown can break easily %>
|
19
19
|
<%- end -%>
|
20
|
-
<%#
|
21
|
-
|
22
|
-
<%- if @markdowns.count > 0 -%>
|
23
|
-
<p align="right" data-meta="generated_by_<%= @danger_id %>">
|
24
|
-
Generated by :no_entry_sign: <a href="http://danger.systems/">Danger</a>
|
25
|
-
</p>
|
26
|
-
<%- end -%>
|
20
|
+
<%# Add the generated_by_ as a html coment to identify comments from danger. %>
|
21
|
+
<!-- "generated_by_<%= @danger_id %>" -->
|
@@ -143,6 +143,14 @@ module Danger
|
|
143
143
|
@github.issue_json["labels"].map { |l| l[:name] }
|
144
144
|
end
|
145
145
|
|
146
|
+
# @!group PR Metadata
|
147
|
+
# Whether the PR is a Draft.
|
148
|
+
# @return [Boolean]
|
149
|
+
#
|
150
|
+
def pr_draft?
|
151
|
+
pr_json["mergeable_state"] == "draft"
|
152
|
+
end
|
153
|
+
|
146
154
|
# @!group PR Commit Metadata
|
147
155
|
# The branch to which the PR is going to be merged into.
|
148
156
|
# @return [String]
|
@@ -131,6 +131,22 @@ module Danger
|
|
131
131
|
@gitlab.mr_diff
|
132
132
|
end
|
133
133
|
|
134
|
+
# @!group MR Changes
|
135
|
+
# The array of changes
|
136
|
+
# @return [Array<Gitlab::ObjectifiedHash>]
|
137
|
+
#
|
138
|
+
def mr_changes
|
139
|
+
@gitlab.mr_changes.changes
|
140
|
+
end
|
141
|
+
|
142
|
+
# @!group MR Closes issues
|
143
|
+
# The array of issues that this MR closes
|
144
|
+
# @return [Array<Gitlab::ObjectifiedHash>]
|
145
|
+
#
|
146
|
+
def mr_closes_issues
|
147
|
+
@gitlab.mr_closes_issues
|
148
|
+
end
|
149
|
+
|
134
150
|
# @!group MR Commit Metadata
|
135
151
|
# The branch to which the MR is going to be merged into
|
136
152
|
# @deprecated Please use {#branch_for_base} instead
|
@@ -148,7 +148,7 @@ module Danger
|
|
148
148
|
def generate_description(warnings: nil, errors: nil, template: "github")
|
149
149
|
emoji_mapper = EmojiMapper.new(template)
|
150
150
|
if errors.empty? && warnings.empty?
|
151
|
-
return "All green. #{random_compliment}"
|
151
|
+
return ENV['DANGER_SUCCESS_MESSAGE'] || "All green. #{random_compliment}"
|
152
152
|
else
|
153
153
|
message = "#{emoji_mapper.map('warning')} "
|
154
154
|
message += "#{'Error'.danger_pluralize(errors.count)}. " unless errors.empty?
|
@@ -20,10 +20,12 @@ module Danger
|
|
20
20
|
end
|
21
21
|
|
22
22
|
def self.optional_env_vars
|
23
|
-
[
|
24
|
-
|
25
|
-
|
26
|
-
|
23
|
+
[
|
24
|
+
"DANGER_BITBUCKETSERVER_CODE_INSIGHTS_REPORT_KEY",
|
25
|
+
"DANGER_BITBUCKETSERVER_CODE_INSIGHTS_REPORT_TITLE",
|
26
|
+
"DANGER_BITBUCKETSERVER_CODE_INSIGHTS_REPORT_DESCRIPTION",
|
27
|
+
"DANGER_BITBUCKETSERVER_CODE_INSIGHTS_REPORT_LOGO_URL",
|
28
|
+
"DANGER_BITBUCKETSERVER_VERIFY_SSL"
|
27
29
|
]
|
28
30
|
end
|
29
31
|
|
@@ -110,17 +112,20 @@ module Danger
|
|
110
112
|
markdowns = main_violations[:markdowns] || []
|
111
113
|
end
|
112
114
|
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
115
|
+
has_comments = (warnings.count > 0 || errors.count > 0 || messages.count > 0 || markdowns.count > 0)
|
116
|
+
if has_comments
|
117
|
+
comment = generate_description(warnings: warnings,
|
118
|
+
errors: errors)
|
119
|
+
comment += "\n\n"
|
120
|
+
comment += generate_comment(warnings: warnings,
|
121
|
+
errors: errors,
|
122
|
+
messages: messages,
|
123
|
+
markdowns: markdowns,
|
124
|
+
previous_violations: {},
|
125
|
+
danger_id: danger_id,
|
126
|
+
template: "bitbucket_server")
|
127
|
+
@api.post_comment(comment)
|
128
|
+
end
|
124
129
|
end
|
125
130
|
|
126
131
|
def delete_old_comments(danger_id: "danger")
|
@@ -1,16 +1,18 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
|
3
|
+
require "openssl"
|
3
4
|
require "danger/helpers/comments_helper"
|
4
5
|
|
5
6
|
module Danger
|
6
7
|
module RequestSources
|
7
8
|
class BitbucketServerAPI
|
8
|
-
attr_accessor :host, :pr_api_endpoint, :key, :project
|
9
|
+
attr_accessor :host, :verify_ssl, :pr_api_endpoint, :key, :project
|
9
10
|
|
10
11
|
def initialize(project, slug, pull_request_id, environment)
|
11
12
|
@username = environment["DANGER_BITBUCKETSERVER_USERNAME"]
|
12
13
|
@password = environment["DANGER_BITBUCKETSERVER_PASSWORD"]
|
13
14
|
self.host = environment["DANGER_BITBUCKETSERVER_HOST"]
|
15
|
+
self.verify_ssl = environment["DANGER_BITBUCKETSERVER_VERIFY_SSL"] == "false" ? false : true
|
14
16
|
if self.host && !(self.host.include? "http://") && !(self.host.include? "https://")
|
15
17
|
self.host = "https://" + self.host
|
16
18
|
end
|
@@ -57,7 +59,7 @@ module Danger
|
|
57
59
|
body = { text: text }.to_json
|
58
60
|
post(uri, body)
|
59
61
|
end
|
60
|
-
|
62
|
+
|
61
63
|
def update_pr_build_status(status, changeset, build_job_link, description)
|
62
64
|
uri = URI("#{self.host}/rest/build-status/1.0/commits/#{changeset}")
|
63
65
|
body = build_status_body(status, build_job_link, description)
|
@@ -73,7 +75,7 @@ module Danger
|
|
73
75
|
def fetch_json(uri)
|
74
76
|
req = Net::HTTP::Get.new(uri.request_uri, { "Content-Type" => "application/json" })
|
75
77
|
req.basic_auth @username, @password
|
76
|
-
res =
|
78
|
+
res = http(uri).start do |http|
|
77
79
|
http.request(req)
|
78
80
|
end
|
79
81
|
JSON.parse(res.body, symbolize_names: true)
|
@@ -84,7 +86,7 @@ module Danger
|
|
84
86
|
req.basic_auth @username, @password
|
85
87
|
req.body = body
|
86
88
|
|
87
|
-
res =
|
89
|
+
res = http(uri).start do |http|
|
88
90
|
http.request(req)
|
89
91
|
end
|
90
92
|
|
@@ -99,11 +101,18 @@ module Danger
|
|
99
101
|
def delete(uri)
|
100
102
|
req = Net::HTTP::Delete.new(uri.request_uri, { "Content-Type" => "application/json" })
|
101
103
|
req.basic_auth @username, @password
|
102
|
-
|
104
|
+
http(uri).start do |http|
|
103
105
|
http.request(req)
|
104
106
|
end
|
105
107
|
end
|
106
|
-
|
108
|
+
|
109
|
+
def http(uri)
|
110
|
+
http = Net::HTTP.new(uri.hostname, uri.port)
|
111
|
+
http.use_ssl = use_ssl
|
112
|
+
http.verify_mode = verify_ssl ? OpenSSL::SSL::VERIFY_PEER : OpenSSL::SSL::VERIFY_NONE
|
113
|
+
http
|
114
|
+
end
|
115
|
+
|
107
116
|
def build_status_body(status, build_job_link, description)
|
108
117
|
body = Hash.new
|
109
118
|
body["state"] = status
|
@@ -17,7 +17,7 @@ module Danger
|
|
17
17
|
attr_accessor :pr_json, :issue_json, :support_tokenless_auth, :dismiss_out_of_range_messages
|
18
18
|
|
19
19
|
def self.env_vars
|
20
|
-
["DANGER_GITHUB_API_TOKEN"]
|
20
|
+
["DANGER_GITHUB_API_TOKEN", "DANGER_GITHUB_BEARER_TOKEN"]
|
21
21
|
end
|
22
22
|
|
23
23
|
def self.optional_env_vars
|
@@ -30,7 +30,8 @@ module Danger
|
|
30
30
|
self.support_tokenless_auth = false
|
31
31
|
self.dismiss_out_of_range_messages = false
|
32
32
|
|
33
|
-
@
|
33
|
+
@access_token = @environment["DANGER_GITHUB_API_TOKEN"]
|
34
|
+
@bearer_token = @environment["DANGER_GITHUB_BEARER_TOKEN"]
|
34
35
|
end
|
35
36
|
|
36
37
|
def get_pr_from_branch(repo_name, branch_name, owner)
|
@@ -45,7 +46,7 @@ module Danger
|
|
45
46
|
end
|
46
47
|
|
47
48
|
def validates_as_api_source?
|
48
|
-
|
49
|
+
valid_bearer_token? || valid_access_token? || self.environment["DANGER_USE_LOCAL_GIT"]
|
49
50
|
end
|
50
51
|
|
51
52
|
def scm
|
@@ -72,12 +73,16 @@ module Danger
|
|
72
73
|
end
|
73
74
|
|
74
75
|
def client
|
75
|
-
raise "No API token given, please provide one using `DANGER_GITHUB_API_TOKEN`" if
|
76
|
+
raise "No API token given, please provide one using `DANGER_GITHUB_API_TOKEN` or `DANGER_GITHUB_BEARER_TOKEN`" if !valid_access_token? && !valid_bearer_token? && !support_tokenless_auth
|
76
77
|
@client ||= begin
|
77
78
|
Octokit.configure do |config|
|
78
79
|
config.connection_options[:ssl] = { verify: verify_ssl }
|
79
80
|
end
|
80
|
-
|
81
|
+
if valid_bearer_token?
|
82
|
+
Octokit::Client.new(bearer_token: @bearer_token, auto_paginate: true, api_endpoint: api_url)
|
83
|
+
elsif valid_access_token?
|
84
|
+
Octokit::Client.new(access_token: @access_token, auto_paginate: true, api_endpoint: api_url)
|
85
|
+
end
|
81
86
|
end
|
82
87
|
end
|
83
88
|
|
@@ -493,6 +498,14 @@ module Danger
|
|
493
498
|
|
494
499
|
private
|
495
500
|
|
501
|
+
def valid_access_token?
|
502
|
+
@access_token && !@access_token.empty?
|
503
|
+
end
|
504
|
+
|
505
|
+
def valid_bearer_token?
|
506
|
+
@bearer_token && !@bearer_token.empty?
|
507
|
+
end
|
508
|
+
|
496
509
|
def regular_violations_group(warnings: [], errors: [], messages: [], markdowns: [])
|
497
510
|
{
|
498
511
|
warnings: warnings.reject(&:inline?),
|
@@ -130,6 +130,12 @@ module Danger
|
|
130
130
|
end
|
131
131
|
end
|
132
132
|
|
133
|
+
def mr_closes_issues
|
134
|
+
@mr_closes_issues ||= begin
|
135
|
+
client.merge_request_closes_issues(ci_source.repo_slug, ci_source.pull_request_id)
|
136
|
+
end
|
137
|
+
end
|
138
|
+
|
133
139
|
def setup_danger_branches
|
134
140
|
# we can use a GitLab specific feature here:
|
135
141
|
base_branch = self.mr_json.source_branch
|
@@ -298,6 +304,10 @@ module Danger
|
|
298
304
|
end
|
299
305
|
end
|
300
306
|
|
307
|
+
def markdown_link_to_message(message, _)
|
308
|
+
"#{message.file}#L#{message.line}: "
|
309
|
+
end
|
310
|
+
|
301
311
|
# @return [String] The organisation name, is nil if it can't be detected
|
302
312
|
def organisation
|
303
313
|
nil # TODO: Implement this
|
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: 8.2
|
4
|
+
version: 8.4.2
|
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: 2021-
|
12
|
+
date: 2021-11-10 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: claide
|
@@ -219,6 +219,7 @@ files:
|
|
219
219
|
- lib/danger/ci_source/cirrus.rb
|
220
220
|
- lib/danger/ci_source/code_build.rb
|
221
221
|
- lib/danger/ci_source/codefresh.rb
|
222
|
+
- lib/danger/ci_source/codemagic.rb
|
222
223
|
- lib/danger/ci_source/codeship.rb
|
223
224
|
- lib/danger/ci_source/concourse.rb
|
224
225
|
- lib/danger/ci_source/dotci.rb
|
@@ -243,6 +244,7 @@ files:
|
|
243
244
|
- lib/danger/ci_source/teamcity.rb
|
244
245
|
- lib/danger/ci_source/travis.rb
|
245
246
|
- lib/danger/ci_source/vsts.rb
|
247
|
+
- lib/danger/ci_source/xcode_cloud.rb
|
246
248
|
- lib/danger/ci_source/xcode_server.rb
|
247
249
|
- lib/danger/clients/rubygems_client.rb
|
248
250
|
- lib/danger/commands/dangerfile/gem.rb
|