dependabot-common 0.114.1 → 0.115.0

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: f6786a3445f21e8a86ef16db1574ec3d909ae56104e46e2bee6ef25f5e24381c
4
- data.tar.gz: dc23a768919a58b9957f6a0ca5c92083854abc9eb2e9d289df31491537bc1757
3
+ metadata.gz: 0ca4c300e6913173c89d9d025b5bcd1e78c0b68fed9fe9471ab0d2c7dc730b60
4
+ data.tar.gz: 7b071b023ae3be15e218dccbc723e5dd3b302859818117faa1ed5be43bbdfee3
5
5
  SHA512:
6
- metadata.gz: d4ecf080f83638c4ad66e4b5ce0e5c180aceefc519325faf8bba0d412507eff3a34415f2dd0282cc3081c3927274bed3265d4e53b083ac4f23575f07fe41e27e
7
- data.tar.gz: 65d6b88a6060b0b9a8662d1139e0e395c1d928794d2addb14d9872603362f3e0be6c4fe66db312e06f2c3230a2693f070f75564239e76dc8dead770a207b4197
6
+ metadata.gz: 00f07caa0d24f1418c94449654b9c9e51f535297db7c38cf4d65a9163d9fd205780a0976bdb92aa14c8e7790f9c5e2c5f75936880f29b16e421c256e9484a454
7
+ data.tar.gz: b90acfa364d72c9e6892fdbc7203b6c1e2003929efb89428c21482bd395ed187e92e24efdef09c7e360667191ce2dbb1ba6cb6c90106f302e33f2a504c9dd988
@@ -292,7 +292,7 @@ module Dependabot
292
292
  end
293
293
 
294
294
  dependencies.map do |dep|
295
- msg = "\n\nUpdates `#{dep.display_name}` from "\
295
+ msg = "\nUpdates `#{dep.display_name}` from "\
296
296
  "#{previous_version(dep)} to #{new_version(dep)}"
297
297
 
298
298
  if vulnerabilities_fixed[dep.name]&.one?
@@ -314,7 +314,7 @@ module Dependabot
314
314
  msg += commits_cascade(dep)
315
315
  msg += maintainer_changes_cascade(dep)
316
316
  msg += "\n<br />" unless msg == ""
317
- sanitize_links_and_mentions(msg)
317
+ "\n" + sanitize_links_and_mentions(msg)
318
318
  end
319
319
 
320
320
  def vulnerabilities_cascade(dep)
@@ -438,9 +438,9 @@ module Dependabot
438
438
  if source.provider == ("azure" || "codecommit")
439
439
  "\n\##{summary}\n\n#{body}"
440
440
  else
441
- msg = "\n<details>\n<summary>#{summary}</summary>\n\n"
441
+ msg = "<details>\n<summary>#{summary}</summary>\n\n"
442
442
  msg += body
443
- msg + "</details>"
443
+ msg + "</details>\n"
444
444
  end
445
445
  end
446
446
 
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require "commonmarker"
3
4
  require "strscan"
4
5
  require "dependabot/pull_request_creator/message_builder"
5
6
 
@@ -46,11 +47,11 @@ module Dependabot
46
47
  delimiter = line.match(CODEBLOCK_REGEX)&.to_s
47
48
  unless delimiter && lines.count { |l| l.include?(delimiter) }.odd?
48
49
  line = sanitize_mentions(line)
49
- line = sanitize_links(line)
50
50
  end
51
51
  lines << line
52
52
  end
53
- lines.join
53
+
54
+ sanitize_links(lines.join)
54
55
  end
55
56
 
56
57
  private
@@ -60,8 +61,8 @@ module Dependabot
60
61
  next mention if mention.end_with?("/")
61
62
 
62
63
  last_match = Regexp.last_match
63
-
64
64
  sanitized_mention = mention.gsub("@", "@&#8203;")
65
+
65
66
  if last_match.pre_match.chars.last == "[" &&
66
67
  last_match.post_match.chars.first == "]"
67
68
  sanitized_mention
@@ -73,23 +74,30 @@ module Dependabot
73
74
  end
74
75
 
75
76
  def sanitize_links(text)
76
- text.gsub(GITHUB_REF_REGEX) do |ref|
77
- last_match = Regexp.last_match
78
- previous_char = last_match.pre_match.chars.last
79
- next_char = last_match.post_match.chars.first
80
-
81
- sanitized_url =
82
- ref.gsub("github.com", github_redirection_service || "github.com")
83
- if (previous_char.nil? || previous_char.match?(/\s/)) &&
84
- (next_char.nil? || next_char.match?(/\s/))
85
- number = last_match.named_captures.fetch("number")
86
- repo = last_match.named_captures.fetch("repo")
87
- "[#{repo}##{number}]"\
88
- "(#{sanitized_url})"
89
- else
90
- sanitized_url
77
+ # We rely on GitHub to do the HTML sanitization
78
+ options = %i(UNSAFE GITHUB_PRE_LANG FULL_INFO_STRING)
79
+ extensions = %i(table tasklist strikethrough autolink tagfilter)
80
+
81
+ doc = CommonMarker.render_doc(text, :LIBERAL_HTML_TAG, extensions)
82
+
83
+ doc.walk do |node|
84
+ if node.type == :link && node.url.match?(GITHUB_REF_REGEX)
85
+ node.each do |subnode|
86
+ last_match = subnode.string_content.match(GITHUB_REF_REGEX)
87
+ next unless subnode.type == :text && last_match
88
+
89
+ number = last_match.named_captures.fetch("number")
90
+ repo = last_match.named_captures.fetch("repo")
91
+ subnode.string_content = "#{repo}##{number}"
92
+ end
93
+
94
+ node.url = node.url.gsub(
95
+ "github.com", github_redirection_service || "github.com"
96
+ )
91
97
  end
92
98
  end
99
+
100
+ doc.to_html(options, extensions)
93
101
  end
94
102
  end
95
103
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Dependabot
4
- VERSION = "0.114.1"
4
+ VERSION = "0.115.0"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dependabot-common
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.114.1
4
+ version: 0.115.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dependabot
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-12-17 00:00:00.000000000 Z
11
+ date: 2019-12-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-codecommit
@@ -58,6 +58,20 @@ dependencies:
58
58
  - - "<"
59
59
  - !ruby/object:Gem::Version
60
60
  version: 3.0.0
61
+ - !ruby/object:Gem::Dependency
62
+ name: commonmarker
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - "~>"
66
+ - !ruby/object:Gem::Version
67
+ version: 0.20.1
68
+ type: :runtime
69
+ prerelease: false
70
+ version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - "~>"
73
+ - !ruby/object:Gem::Version
74
+ version: 0.20.1
61
75
  - !ruby/object:Gem::Dependency
62
76
  name: docker_registry2
63
77
  requirement: !ruby/object:Gem::Requirement