Skip to content

Commit 665a42e

Browse files
authored
Merge branch 'main' into global-graphql-batch-prefetch
2 parents 030c9f3 + c02dcfa commit 665a42e

File tree

2 files changed

+49
-39
lines changed

2 files changed

+49
-39
lines changed

.github/workflows/lint.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ jobs:
1414
runs-on: ubuntu-latest
1515
steps:
1616
- uses: actions/checkout@v6.0.1
17+
with:
18+
ref: ${{ github.event.pull_request.head.ref || github.ref }}
1719

1820
- name: Setup Ruby
1921
uses: ruby/setup-ruby@v1.284.0

test/test_helper.rb

Lines changed: 47 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -282,53 +282,52 @@ def add_message(type, file, line_number, message)
282282
CACHE_FILE = File.expand_path("../.api-cache.json", __dir__)
283283
CACHE_TTL_SECONDS = 24 * 60 * 60 # 24 hours
284284

285+
# rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/MethodLength, Metrics/PerceivedComplexity
285286
def load_api_cache!
286287
return unless File.exist?(CACHE_FILE)
287288

288289
data = JSON.parse(File.read(CACHE_FILE))
289290
now = Time.now.to_i
290291
ttl = CACHE_TTL_SECONDS
291292

292-
if data["repos"]
293-
data["repos"].each do |key, entry|
294-
cached_at = entry["cached_at"]
295-
next unless cached_at
296-
next if now - cached_at.to_i > ttl
297-
298-
result = entry["value"]
299-
# Reconstruct a minimal object that responds to .full_name
300-
cached = if result.nil?
301-
nil
302-
else
303-
next unless result["full_name"]
304-
305-
Struct.new(:full_name).new(result["full_name"])
306-
end
307-
NewOctokit.class_variable_get(:@@repos)[key] = cached
308-
end
293+
data["repos"]&.each do |key, entry|
294+
cached_at = entry["cached_at"]
295+
next unless cached_at
296+
next if now - cached_at.to_i > ttl
297+
298+
result = entry["value"]
299+
# Reconstruct a minimal object that responds to .full_name
300+
cached = if result.nil?
301+
nil
302+
else
303+
next unless result["full_name"]
304+
305+
Struct.new(:full_name).new(result["full_name"])
306+
end
307+
NewOctokit.class_variable_get(:@@repos)[key] = cached
309308
end
310309

311-
if data["users"]
312-
data["users"].each do |key, entry|
313-
cached_at = entry["cached_at"]
314-
next unless cached_at
315-
next if now - cached_at.to_i > ttl
316-
317-
result = entry["value"]
318-
cached = if result.nil?
319-
nil
320-
else
321-
next unless result["login"]
322-
323-
Struct.new(:login).new(result["login"])
324-
end
325-
NewOctokit.class_variable_get(:@@users)[key] = cached
326-
end
310+
data["users"]&.each do |key, entry|
311+
cached_at = entry["cached_at"]
312+
next unless cached_at
313+
next if now - cached_at.to_i > ttl
314+
315+
result = entry["value"]
316+
cached = if result.nil?
317+
nil
318+
else
319+
next unless result["login"]
320+
321+
Struct.new(:login).new(result["login"])
322+
end
323+
NewOctokit.class_variable_get(:@@users)[key] = cached
327324
end
328-
rescue JSON::ParserError, StandardError => e
329-
warn "Failed to load API cache: #{e.message}"
325+
rescue StandardError => error
326+
warn "Failed to load API cache: #{error.message}"
330327
end
328+
# rubocop:enable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/MethodLength, Metrics/PerceivedComplexity
331329

330+
# rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/MethodLength, Metrics/PerceivedComplexity
332331
def save_api_cache!
333332
now = Time.now.to_i
334333
repos_data = {}
@@ -340,7 +339,11 @@ def save_api_cache!
340339

341340
repos_data[key.to_s] = {
342341
"cached_at" => now,
343-
"value" => value.nil? ? nil : { "full_name" => value.respond_to?(:full_name) ? value.full_name : value.to_s },
342+
"value" => if value.nil?
343+
nil
344+
else
345+
{ "full_name" => value.respond_to?(:full_name) ? value.full_name : value.to_s }
346+
end,
344347
}
345348
end
346349

@@ -350,14 +353,19 @@ def save_api_cache!
350353

351354
users_data[key.to_s] = {
352355
"cached_at" => now,
353-
"value" => value.nil? ? nil : { "login" => value.respond_to?(:login) ? value.login : value.to_s },
356+
"value" => if value.nil?
357+
nil
358+
else
359+
{ "login" => value.respond_to?(:login) ? value.login : value.to_s }
360+
end,
354361
}
355362
end
356363

357364
File.write(CACHE_FILE, JSON.pretty_generate({ "repos" => repos_data, "users" => users_data }))
358-
rescue StandardError => e
359-
warn "Failed to save API cache: #{e.message}"
365+
rescue StandardError => error
366+
warn "Failed to save API cache: #{error.message}"
360367
end
368+
# rubocop:enable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/MethodLength, Metrics/PerceivedComplexity
361369

362370
# Load cached API results at startup
363371
load_api_cache!

0 commit comments

Comments
 (0)