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§
Sourcefn create_release(&self, params: &CreateReleaseParams) -> Result<ReleaseInfo>
fn create_release(&self, params: &CreateReleaseParams) -> Result<ReleaseInfo>
Create a new GitHub release.
Sourcefn upload_asset(&self, params: &UploadAssetParams) -> Result<AssetInfo>
fn upload_asset(&self, params: &UploadAssetParams) -> Result<AssetInfo>
Upload an asset to an existing release.
Sourcefn list_releases(&self, params: &ListReleasesParams) -> Result<Vec<ReleaseInfo>>
fn list_releases(&self, params: &ListReleasesParams) -> Result<Vec<ReleaseInfo>>
List all releases for a repository.
Sourcefn delete_release(&self, params: &DeleteReleaseParams) -> Result<()>
fn delete_release(&self, params: &DeleteReleaseParams) -> Result<()>
Delete a release by ID.