#github #api #consumer #typed #limit

githubapi

易于使用,强类型 GitHub API 消费者

1 个不稳定版本

0.1.0 2019 年 8 月 6 日

#46 in #consumer

MIT 许可协议

21KB
479 行代码(不包括注释)

这是一个正在进行中的项目!

请勿将其用于生产环境。

有哪些内容?

目前内容不多,示例列表相当详尽。

信封

结果类型

每个端点返回 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),
}

示例

获取速率限制

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

获取许可证

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

获取发布版本

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

获取标签

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

依赖

~22MB
~476K SLoC