dependabot-common 0.235.0 → 0.237.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.
- checksums.yaml +4 -4
- data/lib/dependabot/clients/azure.rb +3 -3
- data/lib/dependabot/config/file.rb +32 -9
- data/lib/dependabot/config/file_fetcher.rb +3 -3
- data/lib/dependabot/config/ignore_condition.rb +34 -8
- data/lib/dependabot/config/update_config.rb +42 -6
- data/lib/dependabot/config.rb +1 -1
- data/lib/dependabot/dependency_file.rb +89 -14
- data/lib/dependabot/dependency_group.rb +29 -5
- data/lib/dependabot/errors.rb +101 -13
- data/lib/dependabot/file_fetchers/base.rb +250 -93
- data/lib/dependabot/file_updaters/artifact_updater.rb +37 -10
- data/lib/dependabot/file_updaters/vendor_updater.rb +13 -3
- data/lib/dependabot/logger.rb +7 -2
- data/lib/dependabot/metadata_finders/base/changelog_finder.rb +13 -6
- data/lib/dependabot/pull_request_creator/commit_signer.rb +33 -7
- data/lib/dependabot/pull_request_creator/github.rb +13 -10
- data/lib/dependabot/pull_request_creator/message.rb +21 -2
- data/lib/dependabot/pull_request_creator/message_builder/link_and_mention_sanitizer.rb +37 -16
- data/lib/dependabot/pull_request_creator/message_builder/metadata_presenter.rb +5 -3
- data/lib/dependabot/pull_request_creator/message_builder.rb +5 -18
- data/lib/dependabot/pull_request_creator/pr_name_prefixer.rb +10 -4
- data/lib/dependabot/pull_request_updater/github.rb +2 -2
- data/lib/dependabot/shared_helpers.rb +117 -33
- data/lib/dependabot/simple_instrumentor.rb +22 -3
- data/lib/dependabot/source.rb +65 -17
- data/lib/dependabot/update_checkers/version_filters.rb +12 -1
- data/lib/dependabot/utils.rb +21 -2
- data/lib/dependabot/workspace/base.rb +42 -7
- data/lib/dependabot/workspace/change_attempt.rb +31 -3
- data/lib/dependabot/workspace/git.rb +34 -4
- data/lib/dependabot/workspace.rb +16 -2
- data/lib/dependabot.rb +1 -1
- metadata +37 -9
data/lib/dependabot/utils.rb
CHANGED
@@ -5,6 +5,7 @@ require "tmpdir"
|
|
5
5
|
require "set"
|
6
6
|
require "sorbet-runtime"
|
7
7
|
require "dependabot/version"
|
8
|
+
require "dependabot/config/file"
|
8
9
|
|
9
10
|
# TODO: in due course, these "registries" should live in a wrapper gem, not
|
10
11
|
# dependabot-core.
|
@@ -22,11 +23,13 @@ module Dependabot
|
|
22
23
|
version_class = @version_classes[package_manager]
|
23
24
|
return version_class if version_class
|
24
25
|
|
25
|
-
raise "
|
26
|
+
raise "Unregistered package_manager #{package_manager}"
|
26
27
|
end
|
27
28
|
|
28
29
|
sig { params(package_manager: String, version_class: T.class_of(Dependabot::Version)).void }
|
29
30
|
def self.register_version_class(package_manager, version_class)
|
31
|
+
validate_package_manager!(package_manager)
|
32
|
+
|
30
33
|
@version_classes[package_manager] = version_class
|
31
34
|
end
|
32
35
|
|
@@ -37,11 +40,13 @@ module Dependabot
|
|
37
40
|
requirement_class = @requirement_classes[package_manager]
|
38
41
|
return requirement_class if requirement_class
|
39
42
|
|
40
|
-
raise "
|
43
|
+
raise "Unregistered package_manager #{package_manager}"
|
41
44
|
end
|
42
45
|
|
43
46
|
sig { params(package_manager: String, requirement_class: T.class_of(Gem::Requirement)).void }
|
44
47
|
def self.register_requirement_class(package_manager, requirement_class)
|
48
|
+
validate_package_manager!(package_manager)
|
49
|
+
|
45
50
|
@requirement_classes[package_manager] = requirement_class
|
46
51
|
end
|
47
52
|
|
@@ -54,7 +59,21 @@ module Dependabot
|
|
54
59
|
|
55
60
|
sig { params(package_manager: String).void }
|
56
61
|
def self.register_always_clone(package_manager)
|
62
|
+
validate_package_manager!(package_manager)
|
63
|
+
|
57
64
|
@cloning_package_managers << package_manager
|
58
65
|
end
|
66
|
+
|
67
|
+
sig { params(package_manager: String).void }
|
68
|
+
def self.validate_package_manager!(package_manager)
|
69
|
+
# Official package manager
|
70
|
+
return if Config::File::PACKAGE_MANAGER_LOOKUP.invert.key?(package_manager)
|
71
|
+
|
72
|
+
# Used by specs
|
73
|
+
return if package_manager == "dummy"
|
74
|
+
|
75
|
+
raise "Unsupported package_manager #{package_manager}"
|
76
|
+
end
|
77
|
+
private_class_method :validate_package_manager!
|
59
78
|
end
|
60
79
|
end
|
@@ -1,29 +1,53 @@
|
|
1
|
-
# typed:
|
1
|
+
# typed: strict
|
2
2
|
# frozen_string_literal: true
|
3
3
|
|
4
|
+
require "sorbet-runtime"
|
5
|
+
|
4
6
|
module Dependabot
|
5
7
|
module Workspace
|
6
8
|
class Base
|
7
|
-
|
9
|
+
extend T::Sig
|
10
|
+
extend T::Helpers
|
11
|
+
extend T::Generic
|
12
|
+
|
13
|
+
abstract!
|
14
|
+
|
15
|
+
sig { returns(T::Array[Dependabot::Workspace::ChangeAttempt]) }
|
16
|
+
attr_reader :change_attempts
|
8
17
|
|
18
|
+
sig { returns(T.any(Pathname, String)) }
|
19
|
+
attr_reader :path
|
20
|
+
|
21
|
+
sig { params(path: T.any(Pathname, String)).void }
|
9
22
|
def initialize(path)
|
10
23
|
@path = path
|
11
|
-
@change_attempts = []
|
24
|
+
@change_attempts = T.let([], T::Array[Dependabot::Workspace::ChangeAttempt])
|
12
25
|
end
|
13
26
|
|
27
|
+
sig { returns(T::Boolean) }
|
14
28
|
def changed?
|
15
29
|
changes.any?
|
16
30
|
end
|
17
31
|
|
32
|
+
sig { returns(T::Array[Dependabot::Workspace::ChangeAttempt]) }
|
18
33
|
def changes
|
19
34
|
change_attempts.select(&:success?)
|
20
35
|
end
|
21
36
|
|
37
|
+
sig { returns(T::Array[Dependabot::Workspace::ChangeAttempt]) }
|
22
38
|
def failed_change_attempts
|
23
39
|
change_attempts.select(&:error?)
|
24
40
|
end
|
25
41
|
|
26
|
-
|
42
|
+
sig do
|
43
|
+
type_parameters(:T)
|
44
|
+
.params(
|
45
|
+
memo: T.nilable(String),
|
46
|
+
_blk: T.proc.params(arg0: T.any(Pathname, String)).returns(T.type_parameter(:T))
|
47
|
+
)
|
48
|
+
.returns(T.type_parameter(:T))
|
49
|
+
end
|
50
|
+
def change(memo = nil, &_blk)
|
27
51
|
Dir.chdir(path) { yield(path) }
|
28
52
|
rescue StandardError => e
|
29
53
|
capture_failed_change_attempt(memo, e)
|
@@ -31,17 +55,28 @@ module Dependabot
|
|
31
55
|
raise e
|
32
56
|
end
|
33
57
|
|
58
|
+
sig do
|
59
|
+
abstract.params(memo: T.nilable(String)).returns(T.nilable(T::Array[Dependabot::Workspace::ChangeAttempt]))
|
60
|
+
end
|
34
61
|
def store_change(memo = nil); end
|
35
62
|
|
36
|
-
|
37
|
-
|
38
|
-
end
|
63
|
+
sig { abstract.returns(String) }
|
64
|
+
def to_patch; end
|
39
65
|
|
66
|
+
sig { abstract.returns(NilClass) }
|
40
67
|
def reset!; end
|
41
68
|
|
42
69
|
protected
|
43
70
|
|
71
|
+
sig do
|
72
|
+
abstract
|
73
|
+
.params(memo: T.nilable(String), error: T.nilable(StandardError))
|
74
|
+
.returns(T.nilable(T::Array[Dependabot::Workspace::ChangeAttempt]))
|
75
|
+
end
|
44
76
|
def capture_failed_change_attempt(memo = nil, error = nil); end
|
77
|
+
|
78
|
+
sig { abstract.returns(String) }
|
79
|
+
def clean; end
|
45
80
|
end
|
46
81
|
end
|
47
82
|
end
|
@@ -1,11 +1,37 @@
|
|
1
|
-
# typed:
|
1
|
+
# typed: strong
|
2
2
|
# frozen_string_literal: true
|
3
3
|
|
4
|
+
require "sorbet-runtime"
|
5
|
+
|
4
6
|
module Dependabot
|
5
7
|
module Workspace
|
6
8
|
class ChangeAttempt
|
7
|
-
|
9
|
+
extend T::Sig
|
10
|
+
|
11
|
+
sig { returns(T.nilable(String)) }
|
12
|
+
attr_reader :diff
|
13
|
+
|
14
|
+
sig { returns(T.nilable(StandardError)) }
|
15
|
+
attr_reader :error
|
16
|
+
|
17
|
+
sig { returns(String) }
|
18
|
+
attr_reader :id
|
8
19
|
|
20
|
+
sig { returns(T.nilable(String)) }
|
21
|
+
attr_reader :memo
|
22
|
+
|
23
|
+
sig { returns(Dependabot::Workspace::Base) }
|
24
|
+
attr_reader :workspace
|
25
|
+
|
26
|
+
sig do
|
27
|
+
params(
|
28
|
+
workspace: Dependabot::Workspace::Base,
|
29
|
+
id: String,
|
30
|
+
memo: T.nilable(String),
|
31
|
+
diff: T.nilable(String),
|
32
|
+
error: T.nilable(StandardError)
|
33
|
+
).void
|
34
|
+
end
|
9
35
|
def initialize(workspace, id:, memo:, diff: nil, error: nil)
|
10
36
|
@workspace = workspace
|
11
37
|
@id = id
|
@@ -14,12 +40,14 @@ module Dependabot
|
|
14
40
|
@error = error
|
15
41
|
end
|
16
42
|
|
43
|
+
sig { returns(T::Boolean) }
|
17
44
|
def success?
|
18
45
|
error.nil?
|
19
46
|
end
|
20
47
|
|
48
|
+
sig { returns(T::Boolean) }
|
21
49
|
def error?
|
22
|
-
error
|
50
|
+
!error.nil?
|
23
51
|
end
|
24
52
|
end
|
25
53
|
end
|
@@ -1,31 +1,40 @@
|
|
1
|
-
# typed:
|
1
|
+
# typed: strict
|
2
2
|
# frozen_string_literal: true
|
3
3
|
|
4
|
+
require "sorbet-runtime"
|
4
5
|
require "dependabot/workspace/base"
|
5
6
|
require "dependabot/workspace/change_attempt"
|
6
7
|
|
7
8
|
module Dependabot
|
8
9
|
module Workspace
|
9
10
|
class Git < Base
|
11
|
+
extend T::Sig
|
12
|
+
extend T::Helpers
|
13
|
+
|
10
14
|
USER = "dependabot[bot]"
|
11
|
-
EMAIL = "#{USER}@users.noreply.github.com".freeze
|
15
|
+
EMAIL = T.let("#{USER}@users.noreply.github.com".freeze, String)
|
12
16
|
|
17
|
+
sig { returns(String) }
|
13
18
|
attr_reader :initial_head_sha
|
14
19
|
|
20
|
+
sig { params(path: T.any(Pathname, String)).void }
|
15
21
|
def initialize(path)
|
16
22
|
super(path)
|
17
|
-
@initial_head_sha = head_sha
|
23
|
+
@initial_head_sha = T.let(head_sha, String)
|
18
24
|
configure_git
|
19
25
|
end
|
20
26
|
|
27
|
+
sig { returns(T::Boolean) }
|
21
28
|
def changed?
|
22
29
|
changes.any? || !changed_files.empty?
|
23
30
|
end
|
24
31
|
|
32
|
+
sig { override.returns(String) }
|
25
33
|
def to_patch
|
26
34
|
run_shell_command("git diff --patch #{@initial_head_sha}.. .")
|
27
35
|
end
|
28
36
|
|
37
|
+
sig { override.returns(NilClass) }
|
29
38
|
def reset!
|
30
39
|
reset(initial_head_sha)
|
31
40
|
clean
|
@@ -35,6 +44,11 @@ module Dependabot
|
|
35
44
|
nil
|
36
45
|
end
|
37
46
|
|
47
|
+
sig do
|
48
|
+
override
|
49
|
+
.params(memo: T.nilable(String))
|
50
|
+
.returns(T.nilable(T::Array[Dependabot::Workspace::ChangeAttempt]))
|
51
|
+
end
|
38
52
|
def store_change(memo = nil)
|
39
53
|
return nil if changed_files.empty?
|
40
54
|
|
@@ -48,6 +62,11 @@ module Dependabot
|
|
48
62
|
|
49
63
|
protected
|
50
64
|
|
65
|
+
sig do
|
66
|
+
override
|
67
|
+
.params(memo: T.nilable(String), error: T.nilable(StandardError))
|
68
|
+
.returns(T.nilable(T::Array[Dependabot::Workspace::ChangeAttempt]))
|
69
|
+
end
|
51
70
|
def capture_failed_change_attempt(memo = nil, error = nil)
|
52
71
|
return nil if changed_files(ignored_mode: "matching").empty? && error.nil?
|
53
72
|
|
@@ -57,19 +76,23 @@ module Dependabot
|
|
57
76
|
|
58
77
|
private
|
59
78
|
|
79
|
+
sig { returns(String) }
|
60
80
|
def configure_git
|
61
81
|
run_shell_command(%(git config user.name "#{USER}"), allow_unsafe_shell_command: true)
|
62
82
|
run_shell_command(%(git config user.email "#{EMAIL}"), allow_unsafe_shell_command: true)
|
63
83
|
end
|
64
84
|
|
85
|
+
sig { returns(String) }
|
65
86
|
def head_sha
|
66
87
|
run_shell_command("git rev-parse HEAD").strip
|
67
88
|
end
|
68
89
|
|
90
|
+
sig { returns(String) }
|
69
91
|
def last_stash_sha
|
70
92
|
run_shell_command("git rev-parse refs/stash").strip
|
71
93
|
end
|
72
94
|
|
95
|
+
sig { returns(String) }
|
73
96
|
def current_commit
|
74
97
|
# Avoid emiting the user's commit message to logs if Dependabot hasn't made any changes
|
75
98
|
return "Initial SHA: #{initial_head_sha}" if changes.empty?
|
@@ -78,10 +101,12 @@ module Dependabot
|
|
78
101
|
run_shell_command(%(git log -1 --pretty="%h% B"), allow_unsafe_shell_command: true).strip
|
79
102
|
end
|
80
103
|
|
104
|
+
sig { params(ignored_mode: String).returns(String) }
|
81
105
|
def changed_files(ignored_mode: "traditional")
|
82
106
|
run_shell_command("git status --untracked-files=all --ignored=#{ignored_mode} --short .").strip
|
83
107
|
end
|
84
108
|
|
109
|
+
sig { params(memo: T.nilable(String)).returns([String, String]) }
|
85
110
|
def stash(memo = nil)
|
86
111
|
msg = memo || "workspace change attempt"
|
87
112
|
run_shell_command("git add --all --force .")
|
@@ -93,6 +118,7 @@ module Dependabot
|
|
93
118
|
[sha, diff]
|
94
119
|
end
|
95
120
|
|
121
|
+
sig { params(memo: T.nilable(String)).returns([String, String]) }
|
96
122
|
def commit(memo = nil)
|
97
123
|
run_shell_command("git add #{path}")
|
98
124
|
diff = run_shell_command("git diff --cached .")
|
@@ -103,18 +129,22 @@ module Dependabot
|
|
103
129
|
[head_sha, diff]
|
104
130
|
end
|
105
131
|
|
132
|
+
sig { params(sha: String).returns(String) }
|
106
133
|
def reset(sha)
|
107
134
|
run_shell_command("git reset --hard #{sha}")
|
108
135
|
end
|
109
136
|
|
137
|
+
sig { override.returns(String) }
|
110
138
|
def clean
|
111
139
|
run_shell_command("git clean -fx .")
|
112
140
|
end
|
113
141
|
|
142
|
+
sig { params(args: String, kwargs: T::Boolean).returns(String) }
|
114
143
|
def run_shell_command(*args, **kwargs)
|
115
|
-
Dir.chdir(path) { SharedHelpers.run_shell_command(*args, **kwargs) }
|
144
|
+
Dir.chdir(path) { T.unsafe(SharedHelpers).run_shell_command(*args, **kwargs) }
|
116
145
|
end
|
117
146
|
|
147
|
+
sig { params(message: String).void }
|
118
148
|
def debug(message)
|
119
149
|
Dependabot.logger.debug("[workspace] #{message}")
|
120
150
|
end
|
data/lib/dependabot/workspace.rb
CHANGED
@@ -1,16 +1,28 @@
|
|
1
|
-
# typed:
|
1
|
+
# typed: strong
|
2
2
|
# frozen_string_literal: true
|
3
3
|
|
4
|
+
require "sorbet-runtime"
|
4
5
|
require "dependabot/workspace/git"
|
5
6
|
|
6
7
|
module Dependabot
|
7
8
|
module Workspace
|
8
|
-
|
9
|
+
extend T::Sig
|
10
|
+
|
11
|
+
@active_workspace = T.let(nil, T.nilable(Dependabot::Workspace::Git))
|
9
12
|
|
10
13
|
class << self
|
14
|
+
extend T::Sig
|
15
|
+
|
16
|
+
sig { returns(T.nilable(Dependabot::Workspace::Git)) }
|
11
17
|
attr_accessor :active_workspace
|
12
18
|
end
|
13
19
|
|
20
|
+
sig do
|
21
|
+
params(
|
22
|
+
repo_contents_path: String,
|
23
|
+
directory: T.any(Pathname, String)
|
24
|
+
).void
|
25
|
+
end
|
14
26
|
def self.setup(repo_contents_path:, directory:)
|
15
27
|
Dependabot.logger.debug("Setting up workspace in #{repo_contents_path}")
|
16
28
|
|
@@ -22,6 +34,7 @@ module Dependabot
|
|
22
34
|
@active_workspace = Dependabot::Workspace::Git.new(full_path)
|
23
35
|
end
|
24
36
|
|
37
|
+
sig { params(memo: T.nilable(String)).returns(T.nilable(T::Array[Dependabot::Workspace::ChangeAttempt])) }
|
25
38
|
def self.store_change(memo:)
|
26
39
|
return unless @active_workspace
|
27
40
|
|
@@ -30,6 +43,7 @@ module Dependabot
|
|
30
43
|
@active_workspace.store_change(memo)
|
31
44
|
end
|
32
45
|
|
46
|
+
sig { void }
|
33
47
|
def self.cleanup!
|
34
48
|
return unless @active_workspace
|
35
49
|
|
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.237.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-11-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aws-sdk-codecommit
|
@@ -101,7 +101,7 @@ dependencies:
|
|
101
101
|
version: '0.96'
|
102
102
|
- - "<"
|
103
103
|
- !ruby/object:Gem::Version
|
104
|
-
version: '0.
|
104
|
+
version: '0.105'
|
105
105
|
type: :runtime
|
106
106
|
prerelease: false
|
107
107
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -111,21 +111,21 @@ dependencies:
|
|
111
111
|
version: '0.96'
|
112
112
|
- - "<"
|
113
113
|
- !ruby/object:Gem::Version
|
114
|
-
version: '0.
|
114
|
+
version: '0.105'
|
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.11
|
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.11
|
129
129
|
- !ruby/object:Gem::Dependency
|
130
130
|
name: faraday-retry
|
131
131
|
requirement: !ruby/object:Gem::Requirement
|
@@ -188,6 +188,20 @@ dependencies:
|
|
188
188
|
- - "<"
|
189
189
|
- !ruby/object:Gem::Version
|
190
190
|
version: '7.0'
|
191
|
+
- !ruby/object:Gem::Dependency
|
192
|
+
name: opentelemetry-sdk
|
193
|
+
requirement: !ruby/object:Gem::Requirement
|
194
|
+
requirements:
|
195
|
+
- - "~>"
|
196
|
+
- !ruby/object:Gem::Version
|
197
|
+
version: '1.3'
|
198
|
+
type: :runtime
|
199
|
+
prerelease: false
|
200
|
+
version_requirements: !ruby/object:Gem::Requirement
|
201
|
+
requirements:
|
202
|
+
- - "~>"
|
203
|
+
- !ruby/object:Gem::Version
|
204
|
+
version: '1.3'
|
191
205
|
- !ruby/object:Gem::Dependency
|
192
206
|
name: parser
|
193
207
|
requirement: !ruby/object:Gem::Requirement
|
@@ -326,20 +340,34 @@ dependencies:
|
|
326
340
|
- - "~>"
|
327
341
|
- !ruby/object:Gem::Version
|
328
342
|
version: '1.3'
|
343
|
+
- !ruby/object:Gem::Dependency
|
344
|
+
name: rspec-sorbet
|
345
|
+
requirement: !ruby/object:Gem::Requirement
|
346
|
+
requirements:
|
347
|
+
- - "~>"
|
348
|
+
- !ruby/object:Gem::Version
|
349
|
+
version: 1.9.2
|
350
|
+
type: :development
|
351
|
+
prerelease: false
|
352
|
+
version_requirements: !ruby/object:Gem::Requirement
|
353
|
+
requirements:
|
354
|
+
- - "~>"
|
355
|
+
- !ruby/object:Gem::Version
|
356
|
+
version: 1.9.2
|
329
357
|
- !ruby/object:Gem::Dependency
|
330
358
|
name: rubocop
|
331
359
|
requirement: !ruby/object:Gem::Requirement
|
332
360
|
requirements:
|
333
361
|
- - "~>"
|
334
362
|
- !ruby/object:Gem::Version
|
335
|
-
version: 1.
|
363
|
+
version: 1.57.2
|
336
364
|
type: :development
|
337
365
|
prerelease: false
|
338
366
|
version_requirements: !ruby/object:Gem::Requirement
|
339
367
|
requirements:
|
340
368
|
- - "~>"
|
341
369
|
- !ruby/object:Gem::Version
|
342
|
-
version: 1.
|
370
|
+
version: 1.57.2
|
343
371
|
- !ruby/object:Gem::Dependency
|
344
372
|
name: rubocop-performance
|
345
373
|
requirement: !ruby/object:Gem::Requirement
|
@@ -514,7 +542,7 @@ licenses:
|
|
514
542
|
- Nonstandard
|
515
543
|
metadata:
|
516
544
|
bug_tracker_uri: https://github.com/dependabot/dependabot-core/issues
|
517
|
-
changelog_uri: https://github.com/dependabot/dependabot-core/releases/tag/v0.
|
545
|
+
changelog_uri: https://github.com/dependabot/dependabot-core/releases/tag/v0.237.0
|
518
546
|
post_install_message:
|
519
547
|
rdoc_options: []
|
520
548
|
require_paths:
|