Plugins
Relicta ships with built-in plugins and supports custom gRPC plugins. Enable them in relicta.config.yaml and keep secrets in env vars.
Built-in plugins
Section titled “Built-in plugins”GitHub Releases
Section titled “GitHub Releases”- Purpose: Create a GitHub release with notes and assets.
- Config:
- name: githubenabled: trueconfig:draft: false # create as draft releaseprerelease: false # mark as prereleasediscussion_category: ""# optional GH discussions category
- Env:
GITHUB_TOKENwithreposcope.
npm Publish
Section titled “npm Publish”- Purpose: Publish your package to npm.
- Config:
- name: npmenabled: trueconfig:tag: latest # dist-tag (e.g., next, beta)access: public # or restricted
- Env:
NPM_TOKENwith publish rights.
Slack Notifications
Section titled “Slack Notifications”- Purpose: Post release summaries to a Slack channel.
- Config:
- name: slackenabled: trueconfig:webhook: ${SLACK_WEBHOOK_URL}channel: "" # optional if webhook enforces channeltemplate: default # optionally point to a custom message template
- Env:
SLACK_WEBHOOK_URL.
LaunchNotes
Section titled “LaunchNotes”- Purpose: Send release notes to LaunchNotes.
- Config:
- name: launchnotesenabled: trueconfig:project_id: YOUR_PROJECTcategory: releasespublish: true
- Env:
LAUNCHNOTES_API_TOKEN.
Custom gRPC plugins
Section titled “Custom gRPC plugins”- Implement the Relicta gRPC plugin interface (see CLI repo for protobuf definitions).
- Build a binary and make it executable in your PATH.
- Reference it in config:
- name: my-custom-pluginenabled: truepath: ./bin/my-plugin # optional override if not on PATHconfig:some_key: some_value
- Plugins receive the planned release payload and must return status, messages, and optional URLs.
Operational tips
Section titled “Operational tips”- Use
relicta publish --dry-runto validate plugin wiring without pushing tags or publishing. - Keep secrets out of config; use env var substitution (
${VAR}) instead. - Combine with
--jsonto capture plugin responses in CI logs or dashboards.