GitHubClient

Struct GitHubClient 

Source
pub struct GitHubClient { /* private fields */ }

Implementations§

Source§

impl GitHubClient

Source

pub fn new(token: &str, base_url: Url) -> Result<Self>

Source

pub async fn start_upload( &self, name: &str, expires_at: Option<DateTime<Utc>>, ) -> Result<BlobClient>

Start an upload of an artifact. It returns a BlobClient which should be used to upload your data. Once all the data has been written, Self::finish_upload must be called to finalize the upload.

The given name needs to be something unique, an error should be returned on collision.

Source

pub async fn finish_upload( &self, name: &str, content_length: usize, ) -> Result<()>

Meant to be called on an upload which was started via Self::start_upload which has had all its data uploaded with the returned BlobClient. Once it returns success, the artifact should be immediately available to be downloaded. If called on an artifact not in this state, an error should be returned.

Source

pub async fn upload( &self, name: &str, expires_at: Option<DateTime<Utc>>, content: impl Into<Body>, ) -> Result<()>

Upload the given content as an artifact. Once it returns success, the artifact should be immediately available for download. The given content can be an in-memory buffer or a FileStream created using FileStreamBuilder.

Source

pub async fn list(&self) -> Result<Vec<Artifact>>

List all the given artifacts accessible to the current workflow run.

Source

pub async fn get(&self, name: &str) -> Result<Option<Artifact>>

Get the artifact represented by the given name if it exists.

Source

pub async fn get_by_id(&self, id: DatabaseId) -> Result<Option<Artifact>>

Get the artifact represented by the given id if it exists.

Source

pub async fn start_download( &self, backend_ids: BackendIds, name: &str, ) -> Result<BlobClient>

Start a download of an artifact identified by the given name. The returned BlobClient should be used to download all or part of the data.

The backend_ids must be the ones for the artifact obtained from Self::list. An individual uploader should end up with the same backend_ids for all artifacts it uploads.

Source

pub async fn download( &self, backend_ids: BackendIds, name: &str, ) -> Result<impl AsyncRead + Unpin + Send + Sync + 'static>

Return a stream that downloads all the contents of the artifacts represented by the given name.

The backend_ids must be the ones for the artifact obtained from Self::list. An individual uploader should end up with the same backend_ids for all artifacts it uploads.

Trait Implementations§

Source§

impl QueueConnection for GitHubClient

Source§

type Blob = BlobClient

Source§

async fn get_blob( &self, backend_ids: BackendIds, key: &str, ) -> Result<Self::Blob>

Source§

async fn create_blob(&self, key: &str) -> Result<Self::Blob>

Source§

async fn list(&self) -> Result<Vec<Artifact>>

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> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
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 = 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<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

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