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>
impl<R> GitTemporaryRefPublisher<R>
Sourcepub fn new_with_endpoints(
runner: R,
isolation_directory: impl AsRef<Path>,
source: &GithubRemoteSnapshot,
execution: &GithubRemoteSnapshot,
timeout: Duration,
) -> Result<Self, GitPublisherConfigError>
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.
Sourcepub fn into_runner(self) -> R
pub fn into_runner(self) -> R
Recover the runner, including captured invocations in tests.
Trait Implementations§
Source§impl<R: Debug> Debug for GitTemporaryRefPublisher<R>
impl<R: Debug> Debug for GitTemporaryRefPublisher<R>
Source§impl<R: GitRunner> TemporaryRefPublisher for GitTemporaryRefPublisher<R>
impl<R: GitRunner> TemporaryRefPublisher for GitTemporaryRefPublisher<R>
Source§fn supports_git_snapshot(&self) -> bool
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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
fn publication_attempt_is_process_fenced(&self) -> bool
Whether a publication started after successful
prepare is unable to outlive this process. Read moreSource§fn publication_lease_scope_sha256(&self) -> Option<&str>
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>
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>
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<'_>,
)
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<'_>,
)
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>
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>
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>
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>
impl<R: GitRunner> TemporaryRefReconciler for GitTemporaryRefPublisher<R>
Source§fn reconcile_temporary_ref(
&mut self,
request: &TemporaryRefReconcileRequest<'_>,
) -> Result<TemporaryRefReconciliation, TemporaryRefPublishError>
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§
impl<R> Freeze for GitTemporaryRefPublisher<R>where
R: Freeze,
impl<R> RefUnwindSafe for GitTemporaryRefPublisher<R>where
R: RefUnwindSafe,
impl<R> Send for GitTemporaryRefPublisher<R>where
R: Send,
impl<R> Sync for GitTemporaryRefPublisher<R>where
R: Sync,
impl<R> Unpin for GitTemporaryRefPublisher<R>where
R: Unpin,
impl<R> UnsafeUnpin for GitTemporaryRefPublisher<R>where
R: UnsafeUnpin,
impl<R> UnwindSafe for GitTemporaryRefPublisher<R>where
R: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more