provisioning-platform/prov-ecosystem/crates/gitops/Cargo.toml

81 lines
1.8 KiB
TOML

[package]
name = "gitops"
version = "0.1.0"
edition = "2021"
rust-version = "1.75"
authors = ["Provctl Contributors"]
license = "MIT"
repository = "https://github.com/provctl"
description = "Event-driven GitOps orchestration with adaptive workflow resolution"
documentation = "https://docs.rs/gitops"
keywords = ["gitops", "ci-cd", "automation", "event-driven", "iac"]
categories = ["development-tools", "config"]
[dependencies]
serde = { version = "1", features = ["derive"] }
serde_json = "1.0"
serde_yaml = "0.9"
toml = "0.9"
thiserror = "2"
anyhow = "1"
tracing = "0.1"
tokio = { version = "1", features = ["sync"] }
async-trait = "0.1"
# Git operations
gix = "0.68"
# Git providers
octocrab = { version = "0.41", optional = true }
gitlab = { version = "0.1805", optional = true }
gitea-rs = { version = "1.19", optional = true }
# Woodpecker CI (uses standard HTTP/REST API, no dedicated crate needed)
# Forgejo (compatible with Gitea API)
# Kubernetes (optional)
kube = { version = "0.98", optional = true, features = ["runtime", "derive"] }
# HTTP/Webhooks
axum = "0.8"
tower = "0.5"
tower-http = "0.6"
# Scheduling
cron = "0.12"
# Time
chrono = { version = "0.4", features = ["serde"] }
# UUID
uuid = { version = "1", features = ["v4", "serde"] }
# Regex for event matching
regex = "1"
# Async utilities
futures = "0.3"
# JSON query (jq-like)
jq-rs = { version = "0.4", optional = true }
# Syntaxis integration
# syntaxis-integration = { path = "../syntaxis-integration" }
[dev-dependencies]
proptest = "1"
tempfile = "3"
mockall = "0.14"
[features]
default = ["github", "standalone"]
github = ["dep:octocrab"]
gitlab = ["dep:gitlab"]
gitea = ["dep:gitea-rs"]
forgejo = []
woodpecker = []
kubernetes = ["dep:kube"]
jq = ["dep:jq-rs"]
standalone = []
full = ["github", "gitlab", "gitea", "forgejo", "woodpecker", "kubernetes", "jq"]