specs/git_ns/bridge/event/v0_2/payload library

Classes

DriftItem
One difference between the forge's observed state and the VTC's projection of a repository.
ForgeAccount
A person's account on one forge. id is authoritative; login is for display only, because logins can be renamed and re-registered.
Payload
The bridge tells the VTC something happened on the forge — translated from the forge's webhook or found by an inspection sweep — together with any drift it now sees.
Response
The VTC has recorded the event. Nothing else is returned.

Extension Types

DriftItemType
roleAdded — someone holds a forge role the projection does not give them. roleRemoved — a projected role is missing. roleChanged — a projected role is present at another level. requiredCheckMissing — the verify-trust check is no longer required. protectionWeakened — branch protection or a ruleset is weaker than the projection in another way (force-push allowed, bypass actors added). bootstrapMissing — a bootstrap file or variable is gone.

Constants

payloadSchemaJson → const String
This specification's payload schema, as JSON text.
responsePayloadSchemaJson → const String
As payloadSchemaJson, for the success-response variant.
responseSpec → const SpecPolicy
The SPEC §7.2 policy for the success-response variant.
responseTypeUri → const String
The success-response form of typeUri (SPEC §4.4.1).
spec → const SpecPolicy
The SPEC §7.2 policy for the request variant, taken from this specification's front matter.
typeUri → const String
The Trust Task type URI this library's Payload is carried under.

Typedefs

Ext = Map<String, dynamic>
Vendor-namespaced extension object per SPEC.md §4.5.1. Each immediate key MUST be a reverse-DNS namespace; structure under each namespace is opaque to the framework.
ForgeEvent = Map<String, dynamic>
One forge-neutral event, discriminated by type. The specification's event table says what each type means and what the VTC does with it.
ForgeHost = String
The lowercased DNS host of a forge: github.com, a GitHub Enterprise Server host, codeberg.org, or a self-hosted Forgejo instance such as git.example.org. No scheme, no port, no path. The host is a segment of every resource, so a right never crosses forges.
ForgeId = String
An identifier the forge itself assigns — a repository id, a user or organisation id — carried as a string so a forge whose ids are not numbers needs no new version. GitHub and Forgejo ids are decimal integers written as strings ("812736451"). Unlike a name, it survives renames and transfers, which is why rights and bindings are keyed by it.
ForgeRole = String
A role in the forge's own vocabulary (maintain, write).
JobId = String
The VTC's identifier for a job, unique across the VTC's jobs.
NamespaceId = String
The VTC's opaque identifier for a namespace, assigned when it is bound. Stable for the life of the binding; never reused for another binding.
RepoResource = String
A forge-qualified resource naming exactly one repository: &lt;forge-host&gt;/&lt;owner&gt;/&lt;repo&gt;, lowercase.