Skip to main content

SyncManager

Struct SyncManager 

Source
pub struct SyncManager { /* private fields */ }
Expand description

Manages synchronization with the chainlink/locks coordination branch.

Uses a git worktree at .chainlink/.locks-cache/ to avoid disturbing the user’s working tree.

Implementations§

Source§

impl SyncManager

Source

pub fn new(chainlink_dir: &Path) -> Result<Self>

Create a new SyncManager for the given .chainlink directory.

Get the path to the .chainlink directory.

Source

pub fn is_initialized(&self) -> bool

Check if the cache directory is initialized.

Source

pub fn cache_path(&self) -> &Path

Get the path to the cache directory.

Source

pub fn remote(&self) -> &str

Get the configured git remote name.

Source

pub fn init_cache(&self) -> Result<()>

Initialize the hub cache directory.

If the chainlink/locks branch exists on the remote, fetches it and creates a worktree. If not, creates an orphan branch with an empty locks.json.

Source

pub fn hub_health_check(&self) -> Result<()>

Detect and recover from broken git states in the hub cache worktree.

Source

pub fn fetch(&self) -> Result<()>

Fetch the latest state from remote and integrate changes.

Source

pub fn read_locks(&self) -> Result<LocksFile>

Read the current locks file from the cache.

Source

pub fn read_keyring(&self) -> Result<Keyring>

Read the trust keyring from the cache.

Source

pub fn verify_locks_signature(&self) -> Result<GpgVerification>

Verify GPG signature on the last commit that touched locks.json.

Source

pub fn claim_lock( &self, agent: &AgentConfig, issue_id: i64, branch: Option<&str>, force: bool, ) -> Result<bool>

Claim a lock on an issue for the given agent.

Returns Ok(true) if newly claimed, Ok(false) if already held by self. Fails if locked by another agent (unless force is true for steal).

Source

pub fn release_lock( &self, agent: &AgentConfig, issue_id: i64, force: bool, ) -> Result<bool>

Release a lock on an issue.

Returns Ok(true) if released, Ok(false) if not locked.

Source

pub fn push_heartbeat( &self, agent: &AgentConfig, active_issue_id: Option<i64>, ) -> Result<()>

Write and push a heartbeat file for this agent.

Source

pub fn read_heartbeats(&self) -> Result<Vec<Heartbeat>>

Read all heartbeat files from the cache.

Source

pub fn find_stale_locks(&self) -> Result<Vec<(i64, String)>>

Find locks that have gone stale (no heartbeat within the timeout).

Source

pub fn find_stale_locks_with_age(&self) -> Result<Vec<(i64, String, u64)>>

Find stale locks with their age in minutes.

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> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more