danger 9.4.1 → 9.4.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fbef6ced180ce2906bb10c23e2147b86dd6bf934a628e2ae2efd75cc82a37f04
4
- data.tar.gz: cb4e9c67254e9c2ec41e7d74880d2a74fa260303c48f2a6f8e9116a9e395d6e8
3
+ metadata.gz: 235adb876d4329ef24664c6139ed7266298db3f672415e83cf78d1b9dfb87af9
4
+ data.tar.gz: 359771a09da8778f29d3d6d0fa26d803474813ae8d4a154fdef66489f7b3919b
5
5
  SHA512:
6
- metadata.gz: aad0fb80ef1ec58bd60b5437f3fbc8fdd8f9bf515aaf139e9e80d42fe0bab503add1f942174674ab1518f27de2706629be1a3c3e4c61d81e30d3af57b23a8c07
7
- data.tar.gz: 6a1b1fbbbc20c4d0b4869224e3d40ba95cabfcf29d75600c86065472430e9e9aa564b9539390ab121e8001610471803dc176e79d4cf00bae6d3b7f044c96c080
6
+ metadata.gz: ee8c64ffa617f2dc8e4c9dd00861dfac8243c6898cd4b10f2185358b95bbe3278ab6d3265db375cd6cb7fc33d1b5e6c7499db879a735f8e22e46737e5fc8a2da
7
+ data.tar.gz: 82bc4ac05e20fda0f0fc0936ed14eeadb8446effd43f65c673edbdcb6af364c3c0c22106bf8e3d667e1efba1e11ee9e9d9d83b7f13818b85779159f9bcbed9ad
@@ -5,8 +5,8 @@ require "danger/helpers/message_groups_array_helper"
5
5
 
6
6
  module Danger
7
7
  class MessageAggregator
8
- def self.aggregate(*args)
9
- new(*args).aggregate
8
+ def self.aggregate(*args, **kwargs)
9
+ new(*args, **kwargs).aggregate
10
10
  end
11
11
 
12
12
  def initialize(warnings: [],
@@ -252,14 +252,16 @@ module Danger
252
252
  end
253
253
 
254
254
  def submit_inline_comments!(warnings: [], errors: [], messages: [], markdowns: [], previous_violations: [], danger_id: "danger")
255
- # Avoid doing any fetchs if there's no inline comments
256
- return {} if (warnings + errors + messages + markdowns).select(&:inline?).empty?
257
-
258
- diff_lines = self.pr_diff.lines
259
255
  pr_comments = client.pull_request_comments(ci_source.repo_slug, ci_source.pull_request_id)
260
256
  danger_comments = pr_comments.select { |comment| Comment.from_github(comment).generated_by_danger?(danger_id) }
261
257
  non_danger_comments = pr_comments - danger_comments
262
258
 
259
+ if (warnings + errors + messages + markdowns).select(&:inline?).empty?
260
+ delete_old_inline_violations(danger_comments: danger_comments, non_danger_comments: non_danger_comments)
261
+ return {}
262
+ end
263
+
264
+ diff_lines = self.pr_diff.lines
263
265
  warnings = submit_inline_comments_for_kind!(:warning, warnings, diff_lines, danger_comments, previous_violations["warning"], danger_id: danger_id)
264
266
  errors = submit_inline_comments_for_kind!(:error, errors, diff_lines, danger_comments, previous_violations["error"], danger_id: danger_id)
265
267
  messages = submit_inline_comments_for_kind!(:message, messages, diff_lines, danger_comments, previous_violations["message"], danger_id: danger_id)
@@ -267,6 +269,17 @@ module Danger
267
269
 
268
270
  # submit removes from the array all comments that are still in force
269
271
  # so we strike out all remaining ones
272
+ delete_old_inline_violations(danger_comments: danger_comments, non_danger_comments: non_danger_comments)
273
+
274
+ {
275
+ warnings: warnings,
276
+ errors: errors,
277
+ messages: messages,
278
+ markdowns: markdowns
279
+ }
280
+ end
281
+
282
+ def delete_old_inline_violations(danger_comments: [], non_danger_comments: [])
270
283
  danger_comments.each do |comment|
271
284
  violation = violations_from_table(comment["body"]).first
272
285
  if !violation.nil? && violation.sticky
@@ -285,13 +298,6 @@ module Danger
285
298
  client.delete_pull_request_comment(ci_source.repo_slug, comment["id"]) if replies.empty?
286
299
  end
287
300
  end
288
-
289
- {
290
- warnings: warnings,
291
- errors: errors,
292
- messages: messages,
293
- markdowns: markdowns
294
- }
295
301
  end
296
302
 
297
303
  def messages_are_equivalent(m1, m2)
@@ -343,8 +349,10 @@ module Danger
343
349
 
344
350
  if matching_comments.empty?
345
351
  begin
352
+ # Since Octokit v8, the signature of create_pull_request_comment has been changed.
353
+ # See https://github.com/danger/danger/issues/1475 for detailed information.
346
354
  client.create_pull_request_comment(ci_source.repo_slug, ci_source.pull_request_id,
347
- body, head_ref, m.file, position)
355
+ body, head_ref, m.file, (Octokit::MAJOR >= 8 ? m.line : position))
348
356
  rescue Octokit::UnprocessableEntity => e
349
357
  # Show more detail for UnprocessableEntity error
350
358
  message = [e, "body: #{body}", "head_ref: #{head_ref}", "filename: #{m.file}", "position: #{position}"].join("\n")
@@ -1,4 +1,4 @@
1
1
  module Danger
2
- VERSION = "9.4.1".freeze
2
+ VERSION = "9.4.3".freeze
3
3
  DESCRIPTION = "Like Unit Tests, but for your Team Culture.".freeze
4
4
  end
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: danger
3
3
  version: !ruby/object:Gem::Version
4
- version: 9.4.1
4
+ version: 9.4.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Orta Therox
8
8
  - Juanito Fatas
9
- autorequire:
9
+ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2023-12-01 00:00:00.000000000 Z
12
+ date: 2024-02-04 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: claide
@@ -163,14 +163,14 @@ dependencies:
163
163
  requirements:
164
164
  - - ">="
165
165
  - !ruby/object:Gem::Version
166
- version: '6.0'
166
+ version: '4.0'
167
167
  type: :runtime
168
168
  prerelease: false
169
169
  version_requirements: !ruby/object:Gem::Requirement
170
170
  requirements:
171
171
  - - ">="
172
172
  - !ruby/object:Gem::Version
173
- version: '6.0'
173
+ version: '4.0'
174
174
  - !ruby/object:Gem::Dependency
175
175
  name: terminal-table
176
176
  requirement: !ruby/object:Gem::Requirement
@@ -329,7 +329,7 @@ homepage: https://github.com/danger/danger
329
329
  licenses:
330
330
  - MIT
331
331
  metadata: {}
332
- post_install_message:
332
+ post_install_message:
333
333
  rdoc_options: []
334
334
  require_paths:
335
335
  - lib
@@ -344,8 +344,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
344
344
  - !ruby/object:Gem::Version
345
345
  version: '0'
346
346
  requirements: []
347
- rubygems_version: 3.1.6
348
- signing_key:
347
+ rubygems_version: 3.3.7
348
+ signing_key:
349
349
  specification_version: 4
350
350
  summary: Like Unit Tests, but for your Team Culture.
351
351
  test_files: []