1 unstable release
0.1.0 | Aug 6, 2019 |
---|
#47 in #consumer
21KB
479 lines
This is a work in progress!
Please don't put it into production yet.
What's there?
Not a whole lot, yet. The list of examples is pretty exhaustive.
Envelope
Result type
Every endpoint returns Result<GitHubApiResult<T>, GitHubApiError>
.
GitHubApiResult
pub struct GitHubApiResult<T> {
pub result: T,
pub raw_result: String,
pub limits: Option<LimitRemainingReset>,
pub owner: Option<String>,
pub repository: Option<String>,
pub next_page: Option<u64>,
}
GitHubApiError
pub enum GitHubApiError {
NotImplemented,
JsonError((JsonError, String)),
GitHubError((String, String)),
ReqwestError(ReqwestError),
}
Examples
Get rate limit
let gh = GitHubApi::new(&username, &password);
let result = gh.get_rate_limit();
println!("{:#?}", result);
Get license
let gh = GitHubApi::new(&username, &password);
let license = gh.get_license("segfaultsourcery", "githubapi");
println!("{:#?}", license);
Get releases
let gh = GitHubApi::new(&username, &password);
for page in gh.get_releases("segfaultsourcery", "githubapi") {
println!("{:#?}", page);
}
Get tags
let gh = GitHubApi::new(&username, &password);
for page in gh.get_tags("segfaultsourcery", "githubapi") {
println!("{:#?}", page);
}
Dependencies
~25MB
~508K SLoC