Repository navigation
Bound each gh attempt at 30s, so a failing call ends as soon as before - #12
Merged
Merged
Conversation
0.2.3 doubled a busy call's attempts, to eight, and each can still run to GH_TIMEOUT_SECONDS. With that at 60s, a call whose every attempt stalls took 8 x 60 + 45 = 525s to fail, against 325s in 0.2.2, and a workflow that sized its slot or record job's timeout-minutes around one failing call could now see the job cancelled at its cap instead of failing with a message. At 30s the same call fails in 8 x 30 + 45 = 285s, or about 345s with a rate-limited answer and its 60s wait, back near 0.2.2's figure, so a cap sized for 0.2.2 holds again. A healthy call has room: GitHub ends any request that takes it more than 10 seconds to process, and these calls are single requests or a page or two. The live job's cap goes back to the 20 minutes it had before 0.2.3, which holds two such calls with room to spare. The version goes to 0.2.4.
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.
0.2.3 doubled a busy call's attempts, to eight, and each attempt can still run to
GH_TIMEOUT_SECONDS. With that at 60s, a call whose every attempt stalls took 8 x 60 + 45 = 525s to fail, where 0.2.2 took 4 x 60 + 85 = 325s. A workflow that sized its slot or record job'stimeout-minutesaround one failing call could then see the job cancelled at its cap during an API outage, instead of failing with a message. A job reading the ledger once per leg, under a cap sized for 0.2.2, no longer held two such calls.Change
GH_TIMEOUT_SECONDSgoes from 60 to 30. The same call now fails in 8 x 30 + 45 = 285s, or about 345s with a rate-limited answer and its 60s wait. That is back near 0.2.2's figure, so a cap sized for 0.2.2 holds again.A shorter timeout adds no requests in the healthy path. The rate-limit handling is unchanged: one retry, after GitHub's documented minimum wait of a minute.
I ran these on a Mac: the unit tests on Python 3.14,
ruff format --check,ruff check,mypyandactionlint. CI runs the live check.The version goes to 0.2.4.