Skip to main content

GitTemporaryRefPublisher

Struct GitTemporaryRefPublisher 

Source
pub struct GitTemporaryRefPublisher<R> { /* private fields */ }
Expand description

Git-plumbing implementation that publishes without checkout or branch mutation.

On Windows the isolation directory must satisfy RustFerry’s strict private-directory policy; the publisher retains its no-delete-sharing handle for its complete lifetime so a same-path replacement cannot redirect publication-lease acquisition.

Implementations§

Source§

impl<R> GitTemporaryRefPublisher<R>

Source

pub fn new_with_endpoints( runner: R, isolation_directory: impl AsRef<Path>, source: &GithubRemoteSnapshot, execution: &GithubRemoteSnapshot, timeout: Duration, ) -> Result<Self, GitPublisherConfigError>

Bind a runner to immutable canonical endpoints and a canonical isolation directory.

This constructor never accepts or consults Git remote names. The endpoint snapshots must have been captured once during setup and persisted in the private provider configuration.

§Errors

Rejects symlink-final/non-canonical directories and invalid timeouts.

Source

pub fn into_runner(self) -> R

Recover the runner, including captured invocations in tests.

Trait Implementations§

Source§

impl<R: Debug> Debug for GitTemporaryRefPublisher<R>

Source§

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

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

impl<R: GitRunner> TemporaryRefPublisher for GitTemporaryRefPublisher<R>

Source§

fn supports_git_snapshot(&self) -> bool

Whether this publisher implements the complete retained-byte Git snapshot contract.
Source§

fn precompute_git_snapshot( &mut self, inputs: &mut GitSnapshotPrecomputeInputs, operation_id: &str, created_at_ms: u64, ) -> Result<GitSnapshotObjectGraphV1, TemporaryRefPublishError>

Hash the two retained staged payloads and canonical four-object suffix without writing. Read more
Source§

fn adopt_git_snapshot_stage( &mut self, request: &IosDeviceBuildRequest, ) -> Result<(GitSnapshotStageLocatorV1, GitSnapshotStageV1), TemporaryRefPublishError>

Reopen a complete uncheckpointed stage without mutation for a caller that will perform fresh explicit-consent validation before creating the first durable snapshot checkpoint. Read more
Source§

fn discover_git_snapshot_stages( &mut self, ) -> Result<Vec<GithubGitSnapshotRecoveryCandidateV1>, TemporaryRefPublishError>

Enumerate complete private stages using reads only. Read more
Source§

fn import_git_snapshot( &mut self, request: &GitSnapshotImportRequest<'_>, ) -> Result<GitSnapshotObjectGraphV1, TemporaryRefPublishError>

Reopen the exact durable stage and import all six objects while retaining its guards. Read more
Source§

fn precompute_exact_git_snapshot_retry( &mut self, request: &GitSnapshotExactRetryPrecomputeRequest<'_>, ) -> Result<GithubGitSnapshotExactRetryPlanV1, TemporaryRefPublishError>

Re-read a terminal parent’s exact archive blob and derive the immutable child request. Read more
Source§

fn stage_exact_git_snapshot_retry( &mut self, request: &GitSnapshotExactRetryStageRequest<'_>, ) -> Result<GithubGitSnapshotExactRetryStageV1, TemporaryRefPublishError>

Re-read a terminal parent’s exact archive blob and create one operation-bound child stage. Read more
Source§

fn delete_git_snapshot_stage( &mut self, request: &GitSnapshotImportRequest<'_>, ) -> Result<(), TemporaryRefPublishError>

Delete the exact bounded stage after its keepalive is durably confirmed. Read more
Source§

fn reconcile_git_snapshot_keepalive( &mut self, request: &GitSnapshotKeepaliveRequest<'_>, ) -> Result<GitSnapshotRefReconciliation, TemporaryRefPublishError>

Reconcile one exact local keepalive ref without mutation. Read more
Source§

fn create_git_snapshot_keepalive( &mut self, request: &GitSnapshotKeepaliveRequest<'_>, ) -> Result<(), TemporaryRefPublishError>

Create the exact local keepalive after its durable intent checkpoint. Read more
Source§

fn publish_git_snapshot_source( &mut self, request: &GitSnapshotSourcePublishRequest<'_>, ) -> Result<GitSnapshotSourcePublication, TemporaryRefPublishError>

Publish one exact create-only custom source ref after durable intent. Read more
Source§

fn reconcile_git_snapshot_source( &mut self, request: &GitSnapshotSourcePublishRequest<'_>, ) -> Result<GitSnapshotRefReconciliation, TemporaryRefPublishError>

Reconcile one exact custom source ref using reads only. Read more
Source§

fn delete_git_snapshot_source( &mut self, request: &GitSnapshotSourceDeleteRequest<'_>, ) -> Result<(), TemporaryRefPublishError>

Delete only the exact provider-owned custom source ref. Read more
Source§

fn release_git_snapshot_keepalive( &mut self, request: &GitSnapshotKeepaliveRequest<'_>, ) -> Result<(), TemporaryRefPublishError>

Release one exact local keepalive after its durable complete-lineage prune intent. Read more
Source§

fn doctor( &mut self, request: &TemporaryRefDoctorRequest<'_>, ) -> Result<TemporaryRefPublisherReadiness, TemporaryRefPublishError>

Verify local Git and exact remote/trusted-ref readiness without mutation. Read more
Source§

fn verify_execution_workflow( &mut self, request: &ExecutionWorkflowDoctorRequest<'_>, ) -> Result<TemporaryRefPublisherReadiness, TemporaryRefPublishError>

Verify exact workflow bytes from the execution repository default branch without mutation. Read more
Source§

fn prepare( &mut self, request: &TemporaryRefPublishRequest<'_>, ) -> Result<Option<PublishedTemporaryRef>, TemporaryRefPublishError>

Complete read-only trust checks and optionally prepare the exact deterministic dispatch commit before the provider checkpoints mutation intent. Read more
Source§

fn publication_attempt_is_process_fenced(&self) -> bool

Whether a publication started after successful prepare is unable to outlive this process. Read more
Source§

fn publication_lease_scope_sha256(&self) -> Option<&str>

Digest of the canonical local lease path and exact directory filesystem identity.
Source§

fn acquire_publication_lease( &mut self, request: &TemporaryRefPublicationLeaseRequest<'_>, ) -> Result<TemporaryRefPublicationLease, TemporaryRefPublishError>

Try to own the deterministic publication across checkpoints and process crashes. Read more
Source§

fn acquire_git_snapshot_source_lease( &mut self, request: &GitSnapshotSourcePublicationLeaseRequest<'_>, ) -> Result<TemporaryRefPublicationLease, TemporaryRefPublishError>

Acquire the source-repository/custom-ref scoped mutation lease. Read more
Source§

fn release_publication_lease( &mut self, request: &TemporaryRefPublicationLeaseRequest<'_>, )

Release one lease owned by this publisher instance after durable resolution.
Source§

fn release_git_snapshot_source_lease( &mut self, request: &GitSnapshotSourcePublicationLeaseRequest<'_>, )

Release this publisher’s exact source-repository/custom-ref lease, if owned.
Source§

fn publish( &mut self, request: &TemporaryRefPublishRequest<'_>, ) -> Result<PublishedTemporaryRef, TemporaryRefPublishFailure>

Create and push one exact temporary dispatch ref. Read more
Source§

fn publish_prepared( &mut self, request: &TemporaryRefPublishRequest<'_>, prepared: Option<&PublishedTemporaryRef>, ) -> Result<PublishedTemporaryRef, TemporaryRefPublishFailure>

Publish after a durable intent checkpoint, binding any prepared commit exactly. Publishers returning prepared evidence must override this method and validate that evidence before their first remote mutation; the default refuses prepared publication. Read more
Source§

fn delete_temporary_ref( &mut self, request: &TemporaryRefDeleteRequest<'_>, ) -> Result<(), TemporaryRefPublishError>

Delete one provider-owned temporary ref with an exact expected-tip lease. Replaying the same exact deletion after a crash must succeed when the ref is already absent. Read more
Source§

impl<R: GitRunner> TemporaryRefReconciler for GitTemporaryRefPublisher<R>

Source§

fn reconcile_temporary_ref( &mut self, request: &TemporaryRefReconcileRequest<'_>, ) -> Result<TemporaryRefReconciliation, TemporaryRefPublishError>

Inspect one deterministic ref and adopt it only after exact prepared-commit verification. 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> 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> Same for T

Source§

type Output = T

Should always be Self
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.