Skip to main content

GitHubClient

Trait GitHubClient 

Source
pub trait GitHubClient {
    // Required methods
    fn create_release(
        &self,
        params: &CreateReleaseParams,
    ) -> Result<ReleaseInfo>;
    fn upload_asset(&self, params: &UploadAssetParams) -> Result<AssetInfo>;
    fn list_releases(
        &self,
        params: &ListReleasesParams,
    ) -> Result<Vec<ReleaseInfo>>;
    fn delete_release(&self, params: &DeleteReleaseParams) -> Result<()>;
}
Expand description

Abstraction over GitHub API operations used by the release stage.

Implementations:

  • Real: wraps octocrab (lives in crates/stage-release)
  • Mock: [MockGitHubClient] for tests (records calls, configurable responses)

Required Methods§

Source

fn create_release(&self, params: &CreateReleaseParams) -> Result<ReleaseInfo>

Create a new GitHub release.

Source

fn upload_asset(&self, params: &UploadAssetParams) -> Result<AssetInfo>

Upload an asset to an existing release.

Source

fn list_releases(&self, params: &ListReleasesParams) -> Result<Vec<ReleaseInfo>>

List all releases for a repository.

Source

fn delete_release(&self, params: &DeleteReleaseParams) -> Result<()>

Delete a release by ID.

Implementors§