sr-github
GitHub VCS provider for sr — backed by the GitHub REST API.
Overview
sr-github provides GitHubProvider, a concrete implementation of the VcsProvider trait from sr-core. It calls the GitHub REST API directly (via ureq) to create releases, upload assets, and check for existing releases — no external tools needed.
Usage
[]
= "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, hostname, token) |
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 |
upload_assets(tag, files) |
Upload asset files to an existing release |
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 a GH_TOKEN or GITHUB_TOKEN environment variable with a GitHub personal access token (or the GITHUB_TOKEN provided by GitHub Actions). The token needs contents: write permission to create releases and upload assets.