Class EpisodeEngine
java.lang.Object
io.jenkins.plugins.changeinvestigator.slack.lifecycle.EpisodeEngine
Deterministic transitions. Callers must save each transition before any network operation.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final classstatic final classstatic final class -
Method Summary
Modifier and TypeMethodDescriptionstatic EpisodeEngine.Deliveryclaim(EpisodeEngine.Episode episode, long now) Persist the returned lease before posting.static Stringstatic Stringfailure(EpisodeEngine.State state, int build, String signature, String material, ComparableCheck.Check check, String channel, String payload, long now) Returns INITIAL, MATERIAL, or NONE.static Stringfailure(EpisodeEngine.State state, int build, String signature, String material, ComparableCheck.Check check, String channel, String payload, long now, int lastGood, int firstBad) static booleanrestarted(EpisodeEngine.State state) Call only when no worker owns this job; a retained lease then has an uncertain outcome.static voidretry(EpisodeEngine.Delivery delivery, long when) static voidsent(EpisodeEngine.Episode episode, EpisodeEngine.Delivery delivery, String timestamp) static Stringsignature(FailureSignal signal) Build numbers and diagnostic line offsets deliberately do not participate.static booleanstartsEpisode(EpisodeEngine.State state, int build, String signature, int lastGood, int firstBad) A verified later regression window supersedes an unverified old episode without claiming recovery.static booleansuccess(EpisodeEngine.State state, int build, ComparableCheck.Proof proof, String payload, long now) A successful build alone cannot close an episode.static voiduncertain(EpisodeEngine.Delivery delivery)
-
Method Details
-
signature
Build numbers and diagnostic line offsets deliberately do not participate. -
digest
-
failure
public static String failure(EpisodeEngine.State state, int build, String signature, String material, ComparableCheck.Check check, String channel, String payload, long now) Returns INITIAL, MATERIAL, or NONE. Payload must already be bounded, safe Block Kit. -
startsEpisode
public static boolean startsEpisode(EpisodeEngine.State state, int build, String signature, int lastGood, int firstBad) A verified later regression window supersedes an unverified old episode without claiming recovery. -
failure
public static String failure(EpisodeEngine.State state, int build, String signature, String material, ComparableCheck.Check check, String channel, String payload, long now, int lastGood, int firstBad) -
success
public static boolean success(EpisodeEngine.State state, int build, ComparableCheck.Proof proof, String payload, long now) A successful build alone cannot close an episode. -
claim
Persist the returned lease before posting. A missing root never creates a replacement root. -
sent
public static void sent(EpisodeEngine.Episode episode, EpisodeEngine.Delivery delivery, String timestamp) -
retry
-
uncertain
-
restarted
Call only when no worker owns this job; a retained lease then has an uncertain outcome.
-