1 个不稳定版本
0.6.2 | 2021年4月21日 |
---|
#502 在 HTTP客户端
28 每月下载
在 4 个包中(直接使用 3 个)使用
260KB
7.5K SLoC
hubcaps
GitHub的Rust接口
安装
将以下内容添加到您的 Cargo.toml
文件中
[dependencies]
hubcaps = "0.6"
使用方法
基本使用需要一个用户代理字符串,并可选择一个 hubcaps::Credentials
版本,以便以特定GitHub用户的身份进行请求。
对于用户认证请求,您通常希望使用 hubcaps::Credentials::Token
与一个 个人访问令牌。
use hubcaps::{Credentials, Github};
fn main() {
let github = Github::new(
"my-cool-user-agent/0.1.0",
Credentials::Token("personal-access-token".to_string()),
);
}
GitHub实例定义了访问API服务的函数,这些函数与它们的URL结构紧密映射。
作为一种惯例,期望接收参数的API方法表示为接受表示这些参数的结构的函数,并提供一个可选的构建器接口以方便构建。
请参阅 示例目录 以获取一些入门示例
仓库
大多数GitHub服务的参考点是仓库
let repo = github.repo("user", "repo");
有了仓库实例在手,您可以访问许多子服务,如 labels
、deployments
、pulls
、issues
、releases
等。这些都是从仓库接口导出的命名函数。
请参阅 示例目录
分支
分支是列出仓库分支的服务
let branches = repo.branches();
标签
标签是用于将名称标记在资源(如问题和拉取请求)上的服务,您可以稍后根据名称对其进行分组和筛选。
use hubcaps::labels::LabelOptions;
let labels = repo.labels();
// create new labels
labels.create(
&LabelOptions::new(
"rustic", "ccc"
)
)
部署
部署是用于编排从GitHub仓库获取的应用程序部署的服务
let deployments = repo.deployments();
请参阅 示例目录
拉取请求
拉取请求是针对仓库发出代码更改请求的服务
let pulls = repo.pulls();
请参阅 示例目录
问题
问题是跟踪仓库中错误的服务
let issues = repo.issues();
请参阅 示例目录
版本发布
版本发布是一个用于跟踪版本化库或应用程序稳定版本更改的服务
let releases = repo.releases();
代码片段
代码片段是一个用于微存储库的服务
let gists = github.gists();
请参阅示例目录中的示例
钩子
钩子是一个用于管理存储库钩子的服务
let hooks = repo.hooks();
请参阅示例目录中的示例
搜索
搜索提供了对索引数据的原始字符串查询搜索。目前仅支持搜索问题
let search_issues = github.search().issues();
团队
团队是一个用于列出存储库和组织团队的服务
let teams = repo.teams();
请参阅示例目录中的示例
Doug Tangren (softprops) 2015-2020
依赖关系
~14–31MB
~593K SLoC