Skip to content

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.

Terminal window
semrel plugin install @semrel/provider-github

semrel plugin install downloads the binary to .semrel/plugins/ and updates .semrel.lock. Commit .semrel.lock to pin the version for your team.

Pre-built, signed multi-platform images (linux/amd64, linux/arm64) are published on every release:

Terminal window
docker pull ghcr.io/semrels/provider-github:latest

Verify the image signature with cosign:

Terminal window
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.com
version: 1
plugins:
- 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/*'
NameRequiredDefaultDescription
SEMREL_PLUGIN_TOKENyesGitHub token used to create the release.
SEMREL_PLUGIN_OWNERnocurrent repository ownerRepository owner or organization.
SEMREL_PLUGIN_REPOnocurrent repository nameRepository name to publish into.
SEMREL_PLUGIN_DRAFTnofalseCreate the release as a draft.
SEMREL_PLUGIN_PRERELEASEnofalseMark the release as a prerelease.
SEMREL_PLUGIN_ASSET_GLOBnoGlob pattern for release assets to upload.
  • SEMREL_TAG_NAME
  • SEMREL_NEXT_VERSION
  • SEMREL_CURRENT_VERSION
  • SEMREL_CHANGELOG
  • SEMREL_DRY_RUN

For v1.4.0, the provider can create a GitHub release, attach files matching dist/*, and publish the SemRel changelog as the release notes.