Skip to main content

Module github_client

Module github_client 

Source
Expand description

GitHub client trait and mock implementation.

Defines the GitHubClient trait that abstracts GitHub API operations needed by the release stage. The real octocrab-based implementation lives in crates/stage-release; this module provides only the trait definition and a [MockGitHubClient] for testing.

§Usage

The mock client records every call and returns configurable responses:

use anodizer_core::github_client::{MockGitHubClient, ReleaseInfo, GitHubClient};

let mock = MockGitHubClient::new();
mock.set_create_release_response(Ok(ReleaseInfo {
    id: 42,
    html_url: "https://github.com/owner/repo/releases/42".to_string(),
    tag_name: "v1.0.0".to_string(),
    name: Some("Release v1.0.0".to_string()),
    draft: false,
}));

let result = mock.create_release(&params)?;
assert_eq!(mock.create_release_calls(), 1);

Structs§

AssetInfo
Minimal asset metadata returned by upload operations.
CreateReleaseParams
Parameters for creating a GitHub release.
DeleteReleaseParams
Parameters for deleting a release.
ListReleasesParams
Parameters for listing releases.
ReleaseInfo
Minimal release metadata returned by GitHub API operations.
UploadAssetParams
Parameters for uploading a release asset.

Traits§

GitHubClient
Abstraction over GitHub API operations used by the release stage.