Handle transient GraphQL responses without data in daily update#1
Merged
Handle transient GraphQL responses without data in daily update#1
Conversation
Review Summary by QodoHandle transient GraphQL responses without data node
WalkthroughsDescription• Handle missing GraphQL data node with retry logic instead of immediate failure • Extract and log API error messages for improved diagnostics • Implement adaptive backoff: 65 seconds for secondary rate limits, 10 seconds default • Preserve existing retry counting and maximum retry behavior Diagramflowchart LR
A["GraphQL Response"] --> B{"data node present?"}
B -->|Yes| C["Process data"]
B -->|No| D["Extract error message"]
D --> E["Log error details"]
E --> F{"Secondary rate limit?"}
F -->|Yes| G["Wait 65 seconds"]
F -->|No| H["Wait 10 seconds"]
G --> I{"Retry count exceeded?"}
H --> I
I -->|No| J["Retry request"]
I -->|Yes| K["Fatal exit"]
File Changes1. github/github.go
|
Code Review by Qodo
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Motivation
daily_updateworkflow was failing with repeatedError accessing data elementmessages when the GraphQL response lacked a top-leveldatanode.SearchUsersresilient to transient API responses and provide clearer logs for diagnosis.Description
SearchUsersingithub/github.goto detect when the top-leveldatanode is missing and retry instead of immediately exiting.datais missing, the code now extracts and logs the APImessagefield (viastrPropOrEmpty) to improve failure visibility.secondary rate limitthe retry wait is increased to 65 seconds (default was 10 seconds) before retrying.maxRetryCount.Testing
gofmt -w github/github.goto format the change successfully.go test ./...and all packages reported no test files and completed without errors.Codex Task