dependabot-common 0.236.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 +17 -6
- data/lib/dependabot/config/update_config.rb +23 -5
- data/lib/dependabot/dependency_file.rb +84 -14
- data/lib/dependabot/dependency_group.rb +29 -5
- data/lib/dependabot/errors.rb +101 -13
- data/lib/dependabot/file_fetchers/base.rb +227 -93
- data/lib/dependabot/metadata_finders/base/changelog_finder.rb +13 -6
- data/lib/dependabot/pull_request_creator/github.rb +11 -8
- 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 +4 -2
- data/lib/dependabot/pull_request_creator/pr_name_prefixer.rb +10 -4
- 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 +23 -9
@@ -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
|
@@ -340,20 +340,34 @@ dependencies:
|
|
340
340
|
- - "~>"
|
341
341
|
- !ruby/object:Gem::Version
|
342
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
|
343
357
|
- !ruby/object:Gem::Dependency
|
344
358
|
name: rubocop
|
345
359
|
requirement: !ruby/object:Gem::Requirement
|
346
360
|
requirements:
|
347
361
|
- - "~>"
|
348
362
|
- !ruby/object:Gem::Version
|
349
|
-
version: 1.
|
363
|
+
version: 1.57.2
|
350
364
|
type: :development
|
351
365
|
prerelease: false
|
352
366
|
version_requirements: !ruby/object:Gem::Requirement
|
353
367
|
requirements:
|
354
368
|
- - "~>"
|
355
369
|
- !ruby/object:Gem::Version
|
356
|
-
version: 1.
|
370
|
+
version: 1.57.2
|
357
371
|
- !ruby/object:Gem::Dependency
|
358
372
|
name: rubocop-performance
|
359
373
|
requirement: !ruby/object:Gem::Requirement
|
@@ -528,7 +542,7 @@ licenses:
|
|
528
542
|
- Nonstandard
|
529
543
|
metadata:
|
530
544
|
bug_tracker_uri: https://github.com/dependabot/dependabot-core/issues
|
531
|
-
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
|
532
546
|
post_install_message:
|
533
547
|
rdoc_options: []
|
534
548
|
require_paths:
|