Plugin: provider-github
Publishes releases to GitHub using the generated SemRel tag, version, and changelog. It supports draft and prerelease flags and can upload matching assets from the local workspace.
Installation
Section titled “Installation”Binary
Section titled “Binary”semrel plugin install @semrel/provider-githubsemrel plugin install downloads the binary to .semrel/plugins/ and updates .semrel.lock. Commit .semrel.lock to pin the version for your team.
Docker
Section titled “Docker”Pre-built, signed multi-platform images (linux/amd64, linux/arm64) are published on every release:
docker pull ghcr.io/semrels/provider-github:latestVerify the image signature with cosign:
cosign verify ghcr.io/semrels/provider-github:latest \ --certificate-identity-regexp 'https://github.com/SemRels/provider-github/.github/workflows/release.yml.*' \ --certificate-oidc-issuer https://token.actions.githubusercontent.comConfiguration
Section titled “Configuration”version: 1plugins: - uses: @semrel/provider-github args: # token is read from SEMREL_PLUGIN_TOKEN env var owner: SemRels repo: semrel draft: false prerelease: false asset_glob: 'dist/*'Environment Variables
Section titled “Environment Variables”| Name | Required | Default | Description |
|---|---|---|---|
SEMREL_PLUGIN_TOKEN | yes | — | GitHub token used to create the release. |
SEMREL_PLUGIN_OWNER | no | current repository owner | Repository owner or organization. |
SEMREL_PLUGIN_REPO | no | current repository name | Repository name to publish into. |
SEMREL_PLUGIN_DRAFT | no | false | Create the release as a draft. |
SEMREL_PLUGIN_PRERELEASE | no | false | Mark the release as a prerelease. |
SEMREL_PLUGIN_ASSET_GLOB | no | — | Glob pattern for release assets to upload. |
Release Context Variables
Section titled “Release Context Variables”SEMREL_TAG_NAMESEMREL_NEXT_VERSIONSEMREL_CURRENT_VERSIONSEMREL_CHANGELOGSEMREL_DRY_RUN
Behavior
Section titled “Behavior”For v1.4.0, the provider can create a GitHub release, attach files matching dist/*, and publish the SemRel changelog as the release notes.