4 releases (1 stable)
Uses new Rust 2024
| new 1.0.0 | Feb 11, 2026 |
|---|---|
| 0.10.0 | Feb 11, 2026 |
| 0.9.0 | Feb 9, 2026 |
| 0.8.0 | Feb 8, 2026 |
#1291 in Development tools
Used in sr-cli
105KB
2.5K
SLoC
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 and check for existing releases.
Usage
[dependencies]
sr-github = "0.1"
Creating a provider
use sr_github::GitHubProvider;
use sr_core::release::VcsProvider;
let provider = GitHubProvider::new("urmzd".into(), "semantic-release".into());
// Create a GitHub release
let url = provider.create_release(
"v1.0.0", // tag
"v1.0.0", // release name
"## What's Changed", // body (markdown)
false, // prerelease
)?;
// Check if a release exists
let exists = provider.release_exists("v1.0.0")?;
// Generate a compare URL
let url = provider.compare_url("v0.9.0", "v1.0.0")?;
// -> "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) |
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.
License
Dependencies
~5–7.5MB
~146K SLoC