8 个不稳定版本 (3 个破坏性更新)
0.4.0 | 2022年11月4日 |
---|---|
0.3.2 | 2022年10月30日 |
0.2.1 | 2022年10月1日 |
0.2.0 | 2022年9月25日 |
0.1.0-rc1 | 2022年8月22日 |
#1361 in 网页编程
每月30次下载
1MB
19K SLoC
帕利亚:Rust 的异步 PagerDuty API
帕利亚利用官方的 PagerDuty OpenAPI Swagger 规范 来生成模型和模拟服务器存根,以紧密匹配实际的 PagerDuty API 行为。帕利亚的异步范式在 Hyper 和 Tokio 上运行,测试是在与 OpenAPI 规范响应匹配的 Prism 服务器上运行的。
安装
将以下内容添加到您的 Cargo.toml
文件中。
[dependencies]
praiya = "*"
API
文档
帕利亚目前实现了以下 API 端点
- abilities
- add_ons
- analytics
- audit
- business_services
- escalation_policies
- extension_schemas
- extensions
- incidents
- log_entries
- maintenance_windows
- notifications
- on_calls
- priorities
- response_plays
- rulesets
- schedules
- service_dependencies
- services
- slack_connections
- tags
- teams
- users
- vendors
用法
连接到 PagerDuty API 服务器
一个新的 Praiya
客户端接受 PagerDuty API 令牌并将构建 SSL 上下文
praiya::Praiya::new("PAGERDUTY_TOKEN");
示例
列出事件
列出您组织中被触发和确认的事件
use praiya::ParamsBuilder;
use futures_util::TryStreamExt;
let pagerduty = praiya::Praiya::new("PAGERDUTY_TOKEN");
let mut opts_builder = praiya::endpoints::incidents::ListIncidentsParamsBuilder::new();
opts_builder.statuses(vec!["triggered", "acknowledged"]);
let opts = opts_builder.build();
async move {
let incidents: Vec<praiya::models::Incident> = pagerduty
.incidents("[email protected]")
.list_incidents(opts)
.try_collect()
.await
.expect("Unable to list PagerDuty incidents");
};
开发
欢迎贡献,请遵循以下建议。
构建存根
序列化存根是通过 Swagger 库 生成的。要生成这些文件,请使用以下
mvn -D org.slf4j.simpleLogger.defaultLogLevel=debug compiler:compile generate-resources
模拟测试服务器
模拟服务器使用 Prism 项目针对官方 PagerDuty API 规范的 分支 运行,以保持 Praiya CI 管道的稳定性。
使用 Docker Compose 启动模拟服务器
docker-compose up -d
或者使用 npm 库。
npm install -g @stoplight/prism-cli
# for example
prism mock https://raw.githubusercontent.com/fussybeaver/pagerduty-api-schema/praiya-master/reference/REST/openapiv3.json
测试
为了运行测试,将客户端指向适当的模拟服务器
对于 Slack API
env PAGERDUTY_API_ENDPOINT=http://127.0.0.1:8080 RUST_LOG=praiya=debug cargo test slack
对于默认 API
env PAGERDUTY_API_ENDPOINT=http://127.0.0.1:8081 RUST_LOG=praiya=debug cargo test incidents
env PAGERDUTY_API_ENDPOINT=http://127.0.0.1:8081 RUST_LOG=praiya=debug cargo test services
...
文档
此 README 是使用 cargo-readme 生成的
cargo readme --no-title > README.md
许可证
本软件根据自由的 Apache 许可证 2.0 许可
许可证:Apache-2.0
依赖项
~17–30MB
~538K SLoC