43 个版本
0.6.2 | 2020年9月7日 |
---|---|
0.6.1 | 2020年6月26日 |
0.5.0 | 2018年10月29日 |
0.4.9 | 2018年6月29日 |
0.2.0 | 2016年3月20日 |
#825 in 网页编程
218 每月下载
用于 13 crates
250KB
7K SLoC
hubcaps
a Rust 对 GitHub 的接口
安装
将以下内容添加到您的 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");
有了 repo 实例,您可以访问许多子服务,如 labels
、deployments
、pulls
、issues
、releases 等。这些操作都是从 repo 接口导出的命名函数。
请参阅 示例目录 以获取示例
分支
分支是一个列出仓库分支的服务
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();
gists
Gists 是一个用于微型存储库的服务
let gists = github.gists();
请参阅 示例目录 以获取示例
hooks
hooks 是一个用于管理存储库钩子的服务
let hooks = repo.hooks();
请参阅 示例目录 以获取示例
search
搜索提供对索引数据的原始字符串查询搜索。目前仅支持搜索问题
let search_issues = github.search().issues();
teams
Teams 是一个列出存储库和组织团队的服务
let teams = repo.teams();
请参阅 示例目录 以获取示例
Doug Tangren (softprops) 2015-2020
依赖项
~15–30MB
~588K SLoC