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.
@@ -1,11 +1,37 @@
1
- # typed: true
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
- attr_reader :diff, :error, :id, :memo, :workspace
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: false
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
@@ -1,16 +1,28 @@
1
- # typed: true
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
- @active_workspace = nil
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
@@ -2,5 +2,5 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module Dependabot
5
- VERSION = "0.236.0"
5
+ VERSION = "0.237.0"
6
6
  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.236.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-10-26 00:00:00.000000000 Z
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.103'
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.103'
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.10
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.10
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.56.0
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.56.0
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.236.0
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: