dependabot-nix 0.392.0 → 0.393.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '0854f16dea1cbd1246cd58a76f290198c7bd4f124681b2aa1e2b28063e88b30c'
4
- data.tar.gz: ce83d066b3331ed94082a1c021f21d72054f5b6ecdade603cc39cc91b98791d8
3
+ metadata.gz: '09f3dd2c398997b22338a69338bdd464270f86f03a2e7656f4ddb342a79a813d'
4
+ data.tar.gz: d768ac393fc688222704845e790a73c69fcb030b50e31543719a24546fafbaf7
5
5
  SHA512:
6
- metadata.gz: 137558c3e44e6dcc6fa7013982d6feea2f79f19ea669538453a76d5d0f2c32c04ada2a07a51f58682509740274d553efeb97345a1d5bbf0ed06653304da69c7b
7
- data.tar.gz: c0ee7a47fbee3e1e22294db2cfda26ef2ccf69e163845a42261795cc5246e91089cc8f136c7e7254d2595d1ca7874a268c6cd5a0455ffde8f168ed9ef113617e
6
+ metadata.gz: 18250664fddb5c46b30a64c6881632cdce5be47017a0ef03ae3b0531f8b24392917b54e94b5cc03699ce057910da2202a0648ef8b10c635070cc3b822ff46bbe
7
+ data.tar.gz: 59099630207f6355731b75ff3e15154d3708d4b6bb5163dc88e1093364d1fce992370b79b88663956c79339f85e418cccabea808c8f080adbd959ed277406d6d
@@ -89,7 +89,7 @@ module Dependabot
89
89
 
90
90
  Dependabot.logger.info("Fetching branch-tip history for Nix flake input: #{dependency.name}")
91
91
  entries = fetch_activity_entries(T.must(url), T.must(ref))
92
- return nil unless entries.is_a?(Array) && entries.any?
92
+ return nil unless entries.any?
93
93
 
94
94
  trim_entries_to_locked_sha(entries)
95
95
  rescue Octokit::Error => e
@@ -106,31 +106,34 @@ module Dependabot
106
106
  nil
107
107
  end
108
108
 
109
- sig { params(url: String, ref: String).returns(T.untyped) }
109
+ sig { params(url: String, ref: String).returns(T::Array[Sawyer::Resource]) }
110
110
  def fetch_activity_entries(url, ref)
111
- T.unsafe(github_client).get( # rubocop:disable Sorbet/ForbidTUnsafe
111
+ response = github_client.get(
112
112
  "/repos/#{github_repo_path(url)}/activity",
113
113
  ref: "refs/heads/#{ref}",
114
114
  activity_type: ACTIVITY_TYPES,
115
115
  per_page: 100
116
116
  )
117
+ raise TypeError, "GitHub activity response must be an array" unless response.is_a?(Array)
118
+
119
+ response
117
120
  end
118
121
 
119
122
  # Trim to entries up to and including the currently locked SHA, stopping
120
123
  # once that SHA is reached so we don't introduce candidates older than
121
124
  # `dependency.version`.
122
- sig { params(entries: T::Array[T.untyped]).returns(T::Array[T::Hash[Symbol, T.untyped]]) }
125
+ sig { params(entries: T::Array[Sawyer::Resource]).returns(T::Array[T::Hash[Symbol, T.untyped]]) }
123
126
  def trim_entries_to_locked_sha(entries)
124
127
  locked = dependency.version
125
128
  result = T.let([], T::Array[T::Hash[Symbol, T.untyped]])
126
129
  entries.each do |e|
127
- after_sha = e[:after]
128
- result << { tag: after_sha, release_date: format_timestamp(e[:timestamp]) }
130
+ after_sha = activity_string(e, :after)
131
+ result << { tag: after_sha, release_date: format_timestamp(T.cast(e[:timestamp], T.nilable(Object))) }
129
132
 
130
133
  next unless locked
131
134
  break if after_sha == locked
132
135
 
133
- if e[:before] == locked
136
+ if T.cast(e[:before], Object) == locked
134
137
  result << { tag: locked, release_date: nil } unless result.last&.fetch(:tag) == locked
135
138
  break
136
139
  end
@@ -138,14 +141,22 @@ module Dependabot
138
141
  result
139
142
  end
140
143
 
141
- sig { params(timestamp: T.untyped).returns(T.nilable(String)) }
144
+ sig { params(timestamp: T.nilable(Object)).returns(T.nilable(String)) }
142
145
  def format_timestamp(timestamp)
143
- return nil if timestamp.nil?
144
- return timestamp.iso8601 if timestamp.respond_to?(:iso8601)
146
+ return if timestamp.nil?
147
+ return timestamp.iso8601 if timestamp.is_a?(Time)
145
148
 
146
149
  timestamp.to_s
147
150
  end
148
151
 
152
+ sig { params(entry: Sawyer::Resource, key: Symbol).returns(String) }
153
+ def activity_string(entry, key)
154
+ value = T.cast(entry[key], Object)
155
+ return value if value.is_a?(String)
156
+
157
+ raise TypeError, "GitHub activity #{key} must be a string"
158
+ end
159
+
149
160
  sig { params(url: T.nilable(String), ref: T.nilable(String)).returns(T::Boolean) }
150
161
  def use_activity_api?(url, ref)
151
162
  return false unless url && ref
@@ -1,4 +1,4 @@
1
- # typed: strict
1
+ # typed: strong
2
2
  # frozen_string_literal: true
3
3
 
4
4
  require "sorbet-runtime"
@@ -173,17 +173,24 @@ module Dependabot
173
173
  sig { returns(T.nilable(String)) }
174
174
  def fetch_latest_version_for_tag
175
175
  tag = latest_version_tag
176
- tag&.fetch(:commit_sha)
176
+ tag && tag_commit_sha(tag)
177
177
  end
178
178
 
179
- sig { returns(T.nilable(T::Hash[Symbol, T.untyped])) }
179
+ sig { returns(T.nilable(T::Hash[Symbol, Object])) }
180
180
  def latest_version_tag
181
181
  @latest_version_tag ||= T.let(
182
182
  git_commit_checker.local_tag_for_latest_version(update_cooldown),
183
- T.nilable(T::Hash[Symbol, T.untyped])
183
+ T.nilable(T::Hash[Symbol, Object])
184
184
  )
185
185
  end
186
186
 
187
+ sig { params(tag: T::Hash[Symbol, Object]).returns(T.nilable(String)) }
188
+ def tag_commit_sha(tag)
189
+ return tag.commit_sha if tag.is_a?(Dependabot::GitTagDetails)
190
+
191
+ T.cast(tag[:commit_sha], T.nilable(String))
192
+ end
193
+
187
194
  # --- Versioned branch support ---
188
195
 
189
196
  sig { returns(T::Array[Dependabot::DependencyRequirement]) }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dependabot-nix
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.392.0
4
+ version: 0.393.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dependabot
@@ -15,14 +15,14 @@ dependencies:
15
15
  requirements:
16
16
  - - '='
17
17
  - !ruby/object:Gem::Version
18
- version: 0.392.0
18
+ version: 0.393.0
19
19
  type: :runtime
20
20
  prerelease: false
21
21
  version_requirements: !ruby/object:Gem::Requirement
22
22
  requirements:
23
23
  - - '='
24
24
  - !ruby/object:Gem::Version
25
- version: 0.392.0
25
+ version: 0.393.0
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: debug
28
28
  requirement: !ruby/object:Gem::Requirement
@@ -263,7 +263,7 @@ licenses:
263
263
  - MIT
264
264
  metadata:
265
265
  bug_tracker_uri: https://github.com/dependabot/dependabot-core/issues
266
- changelog_uri: https://github.com/dependabot/dependabot-core/releases/tag/v0.392.0
266
+ changelog_uri: https://github.com/dependabot/dependabot-core/releases/tag/v0.393.0
267
267
  rdoc_options: []
268
268
  require_paths:
269
269
  - lib