Skip to main content

EventKind

Enum EventKind 

Source
pub enum EventKind {
Show 36 variants SessionOpened, Fetch, LockWait, LockAcquired, CommitPreserved, BranchPreserved, Push, ChangeOpened, ChangeDrafted, DraftLifted, DraftLiftedEarly, DraftKeptForReview, ChecksSettled, ChangeDescribed, ChangeCheck, ChangeMerged, BaseArrived, MergeQueued, MergeCompleted, RecoveryAttested, SyncConflict, SessionClosed, ReleaseProbed, ReleaseAcknowledged, ReleaseObserved, BranchSuperseded, BranchRetired, GateRun, ReviewCommentsRead, ReviewReplyPosted, StackBaseAssembled, ChangeStandingsRead, ChangeRetargeted, ChangeReopened, BaseMerge, MergeArmed,
}
Expand description

What an event says happened.

These are the kinds onevcs produces. A consumer merging several sources reads each source’s own kinds; nothing here promises to name another library’s.

A kind is retired by keeping it recognised and inert, never by deleting it. A stream is a record, and this enum is what says whether a line of one can be read at all: delete a variant and every line any earlier build wrote with it stops parsing, in a build that has no way to know what it lost. That is not hypothetical — gate-started and gate-verdict went with the host-run gate in 0.11.0, and 30% of the streams on the host that consumes this crate turned into one refusal per line, most expensively in a status read that walks every stream there is. So a kind nothing emits any more keeps its variant, documented as retired and produced by nothing, and a reader goes on being able to say what that line recorded.

The permissive read this crate’s stream readers go through is the other half of that rule rather than a substitute for it. It makes a kind this build has never had — one a later build wrote — cheap to pass over, which is the case no vocabulary here can cover. It cannot give back the meaning of a kind that was deleted, which is why the two retired above are a loss this crate carries rather than one it recovered.

Variants§

§

SessionOpened

A session was opened over a clone and worktree, on a pool slot or a run root.

§

Fetch

Objects were fetched, deliberately outside any exclusive section.

§

LockWait

Waiting on an identity’s lock; carries the identity, elapsed, and queue position.

§

LockAcquired

The identity’s lock was acquired.

§

CommitPreserved

Work was committed onto a preserved branch; carries the provenance kind.

§

BranchPreserved

A branch was put on its identity’s origin under its own name, without being published; carries the branch, the identity, the origin URL, the commit, and which of the three things onevcs preserve found to do.

Deliberately not Push, and that is the whole reason it is its own kind. The one producer of push is a publication, so a reader counting pushes to find publications must never meet a preservation — and a preservation is the opposite of one: no change request is opened, no base is touched, and the branch is exactly as recoverable afterwards as it was before.

§

Push

A branch was pushed.

§

ChangeOpened

A change request was opened; carries its URL and the host kind.

§

ChangeDrafted

A change request was opened as a draft, and this is why it is not ready; carries its URL, the host’s identifier for it, its base, and the reason — its kind, and every field of that kind: for awaiting-release the repository whose release is awaited, which target of it, the reference the change is pinned to, and the one line a person reads; for held that one line alone.

Beside ChangeOpened rather than instead of it: the change request was opened, and the link from its URL back to the branch is what that kind records. This one records the state it was opened in.

§

DraftLifted

The draft was lifted and the change request is open for review; carries its URL and the host’s identifier for it.

The reason is not repeated here: it is on the ChangeDrafted this answers, and the publication that lifts a draft is one carrying none — on green checks, early when they never ran on the draft, or at once with the lifecycle off. onevcs change ready emits the same kind, because it is the same lift asked for as a verb.

§

DraftLiftedEarly

A draft the publication opened while its required checks ran was lifted before any of them had run on it, because the grace window elapsed and the repository’s checks skip drafts; carries its URL, identifier and base, the required checks that had not run, the grace window in seconds, and whether the warning line was printed. Emitted beside the DraftLifted every lift emits.

§

DraftKeptForReview

Green required checks left a change-open change whose approvals are required a draft, for its own user’s review rather than the team’s; carries its URL, identifier and base.

§

ChecksSettled

A publication’s watch saw every required check stop blocking; carries the change request’s URL and identifier, the commit watched, the verdict — passed, or passed-with-skipped where a required check concluded skipped — and the skipped required checks by name.

§

ChangeDescribed

The change request’s description was replaced after it was opened; carries its URL, the host’s identifier for it, its base, the title where the description replaced it, and the artifact the body was stored as.

The body is not inlined: it is prose of unbounded size, and the stream bounds payload text. The artifact is the record — onevcs artifact cat ID reads back exactly what was written — and the event references it as every other large piece of evidence is referenced.

§

ChangeCheck

A check moved; carries its name, whether it is required, the status transition, the conclusion, and its log as an artifact once complete.

§

ChangeMerged

The change request merged; carries its URL, the commit it landed at as sha and as landing, and landed_at, when the base received it.

§

BaseArrived

One local invocation reached its actual base, carrying base, commit and ordered branches.

§

MergeQueued

The change request entered the host’s merge queue.

§

MergeCompleted

The merge the host had queued completed; carries the commit it landed at as sha and as landing, and landed_at, when the base received it.

§

RecoveryAttested

Preserved work that carried an incomplete-step marker was verified and attested.

§

SyncConflict

The base moved under a publication and the bounded resolve-and-requeue did not converge.

§

SessionClosed

The session’s worktree and lease were released.

§

ReleaseProbed

An automated release target’s probe was run; carries the identity, the target, which form of probe it was, what it answered, the version where it answered one, and how long it took. A human-step target never produces one, and that absence is the observable proof that no probe ran for it.

§

ReleaseAcknowledged

Somebody recorded a release of a human-step target; carries the identity, the target, the version, the landing commit, the actor, and the version it superseded where it replaced one.

§

ReleaseObserved

A landing was released, the first time it was: its baseline passed for an automated target, its acknowledgement recorded for a human-step one.

§

BranchSuperseded

A branch was recorded as superseded by a retry whose landing reached the base; carries the identity, the branch, the branch that superseded it, that branch’s landing — a commit or a change request’s URL — and the labels its caller stamped.

A record and nothing else: the superseded branch is left exactly where it is. What it changes is how the branch is classified — superseded-with-changes where it still differs from the base, which only onevcs reclaim acts on.

§

BranchRetired

A finished branch was deleted everywhere this host holds it; carries the identity, the branch, the tip it was deleted at, the class and proof that permitted it, which verb or moment acted, and what was deleted and what was not — so a partial retirement names the holder a re-run still has to reach.

§

GateRun

One completed gate run of a publication attempt; carries which gate it was — pre-push or required-checks — the attempt it belongs to, when it started and ended, how long that was, its verdict, and for required checks every required check with the times and conclusion the host reported.

Recorded from the run the publication makes anyway, never from a second one: the push that executed the repository’s pre-push hook, and the watch of a change request’s required checks. Its phase is the gate’s, so the producer stamps it — integrate for pre-push, review for required-checks.

§

ReviewCommentsRead

A change request’s review feedback was read; carries its URL, how many comments the read returned, whether nothing was new since the marker it was read from, the digest of the marker to read from next (never the marker, which grows with the change request), and what the host charged for it — {graphql_points, rest_requests}, from the responses’ own figures.

§

ReviewReplyPosted

A reply to one review comment was posted, or found already posted under its key; carries the change request’s URL, the comment answered, the reply’s id and URL, whether it sits in the comment’s thread, the key, and whether it was already there so nothing was posted.

§

StackBaseAssembled

A stack base was assembled: a branch cut from a root and carrying a merge of several parent branches, put on its origin with no change request; carries the branch, its root, each parent with the head it was merged at or already carried, the branch’s head, and whether it was created, advanced, unchanged or conflicted.

Not Push, for the reason BranchPreserved is not: the one producer of push is a publication, and a stack base publishes nothing.

§

ChangeStandingsRead

Where a batch of one repository’s change requests stand was read; carries the repository, how many were read, the change requests whose landing the read recorded, and what the host charged, {graphql_points, rest_requests}.

§

ChangeRetargeted

A change request was moved onto another base, or found on it already; carries its URL, the base it left and the one it targets, whether it moved (retargeted or unchanged), and whether a description was written with it.

§

ChangeReopened

A closed change request was reopened over its restored base; carries its URL, the base branch restored on the origin, and the commit it was restored at.

§

BaseMerge

A publication decided whether to merge its moved base into the branch before pushing it; carries the branch, the base, the decision (merged or skipped) and because.

§

MergeArmed

A publication whose wait for the checks elapsed with none of them red left the host’s own merge armed on its change request, so it lands once the checks pass; carries the change request’s URL and the head commit armed.

Trait Implementations§

Source§

impl Clone for EventKind

Source§

fn clone(&self) -> Self

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 Copy for EventKind

Source§

impl Debug for EventKind

Source§

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

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

impl<'de> Deserialize<'de> for EventKind

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 Eq for EventKind

Source§

impl From<EventKind> for Kind

An envelope’s kind is open on the wire, and this crate’s closed vocabulary is what it writes into it.

Source§

fn from(kind: EventKind) -> Self

Converts to this type from the input type.
Source§

impl PartialEq for EventKind

Source§

fn eq(&self, other: &Self) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl Serialize for EventKind

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
Source§

impl StructuralPartialEq for EventKind

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> AsOut<T> for T
where T: Copy,

Source§

fn as_out(&mut self) -> Out<'_, T>

Returns an out reference to self.
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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

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<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

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 = !

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

fn try_from(value: U) -> Result<T, !>

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.