github-app-forge 0.1.1

Declarative GitHub App lifecycle management via Manifest flow
Documentation
[package]
name = "github-app-forge"
version = "0.1.1"
edition = "2024"
rust-version = "1.89.0"
description = "Declarative GitHub App lifecycle management via Manifest flow"
license = "MIT"
authors = ["drzzln <drzzln@protonmail.com>"]
repository = "https://github.com/pleme-io/github-app-forge"
homepage = "https://github.com/pleme-io/github-app-forge"
keywords = ["github", "manifest", "infrastructure", "nix", "iac"]
categories = ["command-line-utilities", "development-tools"]

[[bin]]
name = "github-app-forge"
path = "src/main.rs"

[dependencies]
# CLI
clap = { version = "4.5", features = ["derive"] }
colored = "2.1"

# Async runtime + HTTP
tokio = { version = "1.40", features = ["macros", "rt-multi-thread", "net", "io-util", "signal", "fs", "process"] }
reqwest = { version = "0.12", features = ["json", "rustls-tls"], default-features = false }

# Serialization
serde = { version = "1.0", features = ["derive"] }
serde_json = "1"
serde_yaml_ng = "0.10"

# Errors
anyhow = "1.0"
thiserror = "2"

# JWT for App authentication (installation token issuance)
jsonwebtoken = "9.3"

# Time
chrono = { version = "0.4", features = ["serde"] }

# Browser launching
opener = "0.7"

# Filesystem helpers
dirs = "6.0"
shellexpand = "3.1"

[dev-dependencies]
assert_matches = "1.5.0"
pretty_assertions = "1.4.1"
tempfile = "3"
wiremock = "0.6"
serial_test = "3"

[lints.clippy]
pedantic = "warn"

[profile.release]
codegen-units = 1
lto = true
opt-level = "z"
strip = true