Skip to main content

CiProvider

Trait CiProvider 

Source
pub trait CiProvider: Send {
    // Required methods
    fn kind(&self) -> ProviderKind;
    fn capabilities(&self) -> Capabilities;
    fn list_runs<'life0, 'async_trait>(
        &'life0 self,
        limit: usize,
    ) -> Pin<Box<dyn Future<Output = Result<Vec<CiRun>>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn run_detail<'life0, 'life1, 'async_trait>(
        &'life0 self,
        run: &'life1 RunId,
    ) -> Pin<Box<dyn Future<Output = Result<RunDetail>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;
    fn job_log<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        run: &'life1 RunId,
        job: &'life2 JobId,
        offset: u64,
    ) -> Pin<Box<dyn Future<Output = Result<LogChunk>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait,
             'life2: 'async_trait;
    fn run_extras<'life0, 'life1, 'async_trait>(
        &'life0 self,
        run: &'life1 RunId,
    ) -> Pin<Box<dyn Future<Output = Result<RunExtras>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;
    fn current_pr<'life0, 'async_trait>(
        &'life0 self,
    ) -> Pin<Box<dyn Future<Output = Result<Option<PullRequest>>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
}

Required Methods§

Source

fn kind(&self) -> ProviderKind

Source

fn capabilities(&self) -> Capabilities

What this provider can do, so the UI degrades honestly.

Source

fn list_runs<'life0, 'async_trait>( &'life0 self, limit: usize, ) -> Pin<Box<dyn Future<Output = Result<Vec<CiRun>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

The most recent runs, newest first, capped at limit.

Source

fn run_detail<'life0, 'life1, 'async_trait>( &'life0 self, run: &'life1 RunId, ) -> Pin<Box<dyn Future<Output = Result<RunDetail>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

A run’s jobs and dependency edges.

Source

fn job_log<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, run: &'life1 RunId, job: &'life2 JobId, offset: u64, ) -> Pin<Box<dyn Future<Output = Result<LogChunk>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

A slice of a job’s log starting at offset. For LogMode::Dump providers the whole log returns once the job completes.

Source

fn run_extras<'life0, 'life1, 'async_trait>( &'life0 self, run: &'life1 RunId, ) -> Pin<Box<dyn Future<Output = Result<RunExtras>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

A run’s artifacts and annotations, for the graph page’s extras panel. A provider that exposes neither returns the empty default.

Source

fn current_pr<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<Option<PullRequest>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

The pull/merge request for the checked-out branch, if one is open. None when there’s no PR or the provider can’t resolve one.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§