vcs-github 0.7.0

Automate GitHub from Rust: a typed, async wrapper for the GitHub CLI (gh) — pull requests, issues, releases, and CI checks.
Documentation
[package]
name = "vcs-github"
version = "0.7.0"
description = "Automate GitHub from Rust: a typed, async wrapper for the GitHub CLI (gh) — pull requests, issues, releases, and CI checks."
edition.workspace = true
rust-version.workspace = true
license.workspace = true
repository.workspace = true
authors.workspace = true
readme = "README.md"
keywords = ["github","gh","pull-request","cli","async"]
categories = ["command-line-utilities","api-bindings","asynchronous"]

[dependencies]
# Runs `gh` inside an OS job (Windows Job Object / Linux cgroup) so the process
# tree is killed on close — no orphaned subprocesses. Also the `ProcessRunner`
# seam, `CliClient` core, and structured `Error`.
processkit.workspace = true
# Shared processkit-coupled plumbing: the argv injection guard (`reject_flag_like`).
# features=["serde"]: shared JSON helpers (json::null_to_empty/from_json) live in cli-support behind that feature — added after cli-support 0.2.0, so its NEXT release must be >= minor and this floor raised to match.
vcs-cli-support = { path = "../cli-support", version = "0.3", features = ["serde"] }
# Deserialize `gh … --json` output into typed structs (PullRequest/Issue/RepoView).
serde = { version = "1", features = ["derive"] }
serde_json = "1"
# `async fn` in the object-safe `GitHubApi` trait (dyn + mockall friendly).
async-trait = "0.1"
# Auto-generated `MockGitHubApi` for consumers' tests. Test-only — enabled only
# via the `mock` feature, never compiled into production builds.
mockall = { version = "0.13", optional = true }

[features]
# Expose the `mockall`-generated `MockGitHubApi` (and pull in processkit's mocks).
mock = ["dep:mockall", "processkit/mock"]
# Emit a `tracing` event per command run (forwards to processkit's `tracing`).
tracing = ["processkit/tracing"]

[dev-dependencies]
# `#[tokio::test]` for the async unit/integration tests; `time` + `test-util`
# back the paused-clock cancellation test (`start_paused`, `time::timeout`).
tokio = { version = "1", features = ["macros", "rt-multi-thread", "time", "test-util"] }

[package.metadata.docs.rs]
# Build docs.rs with every feature so the optional surfaces (mock / tracing /
# serde / stream) are documented (defaults alone hide them), and pass
# `--cfg docsrs` so feature-gated items render an "Available on feature `x`" badge.
all-features = true
rustdoc-args = ["--cfg", "docsrs"]

[lints]
workspace = true