基于语义化版本的 GitLab 发布工具
semrel-gitlab 是一个用于 GitLab 项目的语义化版本发布工具。它可以自动分析提交记录,根据提交信息自动确定版本号,并在 GitLab 上创建相应的标签和发布说明。
- 自动分析提交记录,确定版本号
- 支持自定义 GitLab 实例
- 支持 SSL 验证配置
- 自动生成发布说明
- 支持自定义发布说明模板
- 支持多种 shell 的自动补全
- 支持预发布版本和构建元数据
- 支持多平台构建
go install github.com/fanny7d/semrel-gitlab@latestdocker pull fanny7d/semrel-gitlab:latest- 设置 GitLab 访问令牌:
export GITLAB_TOKEN=your-token- 在项目中运行:
semrel-gitlab releasesemrel-gitlab next-versionsemrel-gitlab changelogsemrel-gitlab tagsemrel-gitlab commit-and-tag README.mdsemrel-gitlab add-download --file dist/app.tar.gzGITLAB_TOKEN: GitLab 访问令牌(必需)GITLAB_API_URL: GitLab API URL(可选,默认为 https://gitlab.com/api/v4)GITLAB_SKIP_SSL_VERIFY: 是否跳过 SSL 验证(可选,默认为 false)
所有命令都支持以下全局选项:
--token, -t: GitLab 访问令牌--gl-api: GitLab API URL--skip-ssl-verify: 不验证 GitLab API 的 CA 证书--patch-commit-types: 补丁版本更新的提交类型--minor-commit-types: 次要版本更新的提交类型--initial-development: 初始开发阶段标志--tag-prefix: 版本标签前缀--pre-tmpl: 预发布版本模板--build-tmpl: 构建元数据模板
工具使用 Conventional Commits 规范来分析提交消息。支持的类型包括:
fix: 修复 bug(补丁版本)feat: 新功能(次要版本)refactor: 重构(补丁版本)perf: 性能优化(补丁版本)docs: 文档更新(补丁版本)style: 代码格式调整(补丁版本)test: 测试相关(补丁版本)chore: 构建过程或辅助工具的变动(补丁版本)
破坏性变更(在提交消息中包含 BREAKING CHANGE:)会触发主要版本更新。
工具支持为多种 shell 生成自动补全脚本:
# Bash
source <(semrel-gitlab completion bash)
# Zsh
source <(semrel-gitlab completion zsh)
# Fish
semrel-gitlab completion fish | source
# PowerShell
semrel-gitlab completion powershell | Out-String | Invoke-Expression欢迎提交 Pull Request 和 Issue。在提交之前,请:
- 确保代码通过测试
- 更新相关文档
- 遵循项目的代码风格
MIT License