Respect the http.RoundTripper contract #61
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.
Fixes #20
Without this, it's impossible to use
httpcache
together with this package, ashttpcache
expects the parent RoundTripper to respect the RoundTripper contract:ghinstallation currently does not comply with the contract, as it modifies the request headers (in addition to not closing the body in case of errors).
As a result of this, no request will ever result in a hit in the cache because ghinstallation modifies some of the request headers that the Github API includes in the Vary response header (Accept, Authorization).
As a hacky workaround until this bug is fixed in ghinstallation, you can add an intermediate roundtripper between httpcache and ghinstallation to clone the request, so that ghinstallation modifies the clone instead of the request passed by httpcache: