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: AnnounceGateSelects 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
impl AnnounceConfig
Sourcepub fn deadline_duration(&self) -> Duration
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
impl Clone for AnnounceConfig
Source§fn clone(&self) -> AnnounceConfig
fn clone(&self) -> AnnounceConfig
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for AnnounceConfig
impl Debug for AnnounceConfig
Source§impl Default for AnnounceConfig
impl Default for AnnounceConfig
Source§fn default() -> AnnounceConfig
fn default() -> AnnounceConfig
Source§impl<'de> Deserialize<'de> for AnnounceConfigwhere
AnnounceConfig: Default,
impl<'de> Deserialize<'de> for AnnounceConfigwhere
AnnounceConfig: Default,
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl JsonSchema for AnnounceConfig
impl JsonSchema for AnnounceConfig
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
$ref keyword. Read more