Gracefully handle github api overload #128
Merged
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.
Bug Overview: ridectl mistakenly believes it is outdated whenever the GitHub API is overloaded. However, there is no update available, it believes it is outdated even if you have the latest version of ridectl.
Bug Impact: When ridectl beleives it is outdated, it halts what it is doing and creates a blocking user interaction prompt asking user if they want to update. This behavior of blocking and telling users to repeatedly update even though they are already on the latest version and no updates are availabile is very confusing for users (especially if the user does agree to update every time they are prompted, again and again, perhaps user will get stuck in a loop and not even realize they can skip this step and still use the tool...). Not only that, but by blocking on user input for no reason it breaks the ability to use ridectl within automated scripts.
Bug Repro steps:
Expected behavior: ridectl will work as normal, except perhaps with a warning message saying it was unable to check the version.
Observed behavior: ridectl errantly claims it is outdated and then completely halts, blocks waiting indefinitely for input on STDIN.
Fix