[package]
name = "bzr"
version = "0.1.2"
edition = "2021"
resolver = "3"
description = "A CLI for Bugzilla, inspired by gh"
license = "MIT"
rust-version = "1.84"
repository = "https://github.com/randomparity/bzr"
homepage = "https://github.com/randomparity/bzr"
keywords = ["bugzilla", "cli", "bug-tracker"]
categories = ["command-line-utilities"]

[features]
# OS keychain-backed API key storage (macOS Keychain, Windows Credential
# Manager, Linux Secret Service). Enabled by default; disable with
# --no-default-features to omit platform keyring backends.
default = ["keyring"]
keyring = ["dep:keyring", "dep:rpassword"]
# Exposes test helpers from the library for integration tests.
# Activated automatically via dev-dependency below.
test-helpers = ["dep:wiremock", "dep:tempfile"]

[dependencies]
base64 = "0.22"
# Keep clap below 4.6 to preserve Rust 1.84 / RHEL 9.6 compatibility.
clap = { version = ">=4.5.60, <4.6", features = ["derive"] }
reqwest = { version = "0.12", features = ["json", "rustls-tls-native-roots"], default-features = false }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
tokio = { version = "1", features = ["macros", "rt", "sync"] }
toml = "0.8"
dirs = "6"
tabled = "0.20"
thiserror = "2"
colored = "3"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
percent-encoding = "2"
url = "2"
quick-xml = "0.39"
# Optional: used only by test-helpers feature
wiremock = { version = ">=0.6, <0.6.5", optional = true }
tempfile = { version = "3", optional = true }
keyring = { version = "3", features = ["apple-native", "windows-native", "sync-secret-service", "crypto-rust"], optional = true }
rpassword = { version = "7", optional = true }

[dev-dependencies]
tempfile = "3"
wiremock = ">=0.6, <0.6.5"
bzr = { path = ".", features = ["test-helpers"], default-features = false }
keyring = { version = "3" }

[lints.clippy]
pedantic = { level = "warn", priority = -1 }
unwrap_used = "deny"
expect_used = "warn"
panic = "deny"
panic_in_result_fn = "deny"
unimplemented = "deny"
allow_attributes = "warn"
dbg_macro = "deny"
todo = "deny"
print_stdout = "deny"
print_stderr = "deny"
module_name_repetitions = "allow"
similar_names = "allow"
