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

rust 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

rust pub enum GitHubApiError { NotImplemented, JsonError((JsonError, String)), GitHubError((String, String)), ReqwestError(ReqwestError), }

Examples

Get rate limit

rust let gh = GitHubApi::new(&username, &password); let result = gh.get_rate_limit(); println!("{:#?}", result);

Get license

rust let gh = GitHubApi::new(&username, &password); let license = gh.get_license("segfaultsourcery", "githubapi"); println!("{:#?}", license);

Get releases

rust let gh = GitHubApi::new(&username, &password); for page in gh.get_releases("segfaultsourcery", "githubapi") { println!("{:#?}", page); }

Get tags

rust let gh = GitHubApi::new(&username, &password); for page in gh.get_tags("segfaultsourcery", "githubapi") { println!("{:#?}", page); }