Crate minigh

Source
Expand description

minigh is a thin wrapper around ureq for interacting with the GitHub REST API that aims to make common operations easier & simpler. Notable features include:

  • When making a request, you only need to specify the part of the URL after the API base URL.

  • Support for iterating over paginated results

  • Most request methods return decoded JSON.

  • Bring Your Own Schema: minigh does not define any types for values returned by the API; that is left up to the user.

  • Errors raised for 4xx and 5xx responses include the body of the response in the error value, and this body is included when displaying with {:#}.

  • The Accept and X-GitHub-Api-Version headers are automatically set to their recommended values.

  • Follows GitHub’s recommendations for dealing with rate limits, including waiting between mutating requests and waiting & retrying in response to rate-limit errors

  • Automatic retrying on 5xx errors with exponential backoff

§Logging

minigh uses the log crate to log events. All messages are currently logged at the DEBUG level.

Structs§

Client
A client for the GitHub REST API
MethodConvertError
Error returned when trying to convert an ureq::http::Method that does not exist in Method to the latter type
PaginationIter
An iterator that performs paginated GET requests and yields the returned items.
ParseMethodError
Error returned by Method’s FromStr implementation
StatusError
Error returned when the server replies with a 4xx or 5xx status code

Enums§

BuildClientError
Error returned when constructing a Client fails
Method
The HTTP methods supported by minigh
RequestError
Error returned when an HTTP request fails