repograph 0.3.0

CLI for registering, grouping, and exposing local git repositories as structured context for AI agents.
[package]
name = "repograph"
version = "0.3.0"
description = "CLI for registering, grouping, and exposing local git repositories as structured context for AI agents."
edition.workspace = true
license.workspace = true
authors.workspace = true
repository.workspace = true
homepage.workspace = true
readme.workspace = true
rust-version.workspace = true

[[bin]]
name = "repograph"
path = "src/main.rs"

# `reqwest` is a feature-only dependency — it is never imported in source, so
# cargo-machete's source scan flags it as unused. It is declared solely to union
# the rustls TLS feature onto axoasset's transitive reqwest (see the dependency
# comment below), so the false positive is suppressed here rather than dropped.
[package.metadata.cargo-machete]
ignored = ["reqwest"]

[dependencies]
repograph-core = { path = "../repograph-core", version = "0.3.0" }
clap = { version = "4", features = ["derive", "env"] }
clap_complete = "4"
comfy-table = "7"
indicatif = "0.18"
is-terminal = "0.4"
rayon = "1"
cliclack = "=0.5.4"
dirs = "5"
fs-err = { workspace = true }
# Self-update: axoupdater drives receipt-aware in-place upgrades and the version
# query for the passive notifier. `default-features = false` keeps the `blocking`
# feature (and tokio["full"]) out — we drive its async methods on a private
# current-thread runtime instead (see commands/update.rs / update_notify.rs).
axoupdater = { version = "0.10", default-features = false, features = ["github_releases"] }
# Minimal tokio to host the current-thread runtime that blocks on axoupdater's
# async calls; `net`+`time` enable the IO/time drivers reqwest needs.
tokio = { version = "1", default-features = false, features = ["rt", "net", "time"] }
# axoasset pulls reqwest with `default-features = false` and NO TLS feature, so
# HTTPS to GitHub would fail. Declaring reqwest here with rustls-tls unions that
# feature onto the shared reqwest in the graph — rustls (not system OpenSSL) so
# the windows-msvc and linux-gnu cross targets need no OpenSSL headers.
reqwest = { version = "0.13", default-features = false, features = ["rustls", "webpki-roots", "json"] }
tracing = { workspace = true }
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
serde = { workspace = true }
serde_json = { workspace = true }
time = { version = "0.3", default-features = false, features = ["std", "formatting"] }

[dev-dependencies]
assert_cmd = "2"
predicates = "3"
tempfile = "3"
serde_json = { workspace = true }
git2 = { version = "0.21", default-features = false, features = ["vendored-libgit2"] }

[lints]
workspace = true