{"id":50734571,"url":"https://github.com/semrels/semrel","last_synced_at":"2026-06-12T13:00:23.999Z","repository":{"id":359672199,"uuid":"1247012080","full_name":"SemRels/semrel","owner":"SemRels","description":"A Go-based semantic release system with plugin architecture and VSC integration","archived":false,"fork":false,"pushed_at":"2026-06-10T10:14:49.000Z","size":633,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-06-10T12:24:03.638Z","etag":null,"topics":["ci-cd","cli","devops","go","golang","release-automation","semantic-release","semrel","semver"],"latest_commit_sha":null,"homepage":"https://www.semrel.io","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SemRels.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":"GOVERNANCE.md","roadmap":"ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":"NOTICE","maintainers":"MAINTAINERS.md","copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-22T20:01:27.000Z","updated_at":"2026-06-10T10:14:58.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/SemRels/semrel","commit_stats":null,"previous_names":["gosemantics/go-semrel","gosemantics/semrel","semrels/semrel"],"tags_count":15,"template":false,"template_full_name":null,"purl":"pkg:github/SemRels/semrel","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SemRels%2Fsemrel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SemRels%2Fsemrel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SemRels%2Fsemrel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SemRels%2Fsemrel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SemRels","download_url":"https://codeload.github.com/SemRels/semrel/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SemRels%2Fsemrel/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34245218,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-12T02:00:06.859Z","response_time":109,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ci-cd","cli","devops","go","golang","release-automation","semantic-release","semrel","semver"],"created_at":"2026-06-10T12:04:13.120Z","updated_at":"2026-06-12T13:00:23.989Z","avatar_url":"https://github.com/SemRels.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# semrel\n\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](LICENSE)\n[![Go Report Card](https://goreportcard.com/badge/github.com/SemRels/semrel)](https://goreportcard.com/report/github.com/SemRels/semrel)\n[![CI](https://github.com/SemRels/semrel/actions/workflows/ci.yaml/badge.svg)](https://github.com/SemRels/semrel/actions/workflows/ci.yaml)\n[![OpenSSF Scorecard](https://api.scorecard.dev/projects/github.com/SemRels/semrel/badge)](https://scorecard.dev/viewer/?uri=github.com/SemRels/semrel)\n\n\u003e **Status: alpha (v0.4.x)** — core pipeline, plugin system, and CI/CD are fully functional. Self-versioned via semrel. Not yet recommended for production use; see [ROADMAP.md](ROADMAP.md) for the path to v1.0.0.\n\nA Go-based semantic versioning and release system with a plugin architecture that automates the full release lifecycle. Designed for monorepos and multi-language projects.\n\n## Features\n\n- 🔍 **Conventional Commits** parser with configurable bump rules\n- 🔌 **Rich ecosystem of standalone plugins** for providers, package updaters, and hooks\n- 📝 **Multi-format changelog** — Markdown (Keep a Changelog), per-package monorepo changelogs\n- 🏗️ **Monorepo support** — independent/lockstep versioning, package discovery, dependency graph, per-package changelogs\n- 🔐 **Supply-chain security** — Cosign signing, CycloneDX/SPDX SBOM, SLSA Level 1 provenance\n- ⚙️ **GitHub Actions** native integration\n- 🧩 **Plugin runtime** — subprocess-based plugin execution from `~/.semrel/plugins/` or `$PATH`\n- 🔗 **Issue tracking** — Jira and GitHub issue reference extraction from commit messages\n- 📊 **Release analytics** — append-only NDJSON release history tracking\n- ✅ **commitlint** — validate commit messages from CLI, git range, or stdin\n\n## Installation\n\n```bash\ngo install github.com/SemRels/semrel/cmd/semrel@latest\nsemrel --version\n```\n\nInstall any plugins you want to use:\n\n```bash\nsemrel plugin install github\nsemrel plugin install npm\n```\n\n## Quick Start\n\n```bash\n# Validate commit messages\nsemrel lint\n\n# Dry-run release (preview what would happen)\nsemrel release --dry-run\n\n# Run the full release pipeline\nsemrel release\n```\n\n## Available Plugins\n\nInstall any plugin with `semrel plugin install \u003cname\u003e`.\n\n| Plugin | Type | Description | Repo |\n|--------|------|-------------|------|\n| **Conditions** | | | |\n| `github-actions` | Condition | Allow releases only on GitHub Actions CI | [SemRels/condition-github-actions](https://github.com/SemRels/condition-github-actions) |\n| `gitlab-ci` | Condition | Allow releases only on GitLab CI | [SemRels/condition-gitlab-ci](https://github.com/SemRels/condition-gitlab-ci) |\n| `gitea-actions` | Condition | Allow releases only on Gitea Actions | [SemRels/condition-gitea-actions](https://github.com/SemRels/condition-gitea-actions) |\n| `generic` | Condition | Generic CI environment condition | [SemRels/condition-generic](https://github.com/SemRels/condition-generic) |\n| **Analyzers** | | | |\n| `conventional` | Analyzer | Conventional Commits commit analyzer | [SemRels/analyzer-conventional](https://github.com/SemRels/analyzer-conventional) |\n| `default` | Analyzer | Default commit analyzer | [SemRels/analyzer-default](https://github.com/SemRels/analyzer-default) |\n| **Generators** | | | |\n| `changelog-md` | Generator | Markdown changelog (Keep a Changelog format) | [SemRels/generator-changelog-md](https://github.com/SemRels/generator-changelog-md) |\n| `changelog-html` | Generator | HTML changelog generator | [SemRels/generator-changelog-html](https://github.com/SemRels/generator-changelog-html) |\n| `release-notes` | Generator | Release notes generator | [SemRels/generator-release-notes](https://github.com/SemRels/generator-release-notes) |\n| **Providers** | | | |\n| `github` | Provider | GitHub releases, assets, and tags | [SemRels/provider-github](https://github.com/SemRels/provider-github) |\n| `gitlab` | Provider | GitLab releases and tags | [SemRels/provider-gitlab](https://github.com/SemRels/provider-gitlab) |\n| `gitea` | Provider | Gitea releases and tags | [SemRels/provider-gitea](https://github.com/SemRels/provider-gitea) |\n| `bitbucket` | Provider | Bitbucket releases and tags | [SemRels/provider-bitbucket](https://github.com/SemRels/provider-bitbucket) |\n| `git` | Provider | Local git tag only (no platform integration) | [SemRels/provider-git](https://github.com/SemRels/provider-git) |\n| **Updaters** | | | |\n| `npm` | Updater | Bump `package.json` version | [SemRels/updater-npm](https://github.com/SemRels/updater-npm) |\n| `docker` | Updater | Build and push Docker images | [SemRels/updater-docker](https://github.com/SemRels/updater-docker) |\n| `helm` | Updater | Bump Helm chart version | [SemRels/updater-helm](https://github.com/SemRels/updater-helm) |\n| `cargo` | Updater | Publish Rust/Cargo crate | [SemRels/updater-cargo](https://github.com/SemRels/updater-cargo) |\n| `python` | Updater | Bump PyPI package version | [SemRels/updater-python](https://github.com/SemRels/updater-python) |\n| `gradle` | Updater | Bump Gradle version | [SemRels/updater-gradle](https://github.com/SemRels/updater-gradle) |\n| `maven` | Updater | Publish Maven artifact | [SemRels/updater-maven](https://github.com/SemRels/updater-maven) |\n| `nuget` | Updater | Bump NuGet package version | [SemRels/updater-nuget](https://github.com/SemRels/updater-nuget) |\n| `gobinary` | Updater | Update Go version variable in source | [SemRels/updater-go](https://github.com/SemRels/updater-go) |\n| `homebrew` | Updater | Update Homebrew formula | [SemRels/updater-homebrew](https://github.com/SemRels/updater-homebrew) |\n| `terraform` | Updater | Bump Terraform module version | [SemRels/updater-terraform](https://github.com/SemRels/updater-terraform) |\n| **Hooks** | | | |\n| `slack` | Hook | Send release notifications to Slack | [SemRels/hook-slack](https://github.com/SemRels/hook-slack) |\n| `teams` | Hook | Send release notifications to Microsoft Teams | [SemRels/hook-teams](https://github.com/SemRels/hook-teams) |\n| `matrix` | Hook | Send release notifications to Matrix/Element | [SemRels/hook-matrix](https://github.com/SemRels/hook-matrix) |\n| `email` | Hook | Send release notification emails | [SemRels/hook-email](https://github.com/SemRels/hook-email) |\n| `jira` | Hook | Transition Jira issues on release | [SemRels/hook-jira](https://github.com/SemRels/hook-jira) |\n| `gitplugin` | Hook | Run arbitrary git operations post-release | [SemRels/hook-gitplugin](https://github.com/SemRels/hook-gitplugin) |\n\n## Configuration\n\nCopy `.semrel.yaml.example` to `.semrel.yaml` and adjust it for your project. Plugin entries now refer to standalone binaries, for example:\n\n```yaml\nplugins:\n  - uses: github\n  - uses: npm\n  - uses: docker\n    args:\n      image: myorg/myapp\n```\n\nSee [docs/config-reference.md](docs/config-reference.md) for all options.\n\n## Architecture\n\n- **Core engine**: Conventional Commits analysis, SemVer calculation, changelog generation, git tag creation\n- **Plugin system**: `pkg/plugininstance.Orchestrator` launches standalone plugin binaries in subprocesses\n- **Plugin discovery**: `~/.semrel/plugins/semrel-plugin-\u003cname\u003e` first, then `$PATH`\n\nSee [docs/architecture.md](docs/architecture.md) for the full design.\n\n## Documentation\n\n- [Architecture Overview](docs/architecture.md) — pipeline design and component overview\n- [Configuration Reference](docs/config-reference.md) — all `.semrel.yaml` options\n- [Plugin Development Guide](docs/plugin-development.md) — build standalone plugins\n- [CNCF Due Diligence](docs/cncf-due-diligence.md) — project overview for CNCF Sandbox application\n- [ADRs](docs/adr/) — architectural decision records\n- [ROADMAP](ROADMAP.md) — public project roadmap\n\n## Supply Chain Security\n\nsemrel takes supply-chain security seriously:\n\n- **Signed releases**: Artifacts signed with [Sigstore Cosign](https://github.com/sigstore/cosign) (keyless OIDC)\n- **SBOM**: CycloneDX 1.4 and SPDX 2.3 Bills of Materials published per release\n- **SLSA provenance**: Level 1 build provenance documenting artifact digests\n- **DCO**: Developer Certificate of Origin required on all commits\n- **REUSE/SPDX**: License compliance enforced in CI on every PR\n\nSee [SECURITY.md](SECURITY.md) for vulnerability reporting and artifact verification instructions.\n\n## Contributing\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md). All contributions require:\n- DCO sign-off (`git commit -s`)\n- Conventional Commits\n- REUSE/SPDX compliance\n\n## Security\n\nPlease report vulnerabilities via [GitHub Security Advisories](https://github.com/SemRels/semrel/security/advisories/new). See [SECURITY.md](SECURITY.md) for the full policy.\n\n## License\n\nApache 2.0 — see [LICENSE](LICENSE).\n\nCopyright 2026 The semrel Authors.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsemrels%2Fsemrel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsemrels%2Fsemrel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsemrels%2Fsemrel/lists"}