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.