1 个不稳定版本

0.6.2 2021年4月21日

#502HTTP客户端

28 每月下载
4 个包中(直接使用 3 个)使用

MIT 许可证

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");

有了仓库实例在手,您可以访问许多子服务,如 labelsdeploymentspullsissuesreleases 等。这些都是从仓库接口导出的命名函数。

请参阅 示例目录

分支

分支是列出仓库分支的服务

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