dependabot-common 0.225.0 → 0.226.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/dependabot/dependency_file.rb +5 -1
- data/lib/dependabot/dependency_group.rb +0 -74
- data/lib/dependabot/file_fetchers/base.rb +23 -5
- data/lib/dependabot/git_commit_checker.rb +22 -15
- data/lib/dependabot/git_metadata_fetcher.rb +6 -5
- data/lib/dependabot/metadata_finders/base.rb +1 -2
- data/lib/dependabot/pull_request_creator/bitbucket.rb +3 -0
- data/lib/dependabot/pull_request_creator/github.rb +1 -2
- data/lib/dependabot/pull_request_creator/gitlab.rb +2 -1
- data/lib/dependabot/pull_request_creator/message_builder.rb +3 -3
- data/lib/dependabot/pull_request_creator.rb +2 -0
- data/lib/dependabot/pull_request_updater/github.rb +1 -2
- data/lib/dependabot/pull_request_updater/gitlab.rb +2 -1
- data/lib/dependabot/shared_helpers.rb +7 -0
- data/lib/dependabot.rb +1 -1
- metadata +13 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 47e3c8b72c7026283675f4969109de44931af6b655978be6762eb1c846f92dc9
|
4
|
+
data.tar.gz: 4d1b71853adbe711c8ad038c27df1fabc2612de1226705ac3a55de8f70ccfa0c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e8edba97936c9846ec37066eb5ff03dfce9f24aa8e7fe688665b17939ce6e785f2e00a3bda2baf666422e7044daef0dbfbb84d770c02ef12ccbd9b12aeb8fca6
|
7
|
+
data.tar.gz: aacddd041d120483380bc7d3e6b6e757cc4f80c304d6bd8df7a911174b53f361e1a1d3926dd193c3cd1e7451d8c6b29370406dfcfee52dcb3264304319417c46
|
@@ -44,7 +44,7 @@ module Dependabot
|
|
44
44
|
@type = type
|
45
45
|
|
46
46
|
begin
|
47
|
-
@mode = File.stat(
|
47
|
+
@mode = File.stat(realpath).mode.to_s(8)
|
48
48
|
rescue StandardError
|
49
49
|
@mode = mode
|
50
50
|
end
|
@@ -76,6 +76,10 @@ module Dependabot
|
|
76
76
|
Pathname.new(File.join(directory, name)).cleanpath.to_path
|
77
77
|
end
|
78
78
|
|
79
|
+
def realpath
|
80
|
+
(symlink_target || path).sub(%r{^/}, "")
|
81
|
+
end
|
82
|
+
|
79
83
|
def ==(other)
|
80
84
|
return false unless other.instance_of?(self.class)
|
81
85
|
|
@@ -9,34 +9,12 @@ require "yaml"
|
|
9
9
|
|
10
10
|
module Dependabot
|
11
11
|
class DependencyGroup
|
12
|
-
ANY_DEPENDENCY_NAME = "*"
|
13
|
-
SECURITY_UPDATES_ONLY = false
|
14
|
-
|
15
|
-
DEFAULT_UPDATE_TYPES = [
|
16
|
-
SEMVER_MAJOR = "major",
|
17
|
-
SEMVER_MINOR = "minor",
|
18
|
-
SEMVER_PATCH = "patch"
|
19
|
-
].freeze
|
20
|
-
|
21
|
-
IGNORE_CONDITION_TYPES = {
|
22
|
-
SEMVER_MAJOR => Dependabot::Config::IgnoreCondition::MAJOR_VERSION_TYPE,
|
23
|
-
SEMVER_MINOR => Dependabot::Config::IgnoreCondition::MINOR_VERSION_TYPE,
|
24
|
-
SEMVER_PATCH => Dependabot::Config::IgnoreCondition::PATCH_VERSION_TYPE
|
25
|
-
}.freeze
|
26
|
-
|
27
|
-
class NullIgnoreCondition
|
28
|
-
def ignored_versions(_dependency, _security_updates_only)
|
29
|
-
[]
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
12
|
attr_reader :name, :rules, :dependencies
|
34
13
|
|
35
14
|
def initialize(name:, rules:)
|
36
15
|
@name = name
|
37
16
|
@rules = rules
|
38
17
|
@dependencies = []
|
39
|
-
@ignore_condition = generate_ignore_condition!
|
40
18
|
end
|
41
19
|
|
42
20
|
def contains?(dependency)
|
@@ -46,18 +24,6 @@ module Dependabot
|
|
46
24
|
matches_pattern?(dependency.name) && matches_dependency_type?(dependency)
|
47
25
|
end
|
48
26
|
|
49
|
-
# This method generates ignored versions for the given Dependency based on
|
50
|
-
# the any update-types we have defined.
|
51
|
-
def ignored_versions_for(dependency)
|
52
|
-
@ignore_condition.ignored_versions(dependency, SECURITY_UPDATES_ONLY)
|
53
|
-
end
|
54
|
-
|
55
|
-
def targets_highest_versions_possible?
|
56
|
-
return true unless experimental_rules_enabled?
|
57
|
-
|
58
|
-
update_types.include?(SEMVER_MAJOR)
|
59
|
-
end
|
60
|
-
|
61
27
|
def to_h
|
62
28
|
{ "name" => name }
|
63
29
|
end
|
@@ -93,46 +59,6 @@ module Dependabot
|
|
93
59
|
end
|
94
60
|
end
|
95
61
|
|
96
|
-
def pattern_rules?
|
97
|
-
rules.key?("patterns") && rules["patterns"]&.any?
|
98
|
-
end
|
99
|
-
|
100
|
-
def update_types
|
101
|
-
rules.fetch("update-types", DEFAULT_UPDATE_TYPES)
|
102
|
-
end
|
103
|
-
|
104
|
-
def generate_ignore_condition!
|
105
|
-
return NullIgnoreCondition.new unless experimental_rules_enabled?
|
106
|
-
|
107
|
-
ignored_update_types = ignored_update_types_for_rules
|
108
|
-
|
109
|
-
return NullIgnoreCondition.new unless ignored_update_types.any?
|
110
|
-
|
111
|
-
Dependabot.logger.debug("The #{name} group has set ignores for update-type(s): #{ignored_update_types}")
|
112
|
-
|
113
|
-
Dependabot::Config::IgnoreCondition.new(
|
114
|
-
dependency_name: ANY_DEPENDENCY_NAME,
|
115
|
-
update_types: ignored_update_types
|
116
|
-
)
|
117
|
-
end
|
118
|
-
|
119
|
-
def ignored_update_types_for_rules
|
120
|
-
unless update_types.is_a?(Array)
|
121
|
-
raise ArgumentError,
|
122
|
-
"The #{name} group has an unexpected value for update-types: '#{update_types}'"
|
123
|
-
end
|
124
|
-
|
125
|
-
unless update_types.any?
|
126
|
-
raise ArgumentError,
|
127
|
-
"The #{name} group has specified an empty array for update-types."
|
128
|
-
end
|
129
|
-
|
130
|
-
ignored_update_types = DEFAULT_UPDATE_TYPES - update_types
|
131
|
-
return [] if ignored_update_types.empty?
|
132
|
-
|
133
|
-
IGNORE_CONDITION_TYPES.fetch_values(*ignored_update_types)
|
134
|
-
end
|
135
|
-
|
136
62
|
def experimental_rules_enabled?
|
137
63
|
Dependabot::Experiments.enabled?(:grouped_updates_experimental_rules)
|
138
64
|
end
|
@@ -108,6 +108,10 @@ module Dependabot
|
|
108
108
|
|
109
109
|
private
|
110
110
|
|
111
|
+
def fetch_support_file(name)
|
112
|
+
fetch_file_if_present(name)&.tap { |f| f.support_file = true }
|
113
|
+
end
|
114
|
+
|
111
115
|
def fetch_file_if_present(filename, fetch_submodules: false)
|
112
116
|
unless repo_contents_path.nil?
|
113
117
|
begin
|
@@ -128,8 +132,7 @@ module Dependabot
|
|
128
132
|
|
129
133
|
fetch_file_from_host(filename, fetch_submodules: fetch_submodules)
|
130
134
|
rescue *CLIENT_NOT_FOUND_ERRORS
|
131
|
-
|
132
|
-
raise Dependabot::DependencyFileNotFound, path
|
135
|
+
nil
|
133
136
|
end
|
134
137
|
|
135
138
|
def load_cloned_file_if_present(filename)
|
@@ -159,19 +162,34 @@ module Dependabot
|
|
159
162
|
|
160
163
|
path = Pathname.new(File.join(directory, filename)).cleanpath.to_path
|
161
164
|
content = _fetch_file_content(path, fetch_submodules: fetch_submodules)
|
162
|
-
|
165
|
+
clean_path = path.gsub(%r{^/}, "")
|
166
|
+
|
167
|
+
linked_path = symlinked_subpath(clean_path)
|
168
|
+
type = "symlink" if linked_path
|
169
|
+
symlink_target = clean_path.sub(linked_path, @linked_paths.dig(linked_path, :path)) if type == "symlink"
|
163
170
|
|
164
171
|
DependencyFile.new(
|
165
172
|
name: Pathname.new(filename).cleanpath.to_path,
|
166
173
|
directory: directory,
|
167
174
|
type: type,
|
168
175
|
content: content,
|
169
|
-
symlink_target:
|
176
|
+
symlink_target: symlink_target
|
170
177
|
)
|
171
178
|
rescue *CLIENT_NOT_FOUND_ERRORS
|
172
179
|
raise Dependabot::DependencyFileNotFound, path
|
173
180
|
end
|
174
181
|
|
182
|
+
# Finds the first subpath in path that is a symlink
|
183
|
+
def symlinked_subpath(path)
|
184
|
+
subpaths(path).find { |subpath| @linked_paths.key?(subpath) }
|
185
|
+
end
|
186
|
+
|
187
|
+
# Given a "foo/bar/baz" path, returns ["foo", "foo/bar", "foo/bar/baz"]
|
188
|
+
def subpaths(path)
|
189
|
+
components = path.split("/")
|
190
|
+
components.map { |component| components[0..components.index(component)].join("/") }
|
191
|
+
end
|
192
|
+
|
175
193
|
def repo_contents(dir: ".", ignore_base_directory: false,
|
176
194
|
raise_errors: true, fetch_submodules: false)
|
177
195
|
dir = File.join(directory, dir) unless ignore_base_directory
|
@@ -375,7 +393,7 @@ module Dependabot
|
|
375
393
|
|
376
394
|
def _gitlab_repo_contents(repo, path, commit)
|
377
395
|
gitlab_client.
|
378
|
-
repo_tree(repo, path: path,
|
396
|
+
repo_tree(repo, path: path, ref: commit, per_page: 100).
|
379
397
|
map do |file|
|
380
398
|
# GitLab API essentially returns the output from `git ls-tree`
|
381
399
|
type = case file.type
|
@@ -40,7 +40,6 @@ module Dependabot
|
|
40
40
|
def pinned?
|
41
41
|
raise "Not a git dependency!" unless git_dependency?
|
42
42
|
|
43
|
-
ref = dependency_source_details.fetch(:ref)
|
44
43
|
branch = dependency_source_details.fetch(:branch)
|
45
44
|
|
46
45
|
return false if ref.nil?
|
@@ -61,16 +60,14 @@ module Dependabot
|
|
61
60
|
def pinned_ref_looks_like_version?
|
62
61
|
return false unless pinned?
|
63
62
|
|
64
|
-
version_tag?(
|
63
|
+
version_tag?(ref)
|
65
64
|
end
|
66
65
|
|
67
66
|
def pinned_ref_looks_like_commit_sha?
|
68
|
-
ref = dependency_source_details.fetch(:ref)
|
69
67
|
ref_looks_like_commit_sha?(ref)
|
70
68
|
end
|
71
69
|
|
72
70
|
def head_commit_for_pinned_ref
|
73
|
-
ref = dependency_source_details.fetch(:ref)
|
74
71
|
local_repo_git_metadata_fetcher.head_commit_for_ref_sha(ref)
|
75
72
|
end
|
76
73
|
|
@@ -144,15 +141,14 @@ module Dependabot
|
|
144
141
|
end
|
145
142
|
|
146
143
|
def most_specific_tag_equivalent_to_pinned_ref
|
147
|
-
commit_sha = head_commit_for_local_branch(
|
144
|
+
commit_sha = head_commit_for_local_branch(ref)
|
148
145
|
most_specific_version_tag_for_sha(commit_sha)
|
149
146
|
end
|
150
147
|
|
151
148
|
def local_tag_for_pinned_sha
|
152
|
-
return
|
149
|
+
return @local_tag_for_pinned_sha if defined?(@local_tag_for_pinned_sha)
|
153
150
|
|
154
|
-
|
155
|
-
most_specific_version_tag_for_sha(commit_sha)
|
151
|
+
@local_tag_for_pinned_sha = most_specific_version_tag_for_sha(ref) if pinned_ref_looks_like_commit_sha?
|
156
152
|
end
|
157
153
|
|
158
154
|
def git_repo_reachable?
|
@@ -223,7 +219,7 @@ module Dependabot
|
|
223
219
|
return false unless tag
|
224
220
|
|
225
221
|
commit_included_in_tag?(
|
226
|
-
commit:
|
222
|
+
commit: ref,
|
227
223
|
tag: tag,
|
228
224
|
allow_identical: true
|
229
225
|
)
|
@@ -327,8 +323,11 @@ module Dependabot
|
|
327
323
|
end
|
328
324
|
|
329
325
|
def ref_or_branch
|
330
|
-
dependency_source_details.fetch(:
|
331
|
-
|
326
|
+
ref || dependency_source_details.fetch(:branch)
|
327
|
+
end
|
328
|
+
|
329
|
+
def ref
|
330
|
+
dependency_source_details.fetch(:ref)
|
332
331
|
end
|
333
332
|
|
334
333
|
def version_tag?(tag)
|
@@ -336,10 +335,18 @@ module Dependabot
|
|
336
335
|
end
|
337
336
|
|
338
337
|
def matches_existing_prefix?(tag)
|
339
|
-
return true unless ref_or_branch
|
338
|
+
return true unless ref_or_branch
|
339
|
+
|
340
|
+
if version_tag?(ref_or_branch)
|
341
|
+
same_prefix?(ref_or_branch, tag)
|
342
|
+
else
|
343
|
+
local_tag_for_pinned_sha.nil? || same_prefix?(local_tag_for_pinned_sha, tag)
|
344
|
+
end
|
345
|
+
end
|
340
346
|
|
341
|
-
|
342
|
-
|
347
|
+
def same_prefix?(tag, other_tag)
|
348
|
+
tag.gsub(VERSION_REGEX, "").gsub(/v$/i, "") ==
|
349
|
+
other_tag.gsub(VERSION_REGEX, "").gsub(/v$/i, "")
|
343
350
|
end
|
344
351
|
|
345
352
|
def to_local_tag(tag)
|
@@ -417,7 +424,7 @@ module Dependabot
|
|
417
424
|
return false unless dependency_source_details&.fetch(:ref, nil)
|
418
425
|
return false unless pinned_ref_looks_like_version?
|
419
426
|
|
420
|
-
version = version_from_ref(
|
427
|
+
version = version_from_ref(ref)
|
421
428
|
version.prerelease?
|
422
429
|
end
|
423
430
|
|
@@ -47,8 +47,10 @@ module Dependabot
|
|
47
47
|
if ref == "HEAD"
|
48
48
|
# Remove the opening clause of the upload pack as this isn't always
|
49
49
|
# followed by a line break. When it isn't (e.g., with Bitbucket) it
|
50
|
-
# causes problems for our `sha_for_update_pack_line` logic
|
51
|
-
|
50
|
+
# causes problems for our `sha_for_update_pack_line` logic. The format
|
51
|
+
# of this opening clause is documented at
|
52
|
+
# https://git-scm.com/docs/http-protocol#_smart_server_response
|
53
|
+
line = upload_pack.gsub(/^[0-9a-f]{4}# service=git-upload-pack/, "").
|
52
54
|
lines.find { |l| l.include?(" HEAD") }
|
53
55
|
return sha_for_update_pack_line(line) if line
|
54
56
|
end
|
@@ -177,7 +179,7 @@ module Dependabot
|
|
177
179
|
# (GitHub, GitLab, BitBucket) work with or without the suffix.
|
178
180
|
# That change has other ramifications, so it'd be better if Azure started supporting ".git"
|
179
181
|
# like all the other providers.
|
180
|
-
uri =
|
182
|
+
uri = SharedHelpers.scp_to_standard(uri)
|
181
183
|
uri = URI(uri)
|
182
184
|
hostname = uri.hostname.to_s
|
183
185
|
hostname == "dev.azure.com" || hostname.end_with?(".visualstudio.com")
|
@@ -186,8 +188,7 @@ module Dependabot
|
|
186
188
|
# Add in username and password if present in credentials.
|
187
189
|
# Credentials are never present for production Dependabot.
|
188
190
|
def uri_with_auth(uri)
|
189
|
-
|
190
|
-
uri = "https://#{uri.split('git@').last.sub(%r{:/?}, '/')}" if uri.start_with?("git@")
|
191
|
+
uri = SharedHelpers.scp_to_standard(uri)
|
191
192
|
uri = URI(uri)
|
192
193
|
cred = credentials.select { |c| c["type"] == "git_source" }.
|
193
194
|
find { |c| uri.host == c["host"] }
|
@@ -10,6 +10,9 @@ module Dependabot
|
|
10
10
|
:files, :commit_message, :pr_description, :pr_name,
|
11
11
|
:author_details, :labeler, :work_item
|
12
12
|
|
13
|
+
# BitBucket Cloud accepts > 1MB characters, but they display poorly in the UI, so limiting to 4x 65,536
|
14
|
+
PR_DESCRIPTION_MAX_LENGTH = 262_143 # 0 based count
|
15
|
+
|
13
16
|
def initialize(source:, branch_name:, base_commit:, credentials:,
|
14
17
|
files:, commit_message:, pr_description:, pr_name:,
|
15
18
|
author_details:, labeler: nil, work_item: nil)
|
@@ -529,18 +529,18 @@ module Dependabot
|
|
529
529
|
|
530
530
|
# Filter out the conditions where from_config_file is false and dependency is in @dependencies
|
531
531
|
valid_ignore_conditions = @ignore_conditions.select do |ic|
|
532
|
-
|
532
|
+
ic["source"] =~ /\A@dependabot ignore/ && dependencies.any? { |dep| dep.name == ic["dependency-name"] }
|
533
533
|
end
|
534
534
|
|
535
535
|
# Return an empty string if no valid ignore conditions after filtering
|
536
536
|
return "" if valid_ignore_conditions.empty?
|
537
537
|
|
538
538
|
# Sort them by updated_at (or created_at if updated_at is nil), taking the latest 20
|
539
|
-
sorted_ignore_conditions = valid_ignore_conditions.sort_by { |ic| ic[
|
539
|
+
sorted_ignore_conditions = valid_ignore_conditions.sort_by { |ic| ic["updated-at"] }.last(20)
|
540
540
|
|
541
541
|
# Map each condition to a row string
|
542
542
|
table_rows = sorted_ignore_conditions.map do |ic|
|
543
|
-
"| #{ic[
|
543
|
+
"| #{ic['dependency-name']} | [#{ic['version-requirement']}] |"
|
544
544
|
end
|
545
545
|
|
546
546
|
summary = "Most Recent Ignore Conditions Applied to This Pull Request"
|
@@ -230,6 +230,8 @@ module Dependabot
|
|
230
230
|
@pr_message_encoding = Azure::PR_DESCRIPTION_ENCODING if @pr_message_encoding.nil?
|
231
231
|
when "codecommit"
|
232
232
|
@pr_message_max_length = Codecommit::PR_DESCRIPTION_MAX_LENGTH if @pr_message_max_length.nil?
|
233
|
+
when "bitbucket"
|
234
|
+
@pr_message_max_length = Bitbucket::PR_DESCRIPTION_MAX_LENGTH if @pr_message_max_length.nil?
|
233
235
|
end
|
234
236
|
|
235
237
|
@message = MessageBuilder.new(
|
@@ -191,6 +191,13 @@ module Dependabot
|
|
191
191
|
reset_global_git_config(backup_git_config_path)
|
192
192
|
end
|
193
193
|
|
194
|
+
# Handle SCP-style git URIs
|
195
|
+
def self.scp_to_standard(uri)
|
196
|
+
return uri unless uri.start_with?("git@")
|
197
|
+
|
198
|
+
"https://#{uri.split('git@').last.sub(%r{:/?}, '/')}"
|
199
|
+
end
|
200
|
+
|
194
201
|
def self.credential_helper_path
|
195
202
|
File.join(__dir__, "../../bin/git-credential-store-immutable")
|
196
203
|
end
|
data/lib/dependabot.rb
CHANGED
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.
|
4
|
+
version: 0.226.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dependabot
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-08-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aws-sdk-codecommit
|
@@ -84,14 +84,14 @@ dependencies:
|
|
84
84
|
requirements:
|
85
85
|
- - "~>"
|
86
86
|
- !ruby/object:Gem::Version
|
87
|
-
version: 1.
|
87
|
+
version: 1.18.0
|
88
88
|
type: :runtime
|
89
89
|
prerelease: false
|
90
90
|
version_requirements: !ruby/object:Gem::Requirement
|
91
91
|
requirements:
|
92
92
|
- - "~>"
|
93
93
|
- !ruby/object:Gem::Version
|
94
|
-
version: 1.
|
94
|
+
version: 1.18.0
|
95
95
|
- !ruby/object:Gem::Dependency
|
96
96
|
name: excon
|
97
97
|
requirement: !ruby/object:Gem::Requirement
|
@@ -101,7 +101,7 @@ dependencies:
|
|
101
101
|
version: '0.96'
|
102
102
|
- - "<"
|
103
103
|
- !ruby/object:Gem::Version
|
104
|
-
version: '0.
|
104
|
+
version: '0.101'
|
105
105
|
type: :runtime
|
106
106
|
prerelease: false
|
107
107
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -111,35 +111,35 @@ dependencies:
|
|
111
111
|
version: '0.96'
|
112
112
|
- - "<"
|
113
113
|
- !ruby/object:Gem::Version
|
114
|
-
version: '0.
|
114
|
+
version: '0.101'
|
115
115
|
- !ruby/object:Gem::Dependency
|
116
116
|
name: faraday
|
117
117
|
requirement: !ruby/object:Gem::Requirement
|
118
118
|
requirements:
|
119
119
|
- - '='
|
120
120
|
- !ruby/object:Gem::Version
|
121
|
-
version: 2.7.
|
121
|
+
version: 2.7.10
|
122
122
|
type: :runtime
|
123
123
|
prerelease: false
|
124
124
|
version_requirements: !ruby/object:Gem::Requirement
|
125
125
|
requirements:
|
126
126
|
- - '='
|
127
127
|
- !ruby/object:Gem::Version
|
128
|
-
version: 2.7.
|
128
|
+
version: 2.7.10
|
129
129
|
- !ruby/object:Gem::Dependency
|
130
130
|
name: faraday-retry
|
131
131
|
requirement: !ruby/object:Gem::Requirement
|
132
132
|
requirements:
|
133
133
|
- - '='
|
134
134
|
- !ruby/object:Gem::Version
|
135
|
-
version: 2.
|
135
|
+
version: 2.2.0
|
136
136
|
type: :runtime
|
137
137
|
prerelease: false
|
138
138
|
version_requirements: !ruby/object:Gem::Requirement
|
139
139
|
requirements:
|
140
140
|
- - '='
|
141
141
|
- !ruby/object:Gem::Version
|
142
|
-
version: 2.
|
142
|
+
version: 2.2.0
|
143
143
|
- !ruby/object:Gem::Dependency
|
144
144
|
name: gitlab
|
145
145
|
requirement: !ruby/object:Gem::Requirement
|
@@ -346,14 +346,14 @@ dependencies:
|
|
346
346
|
requirements:
|
347
347
|
- - "~>"
|
348
348
|
- !ruby/object:Gem::Version
|
349
|
-
version: 1.
|
349
|
+
version: 1.18.0
|
350
350
|
type: :development
|
351
351
|
prerelease: false
|
352
352
|
version_requirements: !ruby/object:Gem::Requirement
|
353
353
|
requirements:
|
354
354
|
- - "~>"
|
355
355
|
- !ruby/object:Gem::Version
|
356
|
-
version: 1.
|
356
|
+
version: 1.18.0
|
357
357
|
- !ruby/object:Gem::Dependency
|
358
358
|
name: stackprof
|
359
359
|
requirement: !ruby/object:Gem::Requirement
|
@@ -486,7 +486,7 @@ licenses:
|
|
486
486
|
- Nonstandard
|
487
487
|
metadata:
|
488
488
|
bug_tracker_uri: https://github.com/dependabot/dependabot-core/issues
|
489
|
-
changelog_uri: https://github.com/dependabot/dependabot-core/releases/tag/v0.
|
489
|
+
changelog_uri: https://github.com/dependabot/dependabot-core/releases/tag/v0.226.0
|
490
490
|
post_install_message:
|
491
491
|
rdoc_options: []
|
492
492
|
require_paths:
|