Repository navigation
perf: make unchanged data free with conditional requests - #62
Merged
Merged
Conversation
Every GET now carries If-None-Match with the ETag GitHub last sent for that URL. A 304 costs no REST budget; the transport replays the stored body as a 200, with the 304's fresh rate-limit headers so Pacing sees the live budget. Replayed responses are not counted toward a cycle's measured cost. The GraphQL POST passes straight through. The poller now gets one client per token for the life of the app (githubclient.Pool) so each token's cache survives between cycles; it used to build a new client per Repo per cycle. The cache is capped at 2000 responses per token, least recently used first. Closes #39
Skeyelab
force-pushed
the
perf/conditional-requests
branch
from
September 29, 2026 03:37
20f08ac to
d03ddaa
Compare
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.
Every GET now carries If-None-Match with the ETag GitHub last sent for
that URL. A 304 costs no REST budget; the transport replays the stored
body as a 200, with the 304's fresh rate-limit headers so Pacing sees
the live budget. Replayed responses are not counted toward a cycle's
measured cost. The GraphQL POST passes straight through.
The poller now gets one client per token for the life of the app
(githubclient.Pool) so each token's cache survives between cycles; it
used to build a new client per Repo per cycle. The cache is capped at
2000 responses per token, least recently used first.
Closes #39
Stack created with GitHub Stacks CLI • Give Feedback 💬