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§
fn kind(&self) -> ProviderKind
Sourcefn capabilities(&self) -> Capabilities
fn capabilities(&self) -> Capabilities
What this provider can do, so the UI degrades honestly.
Sourcefn 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 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.
Sourcefn 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 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.
Sourcefn 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 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.
Sourcefn 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 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.
Sourcefn 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,
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".