Skip to content

Plugins

Relicta ships with built-in plugins and supports custom gRPC plugins. Enable them in relicta.config.yaml and keep secrets in env vars.

  • Purpose: Create a GitHub release with notes and assets.
  • Config:
    - name: github
    enabled: true
    config:
    draft: false # create as draft release
    prerelease: false # mark as prerelease
    discussion_category: ""# optional GH discussions category
  • Env: GITHUB_TOKEN with repo scope.
  • Purpose: Publish your package to npm.
  • Config:
    - name: npm
    enabled: true
    config:
    tag: latest # dist-tag (e.g., next, beta)
    access: public # or restricted
  • Env: NPM_TOKEN with publish rights.
  • Purpose: Post release summaries to a Slack channel.
  • Config:
    - name: slack
    enabled: true
    config:
    webhook: ${SLACK_WEBHOOK_URL}
    channel: "" # optional if webhook enforces channel
    template: default # optionally point to a custom message template
  • Env: SLACK_WEBHOOK_URL.
  • Purpose: Send release notes to LaunchNotes.
  • Config:
    - name: launchnotes
    enabled: true
    config:
    project_id: YOUR_PROJECT
    category: releases
    publish: true
  • Env: LAUNCHNOTES_API_TOKEN.
  • 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-plugin
    enabled: true
    path: ./bin/my-plugin # optional override if not on PATH
    config:
    some_key: some_value
  • Plugins receive the planned release payload and must return status, messages, and optional URLs.
  • Use relicta publish --dry-run to validate plugin wiring without pushing tags or publishing.
  • Keep secrets out of config; use env var substitution (${VAR}) instead.
  • Combine with --json to capture plugin responses in CI logs or dashboards.