rtb-forge 0.8.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
[project]
site_name = "rtb-forge"
site_description = "Release-provider abstractions and an async git-operations Repo for Rust CLI tools."
site_author = "Matt Cockayne"
site_url = "https://forge.rust.phpboyscout.uk"
repo_url = "https://gitlab.com/phpboyscout/rust/forge"
copyright = """
Copyright © 2026 Matt Cockayne
"""

[project.theme]
logo = "images/branding/logo_transparent.svg"
favicon = "images/branding/favicon.svg"
language = "en"
features = [
    "content.code.copy",
    "navigation.footer",
    "navigation.indexes",
    "navigation.sections",
    "search.highlight",
    "search.suggest",
    "toc.follow",
]

[[project.nav]]
"Overview" = "index.md"

[[project.nav]]
"Tutorials" = [
    { "Tutorials" = "tutorials/index.md" },
    { "Read a repository's history" = "tutorials/01-read-a-repositorys-history.md" },
]

[[project.nav]]
"How-to guides" = [
    { "How-to guides" = "how-to/index.md" },
    { "Point a tool at a release source" = "how-to/01-configure-a-release-source.md" },
    { "Authenticate clone, fetch and push" = "how-to/02-authenticate-git-operations.md" },
    { "Stream a release asset to disk" = "how-to/03-download-a-release-asset.md" },
    { "Add your own release backend" = "how-to/04-add-a-custom-backend.md" },
]

[[project.nav]]
"Reference" = [
    { "Reference" = "reference/index.md" },
    { "Cargo features" = "reference/01-cargo-features.md" },
    { "Release source configuration" = "reference/02-release-source-configuration.md" },
    { "Release-provider methods" = "reference/03-release-provider-methods.md" },
    { "ProviderError variants" = "reference/04-provider-errors.md" },
    { "Repo operations" = "reference/05-repo-operations.md" },
    { "RepoError variants" = "reference/06-repo-errors.md" },
    { "Environment and subprocess" = "reference/07-environment-and-subprocess.md" },
]

[[project.nav]]
"Explanation" = [
    { "Explanation" = "explanation/index.md" },
    { "Two slices, one crate" = "explanation/01-two-slices-one-crate.md" },
    { "Link-time registration" = "explanation/02-link-time-registration.md" },
    { "Why write paths shell out to git" = "explanation/03-why-write-paths-shell-out.md" },
    { "What rtb-forge does not do" = "explanation/04-what-this-does-not-do.md" },
]

[[project.nav]]
"About" = [
    { "Branding" = "about/branding.md" },
]

[[project.nav]]
"API reference (docs.rs)" = "https://docs.rs/rtb-forge"

[[project.extra.social]]
icon = "fontawesome/brands/gitlab"
link = "https://gitlab.com/phpboyscout/rust/forge"

[[project.extra.social]]
icon = "fontawesome/solid/globe"
link = "https://phpboyscout.uk"

[[project.extra.social]]
icon = "fontawesome/brands/github"
link = "https://github.com/phpboyscout"

[[project.extra.social]]
icon = "fontawesome/brands/dev"
link = "https://dev.to/phpboyscout"

[[project.extra.social]]
icon = "fontawesome/brands/instagram"
link = "https://www.instagram.com/matt.cockayne/"

[[project.extra.social]]
icon = "fontawesome/brands/tiktok"
link = "https://www.tiktok.com/@phpboyscout"

[[project.extra.social]]
icon = "fontawesome/brands/youtube"
link = "https://www.youtube.com/@phpboyscout"

[[project.extra.social]]
icon = "fontawesome/brands/linkedin"
link = "https://www.linkedin.com/in/matthewcockayne/"

[[project.extra.social]]
icon = "fontawesome/brands/discord"
link = "https://discord.gg/mQzGbmGyzZ"

[[project.extra.social]]
icon = "fontawesome/solid/book"
link = "https://phpboyscout.uk/topics/rust/"
name = "Rust, and what survived the port — the guide on the blog"