pub trait ForgeHooks: Send + Sync {
// Provided methods
fn before_create(&self, _spec: &RepoSpec) -> HookDecision<RepoSpec> { ... }
fn after_create(
&self,
_state: &RepoState,
) -> HookDecision<Vec<BootstrapStep>> { ... }
fn before_apply_roles(
&self,
_repo: &Resource,
_desired: &[RoleAssignment],
) -> HookDecision<Vec<RoleAssignment>> { ... }
fn after_bootstrap(
&self,
_repo: &Resource,
_outcomes: &[(String, StepOutcome)],
) -> HookDecision<Vec<BootstrapStep>> { ... }
fn on_event(&self, _event: &ForgeEvent) -> HookDecision<ForgeEvent> { ... }
fn on_drift(
&self,
_repo: &Resource,
_drift: &[Drift],
) -> HookDecision<Vec<Drift>> { ... }
}Expand description
Optional per-adapter hooks. Every method defaults to
HookDecision::Continue; an adapter overrides only what its forge does
differently.
Provided Methods§
Sourcefn before_create(&self, _spec: &RepoSpec) -> HookDecision<RepoSpec>
fn before_create(&self, _spec: &RepoSpec) -> HookDecision<RepoSpec>
Before a repository is created. Modify replaces the spec.
Sourcefn after_create(&self, _state: &RepoState) -> HookDecision<Vec<BootstrapStep>>
fn after_create(&self, _state: &RepoState) -> HookDecision<Vec<BootstrapStep>>
After a repository is created. Modify adds steps for the core to
run before the bootstrap plan (Forgejo sets fast-forward-only merges
here).
Sourcefn before_apply_roles(
&self,
_repo: &Resource,
_desired: &[RoleAssignment],
) -> HookDecision<Vec<RoleAssignment>>
fn before_apply_roles( &self, _repo: &Resource, _desired: &[RoleAssignment], ) -> HookDecision<Vec<RoleAssignment>>
Before roles are converged. Modify replaces the desired set.
Sourcefn after_bootstrap(
&self,
_repo: &Resource,
_outcomes: &[(String, StepOutcome)],
) -> HookDecision<Vec<BootstrapStep>>
fn after_bootstrap( &self, _repo: &Resource, _outcomes: &[(String, StepOutcome)], ) -> HookDecision<Vec<BootstrapStep>>
After a bootstrap plan ran. Modify adds follow-up steps.
Sourcefn on_event(&self, _event: &ForgeEvent) -> HookDecision<ForgeEvent>
fn on_event(&self, _event: &ForgeEvent) -> HookDecision<ForgeEvent>
On a verified event. Modify replaces it; Abort drops it.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".