sr-github
GitHub VCS provider for sr — backed by the gh CLI.
Overview
sr-github provides GitHubProvider, a concrete implementation of the VcsProvider trait from sr-core. It uses the GitHub CLI (gh) to create releases, check for existing releases, and resolve commit authors to GitHub usernames.
Usage
[]
= "0.1"
Creating a provider
use GitHubProvider;
use VcsProvider;
let provider = new;
// Create a GitHub release
let url = provider.create_release?;
// Check if a release exists
let exists = provider.release_exists?;
// Generate a compare URL
let url = provider.compare_url?;
// -> "https://github.com/urmzd/semantic-release/compare/v0.9.0...v1.0.0"
API
| Method | Description |
|---|---|
GitHubProvider::new(owner, repo) |
Create a new provider for the given GitHub repository |
create_release(tag, name, body, prerelease) |
Create a GitHub release, returns the release URL |
release_exists(tag) |
Check whether a release already exists for a tag |
delete_release(tag) |
Delete a release by tag |
compare_url(base, head) |
Generate a GitHub compare URL between two refs |
repo_url() |
Return the repository URL (https://github.com/owner/repo) |
resolve_contributors(author_shas) |
Map git author names to GitHub @username strings |
Prerequisites
Requires the GitHub CLI (gh) to be installed, authenticated, and available on PATH. The GH_TOKEN or GITHUB_TOKEN environment variable can also be used for authentication.