danger 9.1.0 → 9.2.0

Sign up to get free protection for your applications and to get access to all the features.
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