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:
- Release providers — the
ReleaseProviderasync trait plus GitHub / GitLab / Bitbucket / Gitea / Codeberg / Direct backends for listing, fetching, and streaming release assets. - Git operations — the
Repotype (gitfeature, default-on): an async wrapper overgix(shell-out togitfor write paths) with clone / init / open / walk / diff / blame / status / commit / fetch / checkout / push, and auth viartb-credentials.
use Repo;
let repo = open.await?;
let status = repo.status.await?;
println!;
- Docs: https://forge.rust.phpboyscout.uk
- API reference: https://docs.rs/rtb-forge
- Crate: https://crates.io/crates/rtb-forge
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