While still no recommended, these methods are more recommended than
users creating their own. These will continue to work even when
internals change, whereas user configured readers or writers may not.
With this we also need to check for exceptions when calling
"/user", because now we don't know what kind of credentials
are coming from the provider, and we could be requesting
a "/user" when the type of credentials is not supported
Here we have another example of trying to do something clever when simplicity is the better choice.
Rather than trying to guess the rate limit record for a request based on the url path,
I added an enumeration which can be set on the request to say which rate limit record to applies.
This is simpler, safer, and faster than trying to guess the rate limit from the url path.
Jenkins Blue Ocean made interesting design choices relating github-api interactions.
They mostly reused the existing API and OM, but in a few places they chose to
implement their own object mapping independent of this project. This is fine
as long as nothing in this project ever changes, including internals such
as ObjectMapper configuration or behavior.
Recent release have made changes to those internals which break assumptions made
in Blue Ocean.
This change exposes this project's MappingReader and MappingWriter to allow
for a fix to Blue Ocean requiring only minimal changes.
This doesn't prevent future changes from breaking Blue Ocean but at least makes
them much less likely.
Fixes#780
This is a stripped down rate limit checking implmentation that handles the infrastructure
of deciding how to get rate limit information and leaves it to other implementers to
decided what kind of checks they want to do and how long they want to wait.
The implmentation supports checkers that sleep less than the full time until the
rate limit is expected to reset, allowing for polling and notifying clients of why their query
is not returning.
A basic checker which sleeps until the rate limit is expected to reset is included as working example..