#ci #appveyor #pizza #api

happv

Rust 中最小的 AppVeyor API 库

3 个版本

使用旧 Rust 2015

0.1.2 2016年9月14日
0.1.1 2016年9月13日
0.1.0 2016年9月13日

#673 in 测试


betsy 中使用

Apache-2.0

16KB
239 代码行

happv

travis-ci appveyor
Build Status [Build Status]

Rust 中最小的 AppVeyor API 库。

警告:这是 AppVeyor REST API 的部分实现。我只需要以下端点

  • 获取项目列表 - GET /api/projects
  • 添加项目 - POST /api/projects
  • 删除项目 - DELETE /api/projects/{accountName}/{projectSlug}

以下尚未实现

  • 获取项目的最后一个构建 - GET /api/projects/{accountName}/{projectSlug}
  • 取消构建 - DELETE /api/builds/{accountName}/{projectSlug}/{buildVersion}

PRs 欢迎实现其他端点和/或 Build Worker API。

完整文档可以在 这里 找到。

用法

此 crate 在 crates.io 上,可以通过将 happv 添加到项目的 Cargo.toml 依赖项中来使用。

[dependencies]
happv = "0.1.*"

并将以下内容添加到 crate 根目录

extern crate happv;

示例

如何在 AppVeyor 上获取项目列表

use happv::AppVeyor;

let happv = AppVeyor::new(env!("APPVEYOR"));
let result = happv.get_projects().unwrap();

assert!(0 < result.len());

println!("Get project list:");
for i in result.into_iter() {
    println!("\tId:{} Slug:{}", i.project_id, i.slug);
}

贡献

规则

  • 始终为新功能编写测试
  • 在实现新端点时,始终使用测试夹具(见提示)并使用 enable_test_mode 编写测试。
  • 在我找到更好的方式来分离集成测试之前,使用 [ignore] 装饰这些测试,以免触发 travis。

提示

您可能会发现从缓存的 JSON 响应副本工作很容易。我已经将原始测试夹具放在 tests/fixtures 中。

检索集合或单个项目

curl --silent --header 'Authorization: Bearer '$APPVEYOR \
  --request GET https://ci.appveyor.com/api/projects

取消

curl --silent --header 'Authorization: Bearer '$APPVEYOR \
  --request DELETE https://ci.appveyor.com/api/builds/booyaa/hai/1.0.11

添加/修改条目

curl --silent --header 'Authorization: Bearer '$APPVEYOR \
  --header 'Content-Type: application/json' \
  --request POST https://ci.appveyor.com/api/projects \
  -d '{"repositoryProvider" : "gitHub", "repositoryName" : "booyaa/hello-homu"}'

版权

版权 2016 Mark Sta Ana。

根据您的要求,在 Apache 许可证 2.0 版本 <LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0> 下许可。此文件可能不按这些条款复制、修改或分发。

依赖关系

~6.5MB
~147K SLoC