danger 9.1.0 → 9.2.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.
Files changed (76) hide show
  1. checksums.yaml +4 -4
  2. data/bin/danger +1 -1
  3. data/lib/danger/ci_source/appcircle.rb +71 -71
  4. data/lib/danger/ci_source/appveyor.rb +1 -0
  5. data/lib/danger/ci_source/azure_pipelines.rb +20 -5
  6. data/lib/danger/ci_source/bamboo.rb +1 -1
  7. data/lib/danger/ci_source/bitbucket_pipelines.rb +1 -2
  8. data/lib/danger/ci_source/bitrise.rb +3 -3
  9. data/lib/danger/ci_source/buildkite.rb +1 -1
  10. data/lib/danger/ci_source/circle_api.rb +2 -2
  11. data/lib/danger/ci_source/code_build.rb +1 -1
  12. data/lib/danger/ci_source/codefresh.rb +1 -1
  13. data/lib/danger/ci_source/concourse.rb +4 -5
  14. data/lib/danger/ci_source/dotci.rb +4 -6
  15. data/lib/danger/ci_source/github_actions.rb +6 -6
  16. data/lib/danger/ci_source/gitlab_ci.rb +4 -4
  17. data/lib/danger/ci_source/jenkins.rb +21 -22
  18. data/lib/danger/ci_source/local_git_repo.rb +7 -1
  19. data/lib/danger/ci_source/local_only_git_repo.rb +1 -0
  20. data/lib/danger/ci_source/support/find_repo_info_from_url.rb +11 -10
  21. data/lib/danger/ci_source/support/pull_request_finder.rb +15 -7
  22. data/lib/danger/ci_source/teamcity.rb +1 -1
  23. data/lib/danger/ci_source/xcode_cloud.rb +7 -7
  24. data/lib/danger/commands/init.rb +1 -1
  25. data/lib/danger/commands/local.rb +1 -1
  26. data/lib/danger/commands/local_helpers/http_cache.rb +2 -0
  27. data/lib/danger/commands/local_helpers/local_setup.rb +2 -0
  28. data/lib/danger/commands/local_helpers/pry_setup.rb +1 -0
  29. data/lib/danger/commands/plugins/plugin_json.rb +1 -3
  30. data/lib/danger/commands/plugins/plugin_lint.rb +0 -2
  31. data/lib/danger/commands/plugins/plugin_readme.rb +2 -5
  32. data/lib/danger/commands/runner.rb +1 -1
  33. data/lib/danger/commands/staging.rb +7 -7
  34. data/lib/danger/commands/systems.rb +4 -6
  35. data/lib/danger/core_ext/file_list.rb +2 -2
  36. data/lib/danger/danger_core/dangerfile.rb +13 -13
  37. data/lib/danger/danger_core/environment_manager.rb +2 -1
  38. data/lib/danger/danger_core/executor.rb +10 -11
  39. data/lib/danger/danger_core/message_aggregator.rb +1 -0
  40. data/lib/danger/danger_core/messages/base.rb +1 -0
  41. data/lib/danger/danger_core/messages/markdown.rb +3 -4
  42. data/lib/danger/danger_core/messages/violation.rb +1 -2
  43. data/lib/danger/danger_core/plugins/dangerfile_bitbucket_cloud_plugin.rb +1 -3
  44. data/lib/danger/danger_core/plugins/dangerfile_bitbucket_server_plugin.rb +4 -4
  45. data/lib/danger/danger_core/plugins/dangerfile_danger_plugin.rb +8 -2
  46. data/lib/danger/danger_core/plugins/dangerfile_git_plugin.rb +3 -2
  47. data/lib/danger/danger_core/plugins/dangerfile_github_plugin.rb +2 -0
  48. data/lib/danger/danger_core/plugins/dangerfile_gitlab_plugin.rb +3 -1
  49. data/lib/danger/danger_core/plugins/dangerfile_local_only_plugin.rb +3 -2
  50. data/lib/danger/danger_core/plugins/dangerfile_messaging_plugin.rb +3 -1
  51. data/lib/danger/danger_core/plugins/dangerfile_vsts_plugin.rb +3 -3
  52. data/lib/danger/danger_core/standard_error.rb +2 -3
  53. data/lib/danger/helpers/comments_helper.rb +5 -5
  54. data/lib/danger/helpers/comments_parsing_helper.rb +3 -2
  55. data/lib/danger/helpers/emoji_mapper.rb +1 -1
  56. data/lib/danger/plugin_support/plugin.rb +0 -1
  57. data/lib/danger/plugin_support/plugin_linter.rb +1 -0
  58. data/lib/danger/request_sources/bitbucket_cloud.rb +3 -5
  59. data/lib/danger/request_sources/bitbucket_cloud_api.rb +2 -4
  60. data/lib/danger/request_sources/bitbucket_server.rb +10 -13
  61. data/lib/danger/request_sources/bitbucket_server_api.rb +9 -10
  62. data/lib/danger/request_sources/code_insights_api.rb +7 -11
  63. data/lib/danger/request_sources/github/github.rb +15 -14
  64. data/lib/danger/request_sources/github/github_review.rb +3 -2
  65. data/lib/danger/request_sources/github/github_review_resolver.rb +0 -2
  66. data/lib/danger/request_sources/github/github_review_unsupported.rb +0 -2
  67. data/lib/danger/request_sources/gitlab.rb +46 -58
  68. data/lib/danger/request_sources/local_only.rb +0 -2
  69. data/lib/danger/request_sources/request_source.rb +4 -4
  70. data/lib/danger/request_sources/support/get_ignored_violation.rb +1 -1
  71. data/lib/danger/request_sources/vsts.rb +8 -10
  72. data/lib/danger/request_sources/vsts_api.rb +5 -2
  73. data/lib/danger/version.rb +1 -1
  74. data/lib/danger.rb +1 -0
  75. metadata +34 -35
  76. data/lib/danger/ci_source/vsts.rb +0 -73
@@ -1,4 +1,3 @@
1
- # coding: utf-8
2
1
  require "uri"
3
2
  require "danger/helpers/comments_helper"
4
3
  require "danger/helpers/comment"
@@ -72,20 +71,18 @@ module Danger
72
71
  def mr_comments
73
72
  # @raw_comments contains what we got back from the server.
74
73
  # @comments contains Comment objects (that have less information)
75
- @comments ||= begin
76
- if supports_inline_comments
77
- @raw_comments = mr_discussions
78
- .auto_paginate
79
- .flat_map { |discussion| discussion.notes.map { |note| note.to_h.merge({"discussion_id" => discussion.id}) } }
80
- @raw_comments
81
- .map { |comment| Comment.from_gitlab(comment) }
82
- else
83
- @raw_comments = client.merge_request_comments(ci_source.repo_slug, ci_source.pull_request_id, per_page: 100)
84
- .auto_paginate
85
- @raw_comments
86
- .map { |comment| Comment.from_gitlab(comment) }
87
- end
88
- end
74
+ @comments ||= if supports_inline_comments
75
+ @raw_comments = mr_discussions
76
+ .auto_paginate
77
+ .flat_map { |discussion| discussion.notes.map { |note| note.to_h.merge({ "discussion_id" => discussion.id }) } }
78
+ @raw_comments
79
+ .map { |comment| Comment.from_gitlab(comment) }
80
+ else
81
+ @raw_comments = client.merge_request_comments(ci_source.repo_slug, ci_source.pull_request_id, per_page: 100)
82
+ .auto_paginate
83
+ @raw_comments
84
+ .map { |comment| Comment.from_gitlab(comment) }
85
+ end
89
86
  end
90
87
 
91
88
  def mr_discussions
@@ -96,10 +93,10 @@ module Danger
96
93
  @mr_diff ||= begin
97
94
  diffs = mr_changes.changes.map do |change|
98
95
  diff = change["diff"]
99
- if diff.start_with?('--- a/')
96
+ if diff.start_with?("--- a/")
100
97
  diff
101
98
  else
102
- "--- a/#{change["old_path"]}\n+++ b/#{change["new_path"]}\n#{diff}"
99
+ "--- a/#{change['old_path']}\n+++ b/#{change['new_path']}\n#{diff}"
103
100
  end
104
101
  end
105
102
  diffs.join("\n")
@@ -107,24 +104,18 @@ module Danger
107
104
  end
108
105
 
109
106
  def mr_changed_paths
110
- @mr_changed_paths ||= begin
111
- mr_changes
112
- .changes.map { |change| change["new_path"] }
113
- end
107
+ @mr_changed_paths ||= mr_changes
108
+ .changes.map { |change| change["new_path"] }
114
109
 
115
110
  @mr_changed_paths
116
111
  end
117
112
 
118
113
  def mr_changes
119
- @mr_changes ||= begin
120
- client.merge_request_changes(ci_source.repo_slug, ci_source.pull_request_id)
121
- end
114
+ @mr_changes ||= client.merge_request_changes(ci_source.repo_slug, ci_source.pull_request_id)
122
115
  end
123
116
 
124
117
  def mr_closes_issues
125
- @mr_closes_issues ||= begin
126
- client.merge_request_closes_issues(ci_source.repo_slug, ci_source.pull_request_id)
127
- end
118
+ @mr_closes_issues ||= client.merge_request_closes_issues(ci_source.repo_slug, ci_source.pull_request_id)
128
119
  end
129
120
 
130
121
  def setup_danger_branches
@@ -154,16 +145,14 @@ module Danger
154
145
  end
155
146
 
156
147
  def supports_inline_comments
157
- @supports_inline_comments ||= begin
158
- # If we can't check GitLab's version, we assume we don't support inline comments
159
- if Gem.loaded_specs["gitlab"].version < FIRST_GITLAB_GEM_WITH_VERSION_CHECK
160
- false
161
- else
162
- current_version = Gem::Version.new(client.version.version)
148
+ # If we can't check GitLab's version, we assume we don't support inline comments
149
+ @supports_inline_comments ||= if Gem.loaded_specs["gitlab"].version < FIRST_GITLAB_GEM_WITH_VERSION_CHECK
150
+ false
151
+ else
152
+ current_version = Gem::Version.new(client.version.version)
163
153
 
164
- current_version >= FIRST_VERSION_WITH_INLINE_COMMENTS
165
- end
166
- end
154
+ current_version >= FIRST_VERSION_WITH_INLINE_COMMENTS
155
+ end
167
156
  end
168
157
 
169
158
  def update_pull_request!(warnings: [], errors: [], messages: [], markdowns: [], danger_id: "danger", new_comment: false, remove_previous_comments: false)
@@ -253,11 +242,11 @@ module Danger
253
242
  delete_old_comments!(danger_id: danger_id)
254
243
  else
255
244
  body = generate_comment(warnings: warnings,
256
- errors: errors,
245
+ errors: errors,
257
246
  messages: messages,
258
- markdowns: markdowns,
259
- previous_violations: previous_violations,
260
- danger_id: danger_id,
247
+ markdowns: markdowns,
248
+ previous_violations: previous_violations,
249
+ danger_id: danger_id,
261
250
  template: "gitlab")
262
251
 
263
252
  if editable_comments.empty? or should_create_new_comment
@@ -278,11 +267,10 @@ module Danger
278
267
 
279
268
  def delete_old_comments!(except: nil, danger_id: "danger")
280
269
  @raw_comments.each do |raw_comment|
281
-
282
270
  comment = Comment.from_gitlab(raw_comment)
283
271
  next unless comment.generated_by_danger?(danger_id)
284
272
  next if comment.id == except
285
- next unless raw_comment.is_a?(Hash) && raw_comment["position"].nil?
273
+ next unless raw_comment.kind_of?(Hash) && raw_comment["position"].nil?
286
274
 
287
275
  begin
288
276
  client.delete_merge_request_comment(
@@ -290,7 +278,7 @@ module Danger
290
278
  ci_source.pull_request_id,
291
279
  comment.id
292
280
  )
293
- rescue
281
+ rescue StandardError
294
282
  end
295
283
  end
296
284
  end
@@ -298,7 +286,7 @@ module Danger
298
286
  def markdown_link_to_message(message, _)
299
287
  "#{message.file}#L#{message.line}: "
300
288
  end
301
-
289
+
302
290
  # @return [String] The organisation name, is nil if it can't be detected
303
291
  def organisation
304
292
  nil # TODO: Implement this
@@ -315,12 +303,12 @@ module Danger
315
303
  end
316
304
 
317
305
  # @return [String] A URL to the specific file, ready to be downloaded
318
- def file_url(organisation: nil, repository: nil, branch: nil, path: nil)
319
- branch ||= 'master'
306
+ def file_url(organisation: nil, repository: nil, ref: nil, branch: nil, path: nil)
307
+ ref ||= (branch || "master")
320
308
  # According to GitLab Repositories API docs path and id(slug) should be encoded.
321
309
  path = URI.encode_www_form_component(path)
322
310
  repository = URI.encode_www_form_component(repository)
323
- "#{endpoint}/projects/#{repository}/repository/files/#{path}/raw?ref=#{branch}&private_token=#{@token}"
311
+ "#{endpoint}/projects/#{repository}/repository/files/#{path}/raw?ref=#{ref}&private_token=#{@token}"
324
312
  end
325
313
 
326
314
  def regular_violations_group(warnings: [], errors: [], messages: [], markdowns: [])
@@ -338,6 +326,7 @@ module Danger
338
326
  next 1 unless b.file && b.line
339
327
 
340
328
  next a.line <=> b.line if a.file == b.file
329
+
341
330
  next a.file <=> b.file
342
331
  end
343
332
 
@@ -359,7 +348,7 @@ module Danger
359
348
  def submit_inline_comments!(warnings: [], errors: [], messages: [], markdowns: [], previous_violations: [], danger_id: "danger")
360
349
  comments = mr_discussions
361
350
  .auto_paginate
362
- .flat_map { |discussion| discussion.notes.map { |note| note.to_h.merge({"discussion_id" => discussion.id}) } }
351
+ .flat_map { |discussion| discussion.notes.map { |note| note.to_h.merge({ "discussion_id" => discussion.id }) } }
363
352
  .select { |comment| Comment.from_gitlab(comment).inline? }
364
353
 
365
354
  danger_comments = comments.select { |comment| Comment.from_gitlab(comment).generated_by_danger?(danger_id) }
@@ -401,7 +390,7 @@ module Danger
401
390
  }
402
391
  end
403
392
 
404
- def submit_inline_comments_for_kind!(kind, messages, diff_lines, danger_comments, previous_violations, danger_id: "danger")
393
+ def submit_inline_comments_for_kind!(kind, messages, _diff_lines, danger_comments, previous_violations, danger_id: "danger")
405
394
  previous_violations ||= []
406
395
  is_markdown_content = kind == :markdown
407
396
  emoji = { warning: "warning", error: "no_entry_sign", message: "book" }[kind]
@@ -440,7 +429,7 @@ module Danger
440
429
  params = {
441
430
  body: body,
442
431
  position: {
443
- position_type: 'text',
432
+ position_type: "text",
444
433
  new_path: m.file,
445
434
  new_line: m.line,
446
435
  old_path: old_position[:path],
@@ -550,20 +539,19 @@ module Danger
550
539
  line_number = 0
551
540
  diff.each_line do |line|
552
541
  if line.match range_header_regexp
553
- line = line.split('+').last
554
- line = line.split(' ').first
555
- range_string = line.split(',')
542
+ line = line.split("+").last
543
+ line = line.split(" ").first
544
+ range_string = line.split(",")
556
545
  line_number = range_string[0].to_i - 1
557
- elsif line.start_with?('+')
546
+ elsif line.start_with?("+")
558
547
  addition_lines.push(line_number)
559
- elsif line.start_with?('-')
560
- line_number=line_number-1
548
+ elsif line.start_with?("-")
549
+ line_number -= 1
561
550
  end
562
- line_number=line_number+1
551
+ line_number += 1
563
552
  end
564
553
  addition_lines
565
554
  end
566
-
567
555
  end
568
556
  end
569
557
  end
@@ -1,5 +1,3 @@
1
- # coding: utf-8
2
-
3
1
  require "danger/helpers/comments_helper"
4
2
  require "danger/helpers/comment"
5
3
 
@@ -85,12 +85,12 @@ module Danger
85
85
  raise "Subclass and overwrite organisation"
86
86
  end
87
87
 
88
- def file_url(_organisation: nil, _repository: nil, _branch: "master", _path: nil)
88
+ def file_url(_organisation: nil, _repository: nil, _ref: nil, _branch: nil, _path: nil)
89
89
  raise "Subclass and overwrite file_url"
90
90
  end
91
-
92
- def update_build_status(status)
93
- raise "Subclass and overwrite update_build_status"
91
+
92
+ def update_build_status(_status)
93
+ raise "Subclass and overwrite update_build_status"
94
94
  end
95
95
  end
96
96
  end
@@ -1,5 +1,5 @@
1
1
  class GetIgnoredViolation
2
- IGNORE_REGEXP = />*\s*danger\s*:\s*ignore\s*"(?<error>[^"]*)"/i
2
+ IGNORE_REGEXP = />*\s*danger\s*:\s*ignore\s*"(?<error>[^"]*)"/i.freeze
3
3
 
4
4
  def initialize(body)
5
5
  @body = body
@@ -1,5 +1,3 @@
1
- # coding: utf-8
2
-
3
1
  require "danger/helpers/comments_helper"
4
2
  require "danger/request_sources/vsts_api"
5
3
 
@@ -25,14 +23,13 @@ module Danger
25
23
  def initialize(ci_source, environment)
26
24
  self.ci_source = ci_source
27
25
 
28
- @is_vsts_git = environment["BUILD_REPOSITORY_PROVIDER"] == "TfsGit"
26
+ @is_vsts_ci = environment.key? "DANGER_VSTS_HOST"
29
27
 
30
- project, slug = ci_source.repo_slug.split("/")
31
- @api = VSTSAPI.new(project, slug, ci_source.pull_request_id, environment)
28
+ @api = VSTSAPI.new(ci_source.repo_slug, ci_source.pull_request_id, environment)
32
29
  end
33
30
 
34
31
  def validates_as_ci?
35
- @is_vsts_git
32
+ @is_vsts_ci
36
33
  end
37
34
 
38
35
  def validates_as_api_source?
@@ -132,6 +129,7 @@ module Danger
132
129
  next unless comment_content.include?("generated_by_#{danger_id}")
133
130
  # Skip the comment if it's an inline comment
134
131
  next unless c[:threadContext].nil?
132
+
135
133
  # Updated the danger posted comment
136
134
  @api.update_comment(thread_id, comment_id, new_comment)
137
135
  comment_updated = true
@@ -205,9 +203,9 @@ module Danger
205
203
 
206
204
  matching_threads = danger_threads.select do |comment_data|
207
205
  if comment_data.key?(:threadContext) && !comment_data[:threadContext].nil? &&
208
- comment_data[:threadContext][:filePath] == m.file &&
209
- comment_data[:threadContext].key?(:rightFileStart) &&
210
- comment_data[:threadContext][:rightFileStart][:line] == m.line
206
+ comment_data[:threadContext][:filePath] == m.file &&
207
+ comment_data[:threadContext].key?(:rightFileStart) &&
208
+ comment_data[:threadContext][:rightFileStart][:line] == m.line
211
209
  # Parse it to avoid problems with strikethrough
212
210
  violation = violations_from_table(comment_data[:comments].first[:content]).first
213
211
  if violation
@@ -257,6 +255,7 @@ module Danger
257
255
  next 1 unless b.file && b.line
258
256
 
259
257
  next a.line <=> b.line if a.file == b.file
258
+
260
259
  next a.file <=> b.file
261
260
  end
262
261
 
@@ -274,7 +273,6 @@ module Danger
274
273
  accumulator.merge(group) { |_, old, fresh| old + fresh }
275
274
  end
276
275
  end
277
-
278
276
  end
279
277
  end
280
278
  end
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
- # coding: utf-8
3
2
 
4
3
  require "base64"
5
4
  require "danger/helpers/comments_helper"
@@ -9,7 +8,7 @@ module Danger
9
8
  class VSTSAPI
10
9
  attr_accessor :host, :pr_api_endpoint, :min_api_version_for_comments
11
10
 
12
- def initialize(_project, slug, pull_request_id, environment)
11
+ def initialize(slug, pull_request_id, environment)
13
12
  self.min_api_version_for_comments = "3.0"
14
13
 
15
14
  user_name = ""
@@ -45,6 +44,10 @@ module Danger
45
44
  @token && !@token.empty?
46
45
  end
47
46
 
47
+ def pull_request(*)
48
+ fetch_pr_json
49
+ end
50
+
48
51
  def fetch_pr_json
49
52
  uri = URI("#{pr_api_endpoint}?api-version=#{@api_version}")
50
53
  fetch_json(uri)
@@ -1,4 +1,4 @@
1
1
  module Danger
2
- VERSION = "9.1.0".freeze
2
+ VERSION = "9.2.0".freeze
3
3
  DESCRIPTION = "Like Unit Tests, but for your Team Culture.".freeze
4
4
  end
data/lib/danger.rb CHANGED
@@ -25,6 +25,7 @@ module Danger
25
25
  if Gem::Specification.find_all_by_name(GEM_NAME).empty?
26
26
  raise "Couldn't find gem directory for 'danger'"
27
27
  end
28
+
28
29
  return Gem::Specification.find_by_name(GEM_NAME).gem_dir
29
30
  end
30
31
 
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: 9.1.0
4
+ version: 9.2.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: 2022-11-07 00:00:00.000000000 Z
12
+ date: 2023-01-28 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: claide
@@ -40,33 +40,33 @@ dependencies:
40
40
  - !ruby/object:Gem::Version
41
41
  version: 0.9.2
42
42
  - !ruby/object:Gem::Dependency
43
- name: git
43
+ name: colored2
44
44
  requirement: !ruby/object:Gem::Requirement
45
45
  requirements:
46
46
  - - "~>"
47
47
  - !ruby/object:Gem::Version
48
- version: '1.7'
48
+ version: '3.1'
49
49
  type: :runtime
50
50
  prerelease: false
51
51
  version_requirements: !ruby/object:Gem::Requirement
52
52
  requirements:
53
53
  - - "~>"
54
54
  - !ruby/object:Gem::Version
55
- version: '1.7'
55
+ version: '3.1'
56
56
  - !ruby/object:Gem::Dependency
57
- name: colored2
57
+ name: cork
58
58
  requirement: !ruby/object:Gem::Requirement
59
59
  requirements:
60
60
  - - "~>"
61
61
  - !ruby/object:Gem::Version
62
- version: '3.1'
62
+ version: '0.1'
63
63
  type: :runtime
64
64
  prerelease: false
65
65
  version_requirements: !ruby/object:Gem::Requirement
66
66
  requirements:
67
67
  - - "~>"
68
68
  - !ruby/object:Gem::Version
69
- version: '3.1'
69
+ version: '0.1'
70
70
  - !ruby/object:Gem::Dependency
71
71
  name: faraday
72
72
  requirement: !ruby/object:Gem::Requirement
@@ -76,7 +76,7 @@ dependencies:
76
76
  version: 0.9.0
77
77
  - - "<"
78
78
  - !ruby/object:Gem::Version
79
- version: '2.0'
79
+ version: '3.0'
80
80
  type: :runtime
81
81
  prerelease: false
82
82
  version_requirements: !ruby/object:Gem::Requirement
@@ -86,7 +86,7 @@ dependencies:
86
86
  version: 0.9.0
87
87
  - - "<"
88
88
  - !ruby/object:Gem::Version
89
- version: '2.0'
89
+ version: '3.0'
90
90
  - !ruby/object:Gem::Dependency
91
91
  name: faraday-http-cache
92
92
  requirement: !ruby/object:Gem::Requirement
@@ -102,95 +102,95 @@ dependencies:
102
102
  - !ruby/object:Gem::Version
103
103
  version: '2.0'
104
104
  - !ruby/object:Gem::Dependency
105
- name: kramdown
105
+ name: git
106
106
  requirement: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: '2.3'
110
+ version: '1.7'
111
111
  type: :runtime
112
112
  prerelease: false
113
113
  version_requirements: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - "~>"
116
116
  - !ruby/object:Gem::Version
117
- version: '2.3'
117
+ version: '1.7'
118
118
  - !ruby/object:Gem::Dependency
119
- name: kramdown-parser-gfm
119
+ name: kramdown
120
120
  requirement: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
- version: '1.0'
124
+ version: '2.3'
125
125
  type: :runtime
126
126
  prerelease: false
127
127
  version_requirements: !ruby/object:Gem::Requirement
128
128
  requirements:
129
129
  - - "~>"
130
130
  - !ruby/object:Gem::Version
131
- version: '1.0'
131
+ version: '2.3'
132
132
  - !ruby/object:Gem::Dependency
133
- name: octokit
133
+ name: kramdown-parser-gfm
134
134
  requirement: !ruby/object:Gem::Requirement
135
135
  requirements:
136
136
  - - "~>"
137
137
  - !ruby/object:Gem::Version
138
- version: '5.0'
138
+ version: '1.0'
139
139
  type: :runtime
140
140
  prerelease: false
141
141
  version_requirements: !ruby/object:Gem::Requirement
142
142
  requirements:
143
143
  - - "~>"
144
144
  - !ruby/object:Gem::Version
145
- version: '5.0'
145
+ version: '1.0'
146
146
  - !ruby/object:Gem::Dependency
147
- name: terminal-table
147
+ name: no_proxy_fix
148
148
  requirement: !ruby/object:Gem::Requirement
149
149
  requirements:
150
150
  - - ">="
151
151
  - !ruby/object:Gem::Version
152
- version: '1'
153
- - - "<"
154
- - !ruby/object:Gem::Version
155
- version: '4'
152
+ version: '0'
156
153
  type: :runtime
157
154
  prerelease: false
158
155
  version_requirements: !ruby/object:Gem::Requirement
159
156
  requirements:
160
157
  - - ">="
161
158
  - !ruby/object:Gem::Version
162
- version: '1'
163
- - - "<"
164
- - !ruby/object:Gem::Version
165
- version: '4'
159
+ version: '0'
166
160
  - !ruby/object:Gem::Dependency
167
- name: cork
161
+ name: octokit
168
162
  requirement: !ruby/object:Gem::Requirement
169
163
  requirements:
170
164
  - - "~>"
171
165
  - !ruby/object:Gem::Version
172
- version: '0.1'
166
+ version: '5.0'
173
167
  type: :runtime
174
168
  prerelease: false
175
169
  version_requirements: !ruby/object:Gem::Requirement
176
170
  requirements:
177
171
  - - "~>"
178
172
  - !ruby/object:Gem::Version
179
- version: '0.1'
173
+ version: '5.0'
180
174
  - !ruby/object:Gem::Dependency
181
- name: no_proxy_fix
175
+ name: terminal-table
182
176
  requirement: !ruby/object:Gem::Requirement
183
177
  requirements:
184
178
  - - ">="
185
179
  - !ruby/object:Gem::Version
186
- version: '0'
180
+ version: '1'
181
+ - - "<"
182
+ - !ruby/object:Gem::Version
183
+ version: '4'
187
184
  type: :runtime
188
185
  prerelease: false
189
186
  version_requirements: !ruby/object:Gem::Requirement
190
187
  requirements:
191
188
  - - ">="
192
189
  - !ruby/object:Gem::Version
193
- version: '0'
190
+ version: '1'
191
+ - - "<"
192
+ - !ruby/object:Gem::Version
193
+ version: '4'
194
194
  description: Stop Saying 'You Forgot To…' in Code Review
195
195
  email:
196
196
  - orta.therox@gmail.com
@@ -244,7 +244,6 @@ files:
244
244
  - lib/danger/ci_source/surf.rb
245
245
  - lib/danger/ci_source/teamcity.rb
246
246
  - lib/danger/ci_source/travis.rb
247
- - lib/danger/ci_source/vsts.rb
248
247
  - lib/danger/ci_source/xcode_cloud.rb
249
248
  - lib/danger/ci_source/xcode_server.rb
250
249
  - lib/danger/clients/rubygems_client.rb
@@ -1,73 +0,0 @@
1
- require "danger/request_sources/github/github"
2
- require "danger/request_sources/vsts"
3
-
4
- module Danger
5
- # ### CI Setup
6
- #
7
- # You need to go to your project's build definition. Then add a "Command Line" Task with the "Tool" field set to "bundle"
8
- # and the "Arguments" field set to "exec danger".
9
- #
10
- # ### Token Setup
11
- #
12
- # #### GitHub
13
- #
14
- # You need to add the `DANGER_GITHUB_API_TOKEN` environment variable, to do this, go to your build definition's variables tab.
15
- #
16
- # Make sure that `DANGER_GITHUB_API_TOKEN` is not set to secret since vsts does not expose secret variables while building.
17
- #
18
- # #### VSTS
19
- #
20
- # You need to add the `DANGER_VSTS_API_TOKEN` and `DANGER_VSTS_HOST` environment variable, to do this,
21
- # go to your build definition's variables tab. The `DANGER_VSTS_API_TOKEN` is your vsts personal access token.
22
- # Instructions for creating a personal access token can be found [here](https://www.visualstudio.com/en-us/docs/setup-admin/team-services/use-personal-access-tokens-to-authenticate).
23
- # For the `DANGER_VSTS_HOST` variable the suggested value is `$(System.TeamFoundationCollectionUri)$(System.TeamProject)`
24
- # which will automatically get your vsts domain and your project name needed for the vsts api.
25
- #
26
- # Make sure that `DANGER_VSTS_API_TOKEN` is not set to secret since vsts does not expose secret variables while building.
27
- #
28
- class VSTS < CI
29
- class << self
30
- def github_slug(env)
31
- env["BUILD_REPOSITORY_NAME"]
32
- end
33
-
34
- def vsts_slug(env)
35
- project_name = env["SYSTEM_TEAMPROJECT"]
36
- repo_name = env["BUILD_REPOSITORY_NAME"]
37
-
38
- "#{project_name}/#{repo_name}"
39
- end
40
- end
41
-
42
- def self.validates_as_ci?(env)
43
- has_all_variables = ["SYSTEM_TEAMFOUNDATIONCOLLECTIONURI", "BUILD_REPOSITORY_PROVIDER"].all? { |x| env[x] && !env[x].empty? }
44
-
45
- is_support_source_control = ["GitHub", "TfsGit"].include?(env["BUILD_REPOSITORY_PROVIDER"])
46
-
47
- has_all_variables && is_support_source_control
48
- end
49
-
50
- def self.validates_as_pr?(env)
51
- has_all_variables = ["BUILD_SOURCEBRANCH", "BUILD_REPOSITORY_URI", "BUILD_REASON", "BUILD_REPOSITORY_NAME"].all? { |x| env[x] && !env[x].empty? }
52
-
53
- has_all_variables && env["BUILD_REASON"] == "PullRequest"
54
- end
55
-
56
- def supported_request_sources
57
- @supported_request_sources ||= [Danger::RequestSources::GitHub, Danger::RequestSources::VSTS]
58
- end
59
-
60
- def initialize(env)
61
- case env["BUILD_REPOSITORY_PROVIDER"]
62
- when "GitHub"
63
- self.repo_slug = self.class.github_slug(env)
64
- when "TfsGit"
65
- self.repo_slug = self.class.vsts_slug(env)
66
- end
67
-
68
- repo_matches = env["BUILD_SOURCEBRANCH"].match(%r{refs\/pull\/([0-9]+)\/merge})
69
- self.pull_request_id = repo_matches[1] unless repo_matches.nil?
70
- self.repo_url = env["BUILD_REPOSITORY_URI"]
71
- end
72
- end
73
- end