3 个版本
0.1.1 | 2022 年 10 月 30 日 |
---|---|
0.1.0 | 2022 年 9 月 8 日 |
0.1.0-rc1 | 2022 年 8 月 22 日 |
9 在 #pager-duty 中排名 9
每月 32 次下载
在 praiya 中使用
8KB
126 行
Praiya:Rust 的异步 PagerDuty API
Praiya 利用官方的 PagerDuty OpenAPI swagger 规范 来生成模型和模拟服务器存根,以便与真实的 PagerDuty API 行为紧密匹配。Praiya 的异步范式运行在 Hyper 和 Tokio 上,测试是在与 OpenAPI 规范响应匹配的 Prism 服务器上运行的。
安装
将以下内容添加到您的 Cargo.toml
文件中。
[dependencies]
praiya = "*"
API
文档
Praiya 目前已实现了以下 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
模拟测试服务器
模拟服务器在官方PagerDuty API方案的分支上,使用Prism项目运行,以维护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 License 2.0许可证授权
许可证:Apache-2.0
依赖关系
~1.5MB
~35K SLoC