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]https://rust.phpboyscout.uk> small, framework-free crates extracted from
> [rust-tool-base]https://gitlab.com/phpboyscout/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](https://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`.

```rust
use rtb_forge::git::Repo;

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

- **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