danger 9.5.3 → 9.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/bin/danger +2 -0
- data/lib/danger/ci_source/appcenter.rb +2 -0
- data/lib/danger/ci_source/appcircle.rb +2 -0
- data/lib/danger/ci_source/appveyor.rb +2 -0
- data/lib/danger/ci_source/azure_pipelines.rb +2 -0
- data/lib/danger/ci_source/bamboo.rb +2 -0
- data/lib/danger/ci_source/bitbucket_pipelines.rb +2 -0
- data/lib/danger/ci_source/bitrise.rb +2 -1
- data/lib/danger/ci_source/buddybuild.rb +2 -0
- data/lib/danger/ci_source/buildkite.rb +2 -0
- data/lib/danger/ci_source/ci_source.rb +2 -0
- data/lib/danger/ci_source/circle.rb +3 -1
- data/lib/danger/ci_source/circle_api.rb +5 -3
- data/lib/danger/ci_source/cirrus.rb +2 -0
- data/lib/danger/ci_source/code_build.rb +2 -0
- data/lib/danger/ci_source/codefresh.rb +3 -1
- data/lib/danger/ci_source/codemagic.rb +2 -0
- data/lib/danger/ci_source/codeship.rb +2 -0
- data/lib/danger/ci_source/concourse.rb +2 -0
- data/lib/danger/ci_source/dotci.rb +2 -0
- data/lib/danger/ci_source/drone.rb +2 -0
- data/lib/danger/ci_source/github_actions.rb +2 -0
- data/lib/danger/ci_source/gitlab_ci.rb +2 -0
- data/lib/danger/ci_source/jenkins.rb +2 -0
- data/lib/danger/ci_source/local_git_repo.rb +9 -5
- data/lib/danger/ci_source/screwdriver.rb +2 -0
- data/lib/danger/ci_source/semaphore.rb +2 -0
- data/lib/danger/ci_source/support/commits.rb +3 -1
- data/lib/danger/ci_source/support/find_repo_info_from_logs.rb +3 -1
- data/lib/danger/ci_source/support/find_repo_info_from_url.rb +5 -1
- data/lib/danger/ci_source/support/local_pull_request.rb +3 -1
- data/lib/danger/ci_source/support/no_pull_request.rb +2 -0
- data/lib/danger/ci_source/support/no_repo_info.rb +2 -0
- data/lib/danger/ci_source/support/pull_request_finder.rb +67 -28
- data/lib/danger/ci_source/support/remote_pull_request.rb +2 -0
- data/lib/danger/ci_source/support/repo_info.rb +2 -0
- data/lib/danger/ci_source/surf.rb +2 -0
- data/lib/danger/ci_source/teamcity.rb +14 -1
- data/lib/danger/ci_source/travis.rb +2 -0
- data/lib/danger/ci_source/xcode_cloud.rb +2 -0
- data/lib/danger/ci_source/xcode_server.rb +2 -0
- data/lib/danger/clients/rubygems_client.rb +4 -2
- data/lib/danger/commands/dangerfile/gem.rb +3 -1
- data/lib/danger/commands/dangerfile/init.rb +3 -1
- data/lib/danger/commands/dry_run.rb +2 -0
- data/lib/danger/commands/init.rb +22 -20
- data/lib/danger/commands/init_helpers/interviewer.rb +6 -4
- data/lib/danger/commands/local.rb +2 -0
- data/lib/danger/commands/local_helpers/http_cache.rb +2 -0
- data/lib/danger/commands/local_helpers/local_setup.rb +4 -5
- data/lib/danger/commands/local_helpers/pry_setup.rb +3 -1
- data/lib/danger/commands/mr.rb +91 -0
- data/lib/danger/commands/plugins/plugin_json.rb +2 -0
- data/lib/danger/commands/plugins/plugin_lint.rb +2 -0
- data/lib/danger/commands/plugins/plugin_readme.rb +2 -0
- data/lib/danger/commands/pr.rb +4 -2
- data/lib/danger/commands/runner.rb +3 -0
- data/lib/danger/commands/staging.rb +2 -0
- data/lib/danger/commands/systems.rb +3 -1
- data/lib/danger/core_ext/file_list.rb +2 -0
- data/lib/danger/core_ext/string.rb +6 -4
- data/lib/danger/danger_core/dangerfile.rb +7 -4
- data/lib/danger/danger_core/dangerfile_dsl.rb +2 -0
- data/lib/danger/danger_core/dangerfile_generator.rb +2 -0
- data/lib/danger/danger_core/environment_manager.rb +13 -10
- data/lib/danger/danger_core/executor.rb +3 -1
- data/lib/danger/danger_core/messages/base.rb +7 -2
- data/lib/danger/danger_core/messages/markdown.rb +36 -6
- data/lib/danger/danger_core/plugins/dangerfile_bitbucket_cloud_plugin.rb +2 -0
- data/lib/danger/danger_core/plugins/dangerfile_bitbucket_server_plugin.rb +4 -2
- data/lib/danger/danger_core/plugins/dangerfile_danger_plugin.rb +2 -0
- data/lib/danger/danger_core/plugins/dangerfile_git_plugin.rb +2 -0
- data/lib/danger/danger_core/plugins/dangerfile_github_plugin.rb +3 -1
- data/lib/danger/danger_core/plugins/dangerfile_gitlab_plugin.rb +3 -1
- data/lib/danger/danger_core/plugins/dangerfile_local_only_plugin.rb +2 -0
- data/lib/danger/danger_core/plugins/dangerfile_messaging_plugin.rb +19 -1
- data/lib/danger/danger_core/plugins/dangerfile_vsts_plugin.rb +4 -2
- data/lib/danger/danger_core/standard_error.rb +5 -3
- data/lib/danger/helpers/array_subclass.rb +2 -0
- data/lib/danger/helpers/comment.rb +2 -0
- data/lib/danger/helpers/comments_helper.rb +2 -0
- data/lib/danger/helpers/comments_parsing_helper.rb +6 -3
- data/lib/danger/helpers/emoji_mapper.rb +5 -3
- data/lib/danger/helpers/find_max_num_violations.rb +2 -0
- data/lib/danger/helpers/message_groups_array_helper.rb +2 -0
- data/lib/danger/plugin_support/gems_resolver.rb +2 -0
- data/lib/danger/plugin_support/plugin.rb +2 -0
- data/lib/danger/plugin_support/plugin_file_resolver.rb +3 -1
- data/lib/danger/plugin_support/plugin_linter.rb +8 -6
- data/lib/danger/request_sources/bitbucket_cloud.rb +2 -0
- data/lib/danger/request_sources/bitbucket_cloud_api.rb +2 -2
- data/lib/danger/request_sources/bitbucket_server.rb +3 -1
- data/lib/danger/request_sources/bitbucket_server_api.rb +2 -2
- data/lib/danger/request_sources/code_insights_api.rb +2 -2
- data/lib/danger/request_sources/github/github.rb +71 -11
- data/lib/danger/request_sources/github/github_review.rb +9 -7
- data/lib/danger/request_sources/github/github_review_resolver.rb +2 -0
- data/lib/danger/request_sources/github/github_review_unsupported.rb +2 -0
- data/lib/danger/request_sources/gitlab.rb +17 -18
- data/lib/danger/request_sources/local_only.rb +2 -0
- data/lib/danger/request_sources/request_source.rb +3 -3
- data/lib/danger/request_sources/support/get_ignored_violation.rb +2 -0
- data/lib/danger/request_sources/vsts.rb +2 -1
- data/lib/danger/request_sources/vsts_api.rb +2 -2
- data/lib/danger/scm_source/git_repo.rb +2 -0
- data/lib/danger/version.rb +4 -2
- data/lib/danger.rb +4 -2
- metadata +4 -9
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 3c20de89d82a1a32f926300a84b0a1313a7d3c1d5c35c91b4eed2667eec5788c
|
|
4
|
+
data.tar.gz: 208508f00a6542efe5c5f7357a87f943e50384b7c999771e669c9c585df4e3a7
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: bc94ca5d7d28214e3cf4166dce28369a1a22e7173eee2d5c1c0a34a826c32c97c7d58e37ba66a9e87a2ea3540ffe6674ea64be705e0ca920166df856b7bcd116
|
|
7
|
+
data.tar.gz: 3929c665775cf4af212c36a9ea898b9850dc3358d79597707fdd4b166d4b605777d85c793b54eeb72ac8e3207be217b17be602a3d395c2a749962d076bc5aaf1
|
data/bin/danger
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
# http://devcenter.bitrise.io/docs/available-environment-variables
|
|
2
4
|
require "danger/request_sources/github/github"
|
|
3
5
|
require "danger/request_sources/gitlab"
|
|
@@ -49,7 +51,6 @@ module Danger
|
|
|
49
51
|
self.pull_request_id = env["BITRISE_PULL_REQUEST"]
|
|
50
52
|
self.repo_url = env["GIT_REPOSITORY_URL"]
|
|
51
53
|
|
|
52
|
-
matcher_url = self.repo_url
|
|
53
54
|
self.repo_slug = repo_slug_from(self.repo_url)
|
|
54
55
|
end
|
|
55
56
|
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
# https://circleci.com/docs/environment-variables
|
|
2
4
|
require "uri"
|
|
3
5
|
require "danger/ci_source/circle_api"
|
|
@@ -78,7 +80,7 @@ module Danger
|
|
|
78
80
|
pr_path = URI.parse(pr_url).path.split("/")
|
|
79
81
|
if pr_path.count == 5
|
|
80
82
|
# The first one is an extra slash, ignore it
|
|
81
|
-
self.repo_slug = pr_path[1]
|
|
83
|
+
self.repo_slug = "#{pr_path[1]}/#{pr_path[2]}"
|
|
82
84
|
self.pull_request_id = pr_path[4]
|
|
83
85
|
|
|
84
86
|
else
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
require "faraday"
|
|
2
4
|
|
|
3
5
|
module Danger
|
|
@@ -15,10 +17,10 @@ module Danger
|
|
|
15
17
|
url = env["CI_PULL_REQUEST"]
|
|
16
18
|
|
|
17
19
|
if url.nil? && !env["CIRCLE_PROJECT_USERNAME"].nil? && !env["CIRCLE_PROJECT_REPONAME"].nil?
|
|
18
|
-
repo_slug = env[
|
|
20
|
+
repo_slug = "#{env['CIRCLE_PROJECT_USERNAME']}/#{env['CIRCLE_PROJECT_REPONAME']}"
|
|
19
21
|
if !env["CIRCLE_PR_NUMBER"].nil?
|
|
20
22
|
host = env["DANGER_GITHUB_HOST"] || "github.com"
|
|
21
|
-
url = "https
|
|
23
|
+
url = "https://#{host}/#{repo_slug}/pull/#{env['CIRCLE_PR_NUMBER']}"
|
|
22
24
|
else
|
|
23
25
|
token = env["DANGER_CIRCLE_CI_API_TOKEN"]
|
|
24
26
|
url = fetch_pull_request_url(repo_slug, env["CIRCLE_BUILD_NUM"], token)
|
|
@@ -35,7 +37,7 @@ module Danger
|
|
|
35
37
|
def fetch_pull_request_url(repo_slug, build_number, token)
|
|
36
38
|
build_json = fetch_build(repo_slug, build_number, token)
|
|
37
39
|
pull_requests = build_json[:pull_requests]
|
|
38
|
-
return nil unless pull_requests
|
|
40
|
+
return nil unless pull_requests&.first
|
|
39
41
|
|
|
40
42
|
pull_requests.first[:url]
|
|
41
43
|
end
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
# https://semaphoreci.com/docs/available-environment-variables.html
|
|
2
4
|
require "danger/request_sources/github/github"
|
|
3
5
|
|
|
@@ -35,7 +37,7 @@ module Danger
|
|
|
35
37
|
return "" if env["CF_REPO_OWNER"].to_s.empty?
|
|
36
38
|
return "" if env["CF_REPO_NAME"].to_s.empty?
|
|
37
39
|
|
|
38
|
-
"#{env['CF_REPO_OWNER']}/#{env['CF_REPO_NAME']}".downcase
|
|
40
|
+
"#{env['CF_REPO_OWNER']}/#{env['CF_REPO_NAME']}".downcase
|
|
39
41
|
end
|
|
40
42
|
|
|
41
43
|
def initialize(env)
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
# https://wiki.jenkins-ci.org/display/JENKINS/Building+a+software+project#Buildingasoftwareproject-JenkinsSetEnvironmentVariables
|
|
2
4
|
# https://wiki.jenkins-ci.org/display/JENKINS/GitHub+pull+request+builder+plugin
|
|
3
5
|
require "danger/request_sources/github/github"
|
|
@@ -38,7 +38,8 @@ module Danger
|
|
|
38
38
|
Danger::RequestSources::GitHub,
|
|
39
39
|
Danger::RequestSources::BitbucketServer,
|
|
40
40
|
Danger::RequestSources::BitbucketCloud,
|
|
41
|
-
Danger::RequestSources::VSTS
|
|
41
|
+
Danger::RequestSources::VSTS,
|
|
42
|
+
Danger::RequestSources::GitLab
|
|
42
43
|
]
|
|
43
44
|
end
|
|
44
45
|
|
|
@@ -74,7 +75,8 @@ module Danger
|
|
|
74
75
|
|
|
75
76
|
def find_remote_info(env)
|
|
76
77
|
if given_pull_request_url?(env)
|
|
77
|
-
|
|
78
|
+
pr_url = env["LOCAL_GIT_PR_URL"] || env["LOCAL_GIT_MR_URL"]
|
|
79
|
+
FindRepoInfoFromURL.new(pr_url).call
|
|
78
80
|
else
|
|
79
81
|
FindRepoInfoFromLogs.new(
|
|
80
82
|
env["DANGER_GITHUB_HOST"] || "github.com",
|
|
@@ -85,15 +87,16 @@ module Danger
|
|
|
85
87
|
|
|
86
88
|
def find_pull_request(env)
|
|
87
89
|
if given_pull_request_url?(env)
|
|
90
|
+
remote_url = env["LOCAL_GIT_PR_URL"] || env["LOCAL_GIT_MR_URL"]
|
|
88
91
|
PullRequestFinder.new(
|
|
89
92
|
remote_info.id,
|
|
90
93
|
remote_info.slug,
|
|
91
94
|
remote: true,
|
|
92
|
-
remote_url:
|
|
95
|
+
remote_url: remote_url
|
|
93
96
|
).call(env: env)
|
|
94
97
|
else
|
|
95
98
|
PullRequestFinder.new(
|
|
96
|
-
env.fetch("LOCAL_GIT_PR_ID") { "" },
|
|
99
|
+
env.fetch("LOCAL_GIT_PR_ID") { env.fetch("LOCAL_GIT_MR_ID", "") },
|
|
97
100
|
remote_info.slug,
|
|
98
101
|
remote: false,
|
|
99
102
|
git_logs: run_git("log --oneline -1000000")
|
|
@@ -102,7 +105,8 @@ module Danger
|
|
|
102
105
|
end
|
|
103
106
|
|
|
104
107
|
def given_pull_request_url?(env)
|
|
105
|
-
env["LOCAL_GIT_PR_URL"] && !env["LOCAL_GIT_PR_URL"].empty?
|
|
108
|
+
(env["LOCAL_GIT_PR_URL"] && !env["LOCAL_GIT_PR_URL"].empty?) ||
|
|
109
|
+
(env["LOCAL_GIT_MR_URL"] && !env["LOCAL_GIT_MR_URL"].empty?)
|
|
106
110
|
end
|
|
107
111
|
|
|
108
112
|
def sha
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
require "danger/ci_source/support/repo_info"
|
|
2
4
|
|
|
3
5
|
module Danger
|
|
@@ -20,7 +22,7 @@ module Danger
|
|
|
20
22
|
attr_reader :remote_logs, :github_host
|
|
21
23
|
|
|
22
24
|
def remote
|
|
23
|
-
remote_logs.lines.grep(/Fetch URL/)[0].split(": "
|
|
25
|
+
remote_logs.lines.grep(/Fetch URL/)[0].split(": ", 2)[1]
|
|
24
26
|
end
|
|
25
27
|
|
|
26
28
|
def regexp
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
require "danger/ci_source/support/repo_info"
|
|
2
4
|
|
|
3
5
|
module Danger
|
|
@@ -31,7 +33,9 @@ module Danger
|
|
|
31
33
|
else
|
|
32
34
|
matched = url.match(REGEXP)
|
|
33
35
|
if matched
|
|
34
|
-
|
|
36
|
+
# Clean up the slug to remove any trailing dashes or slashes that might be part of the GitLab URL format
|
|
37
|
+
clean_slug = matched[:slug].gsub(%r{[-/]+$}, "")
|
|
38
|
+
RepoInfo.new(clean_slug, matched[:id])
|
|
35
39
|
end
|
|
36
40
|
end
|
|
37
41
|
end
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
module Danger
|
|
2
4
|
class LocalPullRequest
|
|
3
5
|
attr_reader :pull_request_id, :sha
|
|
4
6
|
|
|
5
7
|
def initialize(log_line)
|
|
6
8
|
@pull_request_id = log_line.match(/#(?<id>[0-9]+)/)[:id]
|
|
7
|
-
@sha = log_line.split(" "
|
|
9
|
+
@sha = log_line.split(" ").first
|
|
8
10
|
end
|
|
9
11
|
|
|
10
12
|
def valid?
|
|
@@ -81,6 +81,12 @@ module Danger
|
|
|
81
81
|
remote_pull_request.head.sha,
|
|
82
82
|
remote_pull_request.base.sha
|
|
83
83
|
)
|
|
84
|
+
when :gitlab
|
|
85
|
+
RemotePullRequest.new(
|
|
86
|
+
remote_pull_request.iid.to_s,
|
|
87
|
+
remote_pull_request.diff_refs.head_sha,
|
|
88
|
+
remote_pull_request.diff_refs.base_sha
|
|
89
|
+
)
|
|
84
90
|
when :vsts
|
|
85
91
|
RemotePullRequest.new(
|
|
86
92
|
remote_pull_request[:pullRequestId].to_s,
|
|
@@ -93,7 +99,13 @@ module Danger
|
|
|
93
99
|
end
|
|
94
100
|
|
|
95
101
|
def find_remote_pull_request(env)
|
|
96
|
-
|
|
102
|
+
scm_provider = find_scm_provider(remote_url)
|
|
103
|
+
|
|
104
|
+
if scm_provider == :gitlab
|
|
105
|
+
client(env).merge_request(repo_slug, specific_pull_request_id)
|
|
106
|
+
else
|
|
107
|
+
client(env).pull_request(repo_slug, specific_pull_request_id)
|
|
108
|
+
end
|
|
97
109
|
end
|
|
98
110
|
|
|
99
111
|
def both_present?
|
|
@@ -138,50 +150,77 @@ module Danger
|
|
|
138
150
|
|
|
139
151
|
case scm_provider
|
|
140
152
|
when :bitbucket_cloud
|
|
141
|
-
|
|
142
|
-
branch_name = ENV["DANGER_BITBUCKET_TARGET_BRANCH"] # Optional env variable (specifying the target branch) to help find the PR.
|
|
143
|
-
RequestSources::BitbucketCloudAPI.new(repo_slug, specific_pull_request_id, branch_name, env)
|
|
144
|
-
|
|
153
|
+
bitbucket_cloud_client(env)
|
|
145
154
|
when :bitbucket_server
|
|
146
|
-
|
|
147
|
-
project, slug = repo_slug.split("/")
|
|
148
|
-
RequestSources::BitbucketServerAPI.new(project, slug, specific_pull_request_id, env)
|
|
149
|
-
|
|
155
|
+
bitbucket_server_client(env)
|
|
150
156
|
when :vsts
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
157
|
+
vsts_client(env)
|
|
158
|
+
when :gitlab
|
|
159
|
+
gitlab_client(env)
|
|
154
160
|
when :github
|
|
155
|
-
|
|
156
|
-
access_token = ENV["DANGER_GITHUB_API_TOKEN"]
|
|
157
|
-
bearer_token = ENV["DANGER_GITHUB_BEARER_TOKEN"]
|
|
158
|
-
if bearer_token && !bearer_token.empty?
|
|
159
|
-
Octokit::Client.new(bearer_token: bearer_token, api_endpoint: api_url)
|
|
160
|
-
elsif access_token && !access_token.empty?
|
|
161
|
-
Octokit::Client.new(access_token: access_token, api_endpoint: api_url)
|
|
162
|
-
else
|
|
163
|
-
raise "No API token given, please provide one using `DANGER_GITHUB_API_TOKEN` or `DANGER_GITHUB_BEARER_TOKEN`"
|
|
164
|
-
end
|
|
161
|
+
github_client(env)
|
|
165
162
|
else
|
|
166
163
|
raise "SCM provider not supported: #{scm_provider}"
|
|
167
164
|
end
|
|
168
165
|
end
|
|
169
166
|
|
|
167
|
+
def bitbucket_cloud_client(env)
|
|
168
|
+
require "danger/request_sources/bitbucket_cloud_api"
|
|
169
|
+
branch_name = ENV["DANGER_BITBUCKET_TARGET_BRANCH"] # Optional env variable (specifying the target branch) to help find the PR.
|
|
170
|
+
RequestSources::BitbucketCloudAPI.new(repo_slug, specific_pull_request_id, branch_name, env)
|
|
171
|
+
end
|
|
172
|
+
|
|
173
|
+
def bitbucket_server_client(env)
|
|
174
|
+
require "danger/request_sources/bitbucket_server_api"
|
|
175
|
+
project, slug = repo_slug.split("/")
|
|
176
|
+
RequestSources::BitbucketServerAPI.new(project, slug, specific_pull_request_id, env)
|
|
177
|
+
end
|
|
178
|
+
|
|
179
|
+
def vsts_client(env)
|
|
180
|
+
require "danger/request_sources/vsts_api"
|
|
181
|
+
RequestSources::VSTSAPI.new(repo_slug, specific_pull_request_id, env)
|
|
182
|
+
end
|
|
183
|
+
|
|
184
|
+
def gitlab_client(env)
|
|
185
|
+
require "gitlab"
|
|
186
|
+
token = env&.fetch("DANGER_GITLAB_API_TOKEN", nil) || ENV["DANGER_GITLAB_API_TOKEN"]
|
|
187
|
+
if token && !token.empty?
|
|
188
|
+
endpoint = env&.fetch("DANGER_GITLAB_API_BASE_URL", nil) || env&.fetch("CI_API_V4_URL", nil) || ENV["DANGER_GITLAB_API_BASE_URL"] || ENV.fetch("CI_API_V4_URL", "https://gitlab.com/api/v4")
|
|
189
|
+
Gitlab.client(endpoint: endpoint, private_token: token)
|
|
190
|
+
else
|
|
191
|
+
raise "No API token given, please provide one using `DANGER_GITLAB_API_TOKEN`"
|
|
192
|
+
end
|
|
193
|
+
end
|
|
194
|
+
|
|
195
|
+
def github_client(env)
|
|
196
|
+
require "octokit"
|
|
197
|
+
access_token = env&.fetch("DANGER_GITHUB_API_TOKEN", nil) || ENV["DANGER_GITHUB_API_TOKEN"]
|
|
198
|
+
bearer_token = env&.fetch("DANGER_GITHUB_BEARER_TOKEN", nil) || ENV["DANGER_GITHUB_BEARER_TOKEN"]
|
|
199
|
+
if bearer_token && !bearer_token.empty?
|
|
200
|
+
Octokit::Client.new(bearer_token: bearer_token, api_endpoint: api_url)
|
|
201
|
+
elsif access_token && !access_token.empty?
|
|
202
|
+
Octokit::Client.new(access_token: access_token, api_endpoint: api_url)
|
|
203
|
+
else
|
|
204
|
+
raise "No API token given, please provide one using `DANGER_GITHUB_API_TOKEN` or `DANGER_GITHUB_BEARER_TOKEN`"
|
|
205
|
+
end
|
|
206
|
+
end
|
|
207
|
+
|
|
170
208
|
def api_url
|
|
171
209
|
ENV.fetch("DANGER_GITHUB_API_HOST") do
|
|
172
|
-
ENV.fetch("DANGER_GITHUB_API_BASE_URL")
|
|
173
|
-
"https://api.github.com/"
|
|
174
|
-
end
|
|
210
|
+
ENV.fetch("DANGER_GITHUB_API_BASE_URL", "https://api.github.com/")
|
|
175
211
|
end
|
|
176
212
|
end
|
|
177
213
|
|
|
178
214
|
def find_scm_provider(remote_url)
|
|
179
|
-
|
|
215
|
+
case remote_url
|
|
216
|
+
when %r{/bitbucket.org/}
|
|
180
217
|
:bitbucket_cloud
|
|
181
|
-
|
|
218
|
+
when %r{/pull-requests/}
|
|
182
219
|
:bitbucket_server
|
|
183
|
-
|
|
220
|
+
when /\.visualstudio\.com/i, /dev\.azure\.com/i
|
|
184
221
|
:vsts
|
|
222
|
+
when /gitlab\.com/, %r{-/merge_requests/}
|
|
223
|
+
:gitlab
|
|
185
224
|
else
|
|
186
225
|
:github
|
|
187
226
|
end
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
# https://www.jetbrains.com/teamcity/
|
|
2
4
|
require "danger/request_sources/github/github"
|
|
3
5
|
require "danger/request_sources/gitlab"
|
|
@@ -65,6 +67,14 @@ module Danger
|
|
|
65
67
|
# export BITBUCKET_BRANCH_NAME="%teamcity.build.branch%"
|
|
66
68
|
# ```
|
|
67
69
|
#
|
|
70
|
+
# Optionally, you can set `BITBUCKET_PULL_REQUEST_ID` to skip the API call that resolves
|
|
71
|
+
# the pull request ID from the branch name. If you are using the TeamCity
|
|
72
|
+
# [Pull Requests](https://www.jetbrains.com/help/teamcity/pull-requests.html) build feature:
|
|
73
|
+
#
|
|
74
|
+
# ```sh
|
|
75
|
+
# export BITBUCKET_PULL_REQUEST_ID="%teamcity.pullRequest.number%"
|
|
76
|
+
# ```
|
|
77
|
+
#
|
|
68
78
|
# #### BitBucket Server
|
|
69
79
|
#
|
|
70
80
|
# You will need to add the following environment variables as build parameters or by exporting them inside your
|
|
@@ -149,8 +159,11 @@ module Danger
|
|
|
149
159
|
self.repo_url = env["BITBUCKETSERVER_REPO_URL"]
|
|
150
160
|
end
|
|
151
161
|
|
|
152
|
-
#
|
|
162
|
+
# Uses BITBUCKET_PULL_REQUEST_ID from the environment if available,
|
|
163
|
+
# otherwise falls back to fetching the PR id from the Bitbucket API.
|
|
153
164
|
def bitbucket_pr_from_env(env)
|
|
165
|
+
return env["BITBUCKET_PULL_REQUEST_ID"].to_i if env["BITBUCKET_PULL_REQUEST_ID"]
|
|
166
|
+
|
|
154
167
|
branch_name = env["BITBUCKET_BRANCH_NAME"]
|
|
155
168
|
repo_slug = env["BITBUCKET_REPO_SLUG"]
|
|
156
169
|
begin
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
module Danger
|
|
2
4
|
class RubyGemsClient
|
|
3
|
-
API_URL = "https://rubygems.org/api/v1/versions/danger/latest.json"
|
|
4
|
-
DUMMY_VERSION = "0.0.0"
|
|
5
|
+
API_URL = "https://rubygems.org/api/v1/versions/danger/latest.json"
|
|
6
|
+
DUMMY_VERSION = "0.0.0"
|
|
5
7
|
|
|
6
8
|
def self.latest_danger_version
|
|
7
9
|
require "json"
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
require "claide_plugin"
|
|
2
4
|
require "danger/commands/dangerfile/init"
|
|
3
5
|
|
|
@@ -17,7 +19,7 @@ module Danger
|
|
|
17
19
|
|
|
18
20
|
def initialize(argv)
|
|
19
21
|
@name = argv.shift_argument
|
|
20
|
-
prefix = "dangerfile
|
|
22
|
+
prefix = "dangerfile-"
|
|
21
23
|
unless @name.nil? || @name.empty? || @name.start_with?(prefix)
|
|
22
24
|
@name = prefix + @name.dup
|
|
23
25
|
end
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
require "danger/danger_core/dangerfile_generator"
|
|
2
4
|
|
|
3
5
|
# Mainly so we can have a nice structure for commands
|
|
@@ -24,7 +26,7 @@ module Danger
|
|
|
24
26
|
def run
|
|
25
27
|
content = DangerfileGenerator.create_dangerfile(".", cork)
|
|
26
28
|
File.write("Dangerfile", content)
|
|
27
|
-
cork.puts "Created
|
|
29
|
+
cork.puts "Created#{'./Dangerfile'.green}"
|
|
28
30
|
end
|
|
29
31
|
end
|
|
30
32
|
end
|