secunit-capture 0.7.1

Native upstream capturers for secunit (gated behind cargo features).
Documentation
[package]
name = "secunit-capture"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
license.workspace = true
repository.workspace = true
categories.workspace = true
description = "Native upstream capturers for secunit (gated behind cargo features)."

[dependencies]
anyhow.workspace = true
serde.workspace = true
serde_json.workspace = true
chrono.workspace = true
tracing.workspace = true
secunit-core.workspace = true
jsonschema.workspace = true

# `deps` feature
tokio = { version = "1", features = ["rt", "macros", "process"], optional = true }
reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls", "blocking"], optional = true }
# `gix-reqwest` (and any `git`-implying feature) pulls a vulnerable `gix`
# tree in transitively, so we run rustsec library-only: `Database::open`
# + `report::Report::generate` are available without it; the advisory db
# is acquired over plain HTTPS instead (see `cargo_audit::capture`).
rustsec = { version = "0.30", default-features = false, optional = true }
tar = { version = "0.4", optional = true }
flate2 = { version = "1", optional = true }

# `github` feature
# octocrab 0.51 dropped jsonwebtoken from its default-off feature set; the JWT
# crypto backend must now be selected explicitly. `jwt-rust-crypto` matches the
# pure-Rust path octocrab enables by default and keeps us off the C aws-lc-rs
# backend, consistent with our rustls choice.
octocrab = { version = "0.51", default-features = false, features = ["default-client", "rustls", "rustls-ring", "jwt-rust-crypto"], optional = true }

[features]
default = []
aws = []
github = ["dep:octocrab", "dep:tokio", "dep:reqwest"]
deps = ["dep:reqwest", "dep:rustsec", "dep:tokio", "dep:tar", "dep:flate2"]
http = ["dep:reqwest", "dep:tokio"]
gcp = []

[dev-dependencies]
tempfile.workspace = true
pretty_assertions.workspace = true
serde_json.workspace = true
tokio = { version = "1", features = ["rt", "macros"] }
wiremock = "0.6"