Skip to main content
Glama
release-tools.md8.68 kB
# Release 发布版本管理工具 ## 概述 Release 工具模块提供完整的 Gitea 发布版本管理功能,支持创建、查询、更新、删除发布版本,以及管理附件。 **新增工具数量**: 9 个 **总工具数量**: 86 → **95** 个 --- ## 功能列表 ### 核心操作 (6 个工具) 1. **gitea_release_create** - 创建发布版本 2. **gitea_release_get** - 获取发布版本详情 3. **gitea_release_get_by_tag** - 通过 Tag 获取发布版本 4. **gitea_release_list** - 列出发布版本 5. **gitea_release_update** - 更新发布版本 6. **gitea_release_delete** - 删除发布版本 ### 附件管理 (3 个工具) 7. **gitea_release_attachments** - 列出发布版本附件 8. **gitea_release_attachment_get** - 获取附件详情 9. **gitea_release_attachment_delete** - 删除附件 --- ## 工具详解 ### 1. gitea_release_create 创建新的发布版本。 **参数**: - `owner` (可选): 仓库所有者,使用上下文默认值 - `repo` (可选): 仓库名称,使用上下文默认值 - `tag_name` (必需): Tag 名称,如 `v1.0.0` - `name` (可选): 发布名称,默认为 tag_name - `body` (可选): 发布说明(支持 Markdown) - `draft` (可选): 是否创建为草稿,默认 false - `prerelease` (可选): 是否标记为预发布版本,默认 false - `target_commitish` (可选): 目标分支或提交 SHA,默认为默认分支 **示例**: ```json { "tag_name": "v1.0.0", "name": "Version 1.0.0 - Stable Release", "body": "## What's New\n\n- Feature A\n- Feature B\n\n## Bug Fixes\n\n- Fixed issue #123", "draft": false, "prerelease": false } ``` **使用场景**: - 发布软件新版本 - 创建里程碑版本 - 标记重要的提交点 --- ### 2. gitea_release_get 通过 ID 获取发布版本详情。 **参数**: - `owner` (可选): 仓库所有者 - `repo` (可选): 仓库名称 - `id` (必需): Release ID **返回信息**: - Release 基本信息(名称、Tag、创建时间) - 发布说明 - 附件列表 - 下载统计 --- ### 3. gitea_release_get_by_tag 通过 Tag 名称获取发布版本(比用 ID 更方便)。 **参数**: - `owner` (可选): 仓库所有者 - `repo` (可选): 仓库名称 - `tag` (必需): Tag 名称,如 `v1.0.0` **使用场景**: - 检查某个版本是否已发布 - 获取最新稳定版信息 - 下载特定版本的附件 --- ### 4. gitea_release_list 列出仓库的所有发布版本。 **参数**: - `owner` (可选): 仓库所有者 - `repo` (可选): 仓库名称 - `page` (可选): 页码,默认 1 - `limit` (可选): 每页数量,默认 30 - `draft` (可选): 筛选草稿状态 - `prerelease` (可选): 筛选预发布状态 **示例**: ```json { "page": 1, "limit": 10, "draft": false, "prerelease": false } ``` **使用场景**: - 查看所有已发布版本 - 获取版本发布历史 - 生成变更日志 --- ### 5. gitea_release_update 更新已存在的发布版本。 **参数**: - `owner` (可选): 仓库所有者 - `repo` (可选): 仓库名称 - `id` (必需): Release ID - `tag_name` (可选): 新的 Tag 名称 - `name` (可选): 新的发布名称 - `body` (可选): 新的发布说明 - `draft` (可选): 更新草稿状态 - `prerelease` (可选): 更新预发布状态 - `target_commitish` (可选): 新的目标分支或提交 **使用场景**: - 修正发布说明中的错误 - 将草稿发布为正式版本 - 更新发布标记(如从 prerelease 变为 stable) --- ### 6. gitea_release_delete 删除发布版本。 **参数**: - `owner` (可选): 仓库所有者 - `repo` (可选): 仓库名称 - `id` (必需): Release ID **注意**: - 删除 Release 不会删除对应的 Git Tag - 附件会一并被删除 --- ### 7. gitea_release_attachments 列出发布版本的所有附件。 **参数**: - `owner` (可选): 仓库所有者 - `repo` (可选): 仓库名称 - `id` (必需): Release ID **返回信息**: - 附件列表 - 文件名、大小、下载次数 - 下载链接 --- ### 8. gitea_release_attachment_get 获取特定附件的详细信息。 **参数**: - `owner` (可选): 仓库所有者 - `repo` (可选): 仓库名称 - `id` (必需): Release ID - `attachment_id` (必需): 附件 ID --- ### 9. gitea_release_attachment_delete 删除发布版本的附件。 **参数**: - `owner` (可选): 仓库所有者 - `repo` (可选): 仓库名称 - `id` (必需): Release ID - `attachment_id` (必需): 附件 ID --- ## 实际使用场景 ### 场景 1: 自动化发布流程 在 CI/CD 中自动创建 Release: 1. 使用 `gitea_release_create` 创建新版本 2. 构建完成后上传编译产物作为附件 3. 使用 `gitea_release_update` 将草稿变为正式发布 ### 场景 2: 版本管理 ```bash # 1. 列出所有稳定版本 gitea_release_list (draft=false, prerelease=false) # 2. 获取最新版本信息 gitea_release_get_by_tag (tag="v1.0.0") # 3. 更新发布说明 gitea_release_update (id=123, body="更新的说明") ``` ### 场景 3: 下载管理 ```bash # 1. 列出某个版本的所有附件 gitea_release_attachments (id=123) # 2. 获取附件下载链接 gitea_release_attachment_get (id=123, attachment_id=456) ``` ### 场景 4: 清理旧版本 ```bash # 1. 列出所有预发布版本 gitea_release_list (prerelease=true) # 2. 删除不需要的预发布版本 gitea_release_delete (id=100) ``` --- ## 版本发布最佳实践 ### 1. 语义化版本 使用语义化版本号命名: - `v1.0.0` - 主版本.次版本.修订号 - `v1.0.0-alpha.1` - 预发布版本 - `v1.0.0-rc.1` - 候选发布版本 ### 2. 完整的发布说明 包含以下内容: ```markdown ## 新增功能 - Feature A - Feature B ## 改进 - Improvement X ## Bug 修复 - Fixed #123: Description ## 破坏性变更 - Breaking change description ## 升级说明 - Migration steps if needed ``` ### 3. 使用草稿功能 1. 先创建为草稿 (`draft: true`) 2. 上传所有附件 3. 完善发布说明 4. 测试验证 5. 更新为正式版本 (`draft: false`) ### 4. 预发布版本管理 - Alpha: 内部测试版本 (`v1.0.0-alpha.1`) - Beta: 公开测试版本 (`v1.0.0-beta.1`) - RC: 候选发布版本 (`v1.0.0-rc.1`) - Stable: 正式版本 (`v1.0.0`) --- ## 与其他工具的集成 ### 与 Repository 工具配合 ```bash # 1. 创建 Tag gitea_repo_tag_create (tag_name="v1.0.0", target="main") # 2. 创建 Release gitea_release_create (tag_name="v1.0.0", name="Version 1.0.0") ``` ### 与 Issue/PR 工具配合 发布说明中引用 Issue 和 PR: ```markdown ## Fixed Issues - Fixed #123 - Resolved #456 ## Merged PRs - Merged #789 - Merged #101 ``` --- ## API 参考 基于 Gitea API 官方文档实现: - 列出 Releases: `GET /repos/:owner/:repo/releases` - 获取 Release: `GET /repos/:owner/:repo/releases/:id` - 通过 Tag 获取: `GET /repos/:owner/:repo/releases/tags/:tag` - 创建 Release: `POST /repos/:owner/:repo/releases` - 更新 Release: `PATCH /repos/:owner/:repo/releases/:id` - 删除 Release: `DELETE /repos/:owner/:repo/releases/:id` - 列出附件: `GET /repos/:owner/:repo/releases/:id/assets` - 获取附件: `GET /repos/:owner/:repo/releases/:id/assets/:attachment_id` - 删除附件: `DELETE /repos/:owner/:repo/releases/:id/assets/:attachment_id` --- ## 常见问题 ### Q: Release 和 Tag 有什么区别? A: Tag 是 Git 的概念,用于标记特定提交。Release 是 Gitea 的功能,在 Tag 基础上添加: - 发布说明 - 附件(二进制文件) - 发布状态(草稿、预发布) - 下载统计 ### Q: 如何上传附件? A: 目前需要通过 Gitea Web UI 上传,或使用第三方工具。未来版本可能会添加上传功能。 ### Q: 删除 Release 会删除 Tag 吗? A: 不会。删除 Release 只删除 Gitea 的发布记录和附件,不影响 Git Tag。 ### Q: 可以修改已发布版本的 Tag 吗? A: 可以使用 `gitea_release_update` 修改 `tag_name`,但不推荐修改已发布的版本标签。 --- ## 总结 Release 工具模块为 Gitea MCP Service 添加了完整的版本发布管理能力: ✅ **9 个新工具**: 从创建到删除的完整生命周期管理 ✅ **附件支持**: 管理发布附件和下载链接 ✅ **灵活筛选**: 支持草稿、预发布等状态筛选 ✅ **上下文感知**: 自动使用项目上下文,简化操作 现在总工具数量达到 **95 个**,提供更完整的 DevOps 自动化支持! --- ## 参考资源 - [Gitea Release API 文档](https://docs.gitea.com/api/1.22/) - [语义化版本规范](https://semver.org/lang/zh-CN/) - [GitHub Release 最佳实践](https://docs.github.com/en/repositories/releasing-projects-on-github/about-releases)

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/SupenBysz/gitea-mcp-tool'

If you have feedback or need assistance with the MCP directory API, please join our Discord server