rtb-forge 0.7.1

Release-provider abstractions and backends (GitHub, GitLab, Bitbucket, Gitea, Codeberg, Direct) plus an async git-operations Repo built on gix. Part of the phpboyscout Rust toolkit.
Documentation

rtb-forge

Part of the phpboyscout Rust toolkit — small, framework-free crates extracted from rust-tool-base.

Formerly rtb-vcs — renamed at extraction from the monorepo for name convergence with the GTB family (the go counterpart lives at forge.go.phpboyscout.uk). Only the crate identity changed: types, modules, and Cargo features are exactly those of rtb-vcs 0.7.0.

Two slices in one crate, each behind feature flags:

  1. Release providers — the ReleaseProvider async trait plus GitHub / GitLab / Bitbucket / Gitea / Codeberg / Direct backends for listing, fetching, and streaming release assets.
  2. Git operations — the Repo type (git feature, default-on): an async wrapper over gix (shell-out to git for write paths) with clone / init / open / walk / diff / blame / status / commit / fetch / checkout / push, and auth via rtb-credentials.
use rtb_forge::git::Repo;

let repo = Repo::open(".").await?;
let status = repo.status().await?;
println!("{} untracked files", status.untracked.len());

Development

just ci runs the full local gate (fmt, clippy, nextest, doc, deny). Tests include a cucumber BDD suite (tests/bdd.rs) and testcontainers-backed Gitea integration tests (just test-integration, needs Docker). Releases are cut by release-plz from Conventional Commits — do not tag manually.

License

MIT