#rest #strongly-typed #api-bindings #bugzilla

bugzilla_query

通过远程 Bugzilla 实例访问缺陷

20 个版本 (4 个稳定版)

1.1.0 2023 年 11 月 13 日
1.0.2 2023 年 1 月 25 日
0.9.1 2022 年 11 月 29 日
0.8.1 2022 年 7 月 21 日

#639网页编程


acorns 中使用

Apache-2.0

21KB
298 代码行

bugzilla_query

Crates.io Apache-2.0 license Documentation

CI tests Dependency status

通过远程 Bugzilla 实例访问缺陷。

描述

bugzilla_query crate 是一个 Rust 库,可以使用其 REST API 查询 Bugzilla 实例。它返回请求缺陷的强类型表示。

此库不提供创建或修改缺陷的功能。访问是只读的。

使用方法

基本匿名查询

未登录,搜索单个缺陷并检查其负责人

use tokio;
use bugzilla_query::BzInstance;

#[tokio::main]
async fn main() -> Result<(), Box<dyn Error>> {
    let bugzilla = BzInstance::at("https://bugzilla.redhat.com".to_string())?;

    let bug = bugzilla.bug("1906883").await?;

    assert_eq!(bug.assigned_to, "Marek Suchánek");

    Ok(())
}

高级查询

使用 API 密钥登录 Bugzilla。搜索属于 rust 组件的 Fedora 36 上的所有缺陷。检查是否有多个缺陷

use tokio;
use bugzilla_query::{Auth, BzInstance, Pagination};

#[tokio::main]
async fn main() -> Result<(), Box<dyn Error>> {
    let bugzilla = BzInstance::at("https://bugzilla.redhat.com".to_string())?
        .authenticate(Auth::ApiKey("My API Key".to_string()))
        .paginate(Pagination::Unlimited);

    let query = "component=rust&product=Fedora&version=36";

    let bugs = bugzilla.search(query).await?;

    assert!(bugs.len() > 1);

    Ok(())
}

另请参阅

依赖项

~5–17MB
~247K SLoC