Skip to content

Repository files navigation

semrel-api

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.

Contents

  • api/proto/v1/ — Protobuf service definitions for all semrel plugin types
  • api/gen/v1/ — Generated Go stubs (protobuf messages and gRPC service interfaces)
  • plugin/hashicorp/go-plugin wiring (legacy)

Plugin types

KeyServicePurpose
providerProviderPluginVCS platform (GitHub, GitLab, Gitea, git)
conditionCIConditionPluginVerify CI environment before releasing
analyzerCommitAnalyzerPluginDetermine semver bump from commits
generatorChangelogGeneratorPluginRender changelog / release notes
updaterFilesUpdaterPluginWrite new version into project files
hooksHooksPluginLifecycle callbacks (success / failure)

Current plugin contract

semrel plugins today are standalone executables launched as subprocesses. They communicate via:

  • Environment variables → plugin: SEMREL_* (release context) and SEMREL_PLUGIN_* (config from args:)
  • stdout: JSON result (analyzers only)
  • stderr: logs and plugin_schema_version=N announcement
  • Exit code: 0 = success, non-zero = abort release

See the plugin development guide for a full walkthrough.

Module

github.com/SemRels/semrel-api

Regenerating proto code

buf generate
go mod tidy

License

Apache-2.0 — see LICENSE.

About

Shared gRPC API module for SemRel plugins (generated proto stubs + go-plugin wiring)

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages