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 网页编程

Download history 62/week @ 2024-03-24 184/week @ 2024-03-31 51/week @ 2024-04-07 65/week @ 2024-04-14 74/week @ 2024-04-21 72/week @ 2024-04-28 68/week @ 2024-05-05 79/week @ 2024-05-12 90/week @ 2024-05-19 67/week @ 2024-05-26 67/week @ 2024-06-02 30/week @ 2024-06-09 79/week @ 2024-06-16 111/week @ 2024-06-23 15/week @ 2024-06-30 5/week @ 2024-07-07

218 每月下载
用于 13 crates

MIT 许可

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 实例,您可以访问许多子服务,如 labelsdeploymentspullsissuesreleases 等。这些操作都是从 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();

请参阅 示例目录 以获取示例

搜索提供对索引数据的原始字符串查询搜索。目前仅支持搜索问题

let search_issues = github.search().issues();

teams

Teams 是一个列出存储库和组织团队的服务

let teams = repo.teams();

请参阅 示例目录 以获取示例

Doug Tangren (softprops) 2015-2020

依赖项

~15–30MB
~588K SLoC