https://github.com/jwodder/minigh
Minimal and opinionated GitHub REST API client
https://github.com/jwodder/minigh
available-on-crates-io client github rest-api rust
Last synced: about 2 months ago
JSON representation
Minimal and opinionated GitHub REST API client
- Host: GitHub
- URL: https://github.com/jwodder/minigh
- Owner: jwodder
- License: mit
- Created: 2025-05-31T21:45:56.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2026-04-01T05:53:08.000Z (3 months ago)
- Last Synced: 2026-04-30T07:39:23.559Z (about 2 months ago)
- Topics: available-on-crates-io, client, github, rest-api, rust
- Language: Rust
- Homepage:
- Size: 103 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 12
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://www.repostatus.org/#active)
[](https://github.com/jwodder/minigh/actions/workflows/test.yml)
[](https://www.rust-lang.org)
[](https://opensource.org/licenses/MIT)
[GitHub](https://github.com/jwodder/minigh) | [crates.io](https://crates.io/crates/minigh) | [Documentation](https://docs.rs/minigh) | [Issues](https://github.com/jwodder/minigh/issues) | [Changelog](https://github.com/jwodder/minigh/blob/main/CHANGELOG.md)
`minigh` is a thin wrapper around [`ureq`](https://crates.io/crates/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][ratelimit],
including waiting between mutating requests and waiting & retrying in
response to rate-limit errors
- Automatic retrying on 5xx errors with exponential backoff
[ratelimit]: https://docs.github.com/en/rest/guides/best-practices-for-using-the-rest-api?apiVersion=2022-11-28#dealing-with-rate-limits