#[non_exhaustive]pub struct Capabilities {
pub automation: bool,
pub bot_can_create_repos: bool,
pub role_levels: Vec<ForgeRole>,
pub required_checks: RequiredCheckKind,
pub webhooks: bool,
pub account_link: LinkMethod,
pub per_repo_tokens: bool,
pub required_workflow: bool,
pub single_owner_repos_unreviewed: bool,
pub bridge_posted_check: bool,
}Expand description
What a forge — and one namespace on it — can do (§5.8).
The core and the UX branch on this, never on ForgeKind. A personal
GitHub account is not a special case: it is the GitHub adapter returning
a smaller set here.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.automation: boolThe adapter holds a credential for this namespace and can act on it
at all. false is manual mode: every forge-side step is a human’s.
bot_can_create_repos: boolThe bridge can create repositories here. Without it, repo/create
reserves the name and returns manual steps.
role_levels: Vec<ForgeRole>The forge roles available on repositories here, lowest first.
crate::collapse_to_ladder fits a requested role onto it.
required_checks: RequiredCheckKindHow the verify-trust check is made required.
webhooks: boolWhether the forge pushes change events. Without them, drift is found
by a scheduled inspect sweep.
account_link: LinkMethodHow members link their forge accounts.
per_repo_tokens: boolWhether the credential can be narrowed to one repository per job.
required_workflow: boolThe check runs from a namespace-level workflow pinned to a revision (a GitHub org ruleset’s required workflow), so a pull request cannot change what checks it. Without it the repository’s own workflow is guarded by owner review instead (§9).
single_owner_repos_unreviewed: boolWithout a namespace workflow, a repository with a single owner gets
no review requirement on its workflow (there is nobody else to
review), so its owner could weaken their own check. The UI shows
“solo: workflow edits not review-protected” for such repositories;
ProtectionState::check_source_guard says which applies to each.
bridge_posted_check: boolThe bridge itself runs verify-trust against each pull request and posts the check under its own forge identity, and the protection requires the check from that identity (§9, “forged check runs”). Nothing in the repository decides what runs, and no CI workflow can post a check that counts. The bridge becomes a merge dependency, as the registry already is.