Skip to main content

AnnounceConfig

Struct AnnounceConfig 

Source
pub struct AnnounceConfig {
Show 18 fields pub skip: Option<StringOrBool>, pub if_condition: Option<String>, pub gate_on: AnnounceGate, pub deadline: Option<HumanDuration>, pub discord: Option<DiscordAnnounce>, pub discourse: Option<DiscourseAnnounce>, pub slack: Option<SlackAnnounce>, pub webhook: Option<WebhookConfig>, pub telegram: Option<TelegramAnnounce>, pub teams: Option<TeamsAnnounce>, pub mattermost: Option<MattermostAnnounce>, pub email: Option<EmailAnnounce>, pub reddit: Option<RedditAnnounce>, pub twitter: Option<TwitterAnnounce>, pub mastodon: Option<MastodonAnnounce>, pub bluesky: Option<BlueskyAnnounce>, pub linkedin: Option<LinkedInAnnounce>, pub opencollective: Option<OpenCollectiveAnnounce>,
}
Expand description

Announce-stage integrations.

Message bodies are secret-redacted before send: known secret env values are masked (a real token becomes $NAME). Redaction is on by default; anodizer notify --allow-secrets opts a single send out for a trusted private channel, while anodizer’s own log output stays redacted regardless.

Fields§

§skip: Option<StringOrBool>

Template-conditional skip: if rendered to “true”, skip the entire announce stage.

§if_condition: Option<String>

Template-conditional gate: when the rendered result is falsy ("false" / "0" / "no" / empty), the entire announce stage is skipped. Render failure hard-errors. The announce.if:. Distinct from skip: (always-skip predicate) — both surfaces are documented.

§gate_on: AnnounceGate

Selects when AnnounceStage runs vs. skips based on the PublishReport written by PublishStage/BlobStage. Default is required_publishers (announce only if every required publisher succeeded). See AnnounceGate for the other variants.

§deadline: Option<HumanDuration>

Overall wall-clock deadline for the announce stage (e.g. "90s", "2m"). Optional — defaults to DEFAULT_ANNOUNCE_DEADLINE (90s).

Announcers run concurrently; any still running when this deadline elapses is abandoned with a warning rather than awaited. This bounds the stage so unreachable channels cannot accumulate into a hang that trips the pipeline timeout after publishers already crossed one-way doors. Raise it only if a slow-but-reachable channel legitimately needs longer.

§discord: Option<DiscordAnnounce>

Discord announcement configuration.

§discourse: Option<DiscourseAnnounce>

Discourse announcement configuration.

§slack: Option<SlackAnnounce>

Slack announcement configuration.

§webhook: Option<WebhookConfig>

Generic webhook announcement configuration.

§telegram: Option<TelegramAnnounce>

Telegram announcement configuration.

§teams: Option<TeamsAnnounce>

Microsoft Teams announcement configuration.

§mattermost: Option<MattermostAnnounce>

Mattermost announcement configuration.

§email: Option<EmailAnnounce>

Email announcement configuration. accepts the historical smtp: key as an alias because the field was renamed smtp: -> email: in v1.21+ and kept the alias for migration. Keeping the alias avoids forcing a re-yaml of legacy configs.

§reddit: Option<RedditAnnounce>

Reddit announcement configuration.

§twitter: Option<TwitterAnnounce>

Twitter/X announcement configuration.

§mastodon: Option<MastodonAnnounce>

Mastodon announcement configuration.

§bluesky: Option<BlueskyAnnounce>

Bluesky announcement configuration.

§linkedin: Option<LinkedInAnnounce>

LinkedIn announcement configuration.

§opencollective: Option<OpenCollectiveAnnounce>

OpenCollective announcement configuration.

Implementations§

Source§

impl AnnounceConfig

Source

pub fn deadline_duration(&self) -> Duration

Resolve the overall announce-stage deadline, falling back to DEFAULT_ANNOUNCE_DEADLINE when deadline: is unset.

An explicit but degenerate value ("0s" or anything below MIN_ANNOUNCE_DEADLINE) is clamped UP to the floor: a zero/sub-second deadline would make the runner abandon every channel on the first tick (traffic leaves, every result warned as “did not complete”), so it is raised to the smallest budget under which a reachable channel can report.

Trait Implementations§

Source§

impl Clone for AnnounceConfig

Source§

fn clone(&self) -> AnnounceConfig

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for AnnounceConfig

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for AnnounceConfig

Source§

fn default() -> AnnounceConfig

Returns the “default value” for a type. Read more
Source§

impl<'de> Deserialize<'de> for AnnounceConfig

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl JsonSchema for AnnounceConfig

Source§

fn schema_name() -> Cow<'static, str>

The name of the generated JSON Schema. Read more
Source§

fn schema_id() -> Cow<'static, str>

Returns a string that uniquely identifies the schema produced by this type. Read more
Source§

fn json_schema(generator: &mut SchemaGenerator) -> Schema

Generates a JSON Schema for this type. Read more
Source§

fn inline_schema() -> bool

Whether JSON Schemas generated for this type should be included directly in parent schemas, rather than being re-used where possible using the $ref keyword. Read more
Source§

impl Serialize for AnnounceConfig

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more