[package]
name = "pinner"
version = "0.0.13"
edition = "2021"
rust-version = "1.80"
description = "Secure CI/CD workflows by pinning mutable tags to immutable SHA-1 hashes. A high-performance Rust CLI that preserves YAML formatting and comments. Supports GitHub, GitLab, Bitbucket, Forgejo, and Docker image pinning."
authors = ["Fabio Falcinelli"]
license = "MIT"
repository = "https://github.com/ffalcinelli/pinner"
documentation = "https://docs.rs/pinner"
readme = "README.md"
keywords = ["github-actions", "security", "pinning", "hash", "workflow"]
categories = ["command-line-utilities", "development-tools"]
[dependencies]
clap = { version = "4.4", features = ["derive", "env"] }
tokio = { version = "1", features = ["full"] }
reqwest = { version = "0.13", default-features = false, features = ["json", "rustls"] }
serde = { version = "1.0", features = ["derive"] }
serde_yaml = "0.9"
serde_json = "1.0"
moka = { version = "0.12", features = ["future"] }
figment = { version = "0.10", features = ["toml", "yaml", "env"] }
toml = "1.1"
toml_edit = "0.25"
dirs = "6.0"
regex = "1.10"
async-trait = "0.1"
colored = "3.1"
chrono = "0.4"
thiserror = "2.0"
anyhow = "1.0"
tree-sitter = "0.26"
tree-sitter-yaml = "0.7.2"
reqwest-middleware = "0.5"
reqwest-retry = "0.9"
futures = "0.3"
rayon = "1.10"
similar = "3.1"
ignore = "0.4"
globset = "0.4"
semver = "1.0.28"
tracing = "0.1.44"
tracing-subscriber = { version = "0.3.23", features = ["env-filter"] }
dialoguer = "0.12.0"
clap_complete = "4.6.5"
base64 = "0.22"
docker_credential = "1.4.0"
cacache = { version = "13.1.0", features = ["tokio-runtime"], default-features = false }
http = "1.0"
[dev-dependencies]
cargo-husky = { version = "1", default-features = false, features = ["precommit-hook", "prepush-hook", "run-cargo-fmt", "user-hooks"] }
tempfile = "3.10"
mockito = "1.2"
criterion = "0.8.2"
serial_test = "3.5.0"
assert_cmd = "2.0"
predicates = "3.1"
mockall = "0.15"
[lints.rust]
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] }
[[bench]]
name = "pinner_bench"
harness = false