Shared proto and gRPC API definitions for semrel plugins.
Note: The current semrel plugin architecture communicates via environment variables and subprocess execution — not gRPC. This repository contains the proto definitions for reference and potential future use.
api/proto/v1/— Protobuf service definitions for all semrel plugin typesapi/gen/v1/— Generated Go stubs (protobuf messages and gRPC service interfaces)plugin/— hashicorp/go-plugin wiring (legacy)
| Key | Service | Purpose |
|---|---|---|
provider |
ProviderPlugin |
VCS platform (GitHub, GitLab, Gitea, git) |
condition |
CIConditionPlugin |
Verify CI environment before releasing |
analyzer |
CommitAnalyzerPlugin |
Determine semver bump from commits |
generator |
ChangelogGeneratorPlugin |
Render changelog / release notes |
updater |
FilesUpdaterPlugin |
Write new version into project files |
hooks |
HooksPlugin |
Lifecycle callbacks (success / failure) |
semrel plugins today are standalone executables launched as subprocesses. They communicate via:
- Environment variables → plugin:
SEMREL_*(release context) andSEMREL_PLUGIN_*(config fromargs:) - stdout: JSON result (analyzers only)
- stderr: logs and
plugin_schema_version=Nannouncement - Exit code: 0 = success, non-zero = abort release
See the plugin development guide for a full walkthrough.
github.com/SemRels/semrel-api
buf generate
go mod tidyApache-2.0 — see LICENSE.