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(¶ms)?;
assert_eq!(mock.create_release_calls(), 1);Structs§
- Asset
Info - Minimal asset metadata returned by upload operations.
- Create
Release Params - Parameters for creating a GitHub release.
- Delete
Release Params - Parameters for deleting a release.
- Delete
TagParams - Parameters for deleting a git tag reference.
- GetRelease
ByTag Params - Parameters for looking up a release by tag name.
- List
Releases Params - Parameters for listing releases.
- Release
Info - Minimal release metadata returned by GitHub API operations.
- Upload
Asset Params - Parameters for uploading a release asset.
Traits§
- GitHub
Client - Abstraction over GitHub API operations used by the release stage.