Expand description
Release-provider abstractions and git operations for the phpboyscout Rust toolkit.
Formerly rtb-vcs in the
rust-tool-base
monorepo — renamed to rtb-forge at extraction for name
convergence with the GTB family. Only the crate identity changed:
types, modules, Cargo features, and the RTB_VCS_GIT_TOKEN auth
environment variable are exactly those of rtb-vcs 0.7.0.
§What this crate is
Two independent slices:
- Release providers. A narrow, read-only abstraction over
release-source APIs. Tool authors pick one of six backends —
GitHub, GitLab, Bitbucket, Gitea, Codeberg, or Direct (bare HTTPS
URL) — and
rtb-updateconsumes the trait to list, fetch, and download release artefacts. Each backend is behind its own Cargo feature, all default-on. - Git operations. The
gitmodule’sRepotype: init, open, clone, fetch, status, commit, checkout, walk, diff, blame and push. Behind the default-ongitfeature.
§What this crate is not
- Not a release writer.
ReleaseProviderhas four methods, all of them read-only. Creating releases, uploading assets, and editing tags are deliberately out of scope. - Not a general git library.
Repocovers the operations above and stops: no branch, merge, rebase, stash, tag or remote management. - Not a caching layer. Every call hits the wire. Downstream
tools add HTTP caching via
reqwest::ClientBuilder::middlewareif they need it.
Re-exports§
pub use config::BitbucketParams;pub use config::CodebergParams;pub use config::DirectParams;pub use config::GiteaParams;pub use config::GithubParams;pub use config::GitlabParams;pub use config::ReleaseSourceConfig;pub use release::lookup;pub use release::registered_types;pub use release::ProviderError;pub use release::ProviderFactory;pub use release::ProviderRegistration;pub use release::RegisteredProvider;pub use release::Release;pub use release::ReleaseAsset;pub use release::ReleaseProvider;pub use release::RELEASE_PROVIDERS;
Modules§
- bitbucket
- Bitbucket backend — Bitbucket Cloud only at v0.1.
- codeberg
- Codeberg backend — a distinct
source_type: codebergregistration whose factory delegates to the Gitea backend withhostpinned tocodeberg.org. - config
- Per-provider typed configuration.
- direct
- Direct backend — a bare-HTTPS-URL release source for private mirrors, S3-hosted releases, and air-gapped distributions that don’t speak a Git-forge API.
- git
- Git-operations slice for
rtb-forgev0.2 (the v0.5 framework milestone). - gitea
- Gitea backend — self-hosted Gitea instances.
- github
- GitHub backend — works against GitHub Cloud (
api.github.com) and GitHub Enterprise (<enterprise-host>/api/v3). - gitlab
- GitLab backend — GitLab Cloud (
gitlab.com) and self-hosted instances. - release
- The
ReleaseProvidertrait, value types, error enum, and factory-registration primitives.