feat: release_create tool #17

Closed
opened 2026-05-14 08:52:33 +00:00 by mathias · 1 comment
Owner

Summary

Add a release_create tool to create GitHub/Gitea releases (git tag + release notes) as part of the deployment and promotion pipeline.

Gitea API

POST /api/v1/repos/{owner}/{repo}/releases

Tool spec

tool: release_create
params:
  owner:      string
  name:       string  // repo name
  tag:        string  // e.g. "v0.2.0"
  target:     string? // branch or SHA, defaults to default branch
  title:      string? // release title, defaults to tag
  body:       string? // release notes markdown
  draft:      bool?   // default: false
  prerelease: bool?   // default: false

Required token permission

write:repository scope on the Gitea API token.

Risk classification

LOW — creating a release is reversible (can delete release). Creating a tag is not (but tag_create already exists).

Implementation notes

  • Returns release URL and ID
  • If tag already exists, Gitea will use it — document this behaviour
  • Test cases: new tag + release, existing tag + release, draft release

Motivation

Part of the Diamond 2 → Deliver phase: promotion from staging to pre-prod should create a versioned release as the audit trail. Flux image automation can then track release tags. Agents should be able to cut releases without web UI access.

## Summary Add a `release_create` tool to create GitHub/Gitea releases (git tag + release notes) as part of the deployment and promotion pipeline. ## Gitea API `POST /api/v1/repos/{owner}/{repo}/releases` ## Tool spec ``` tool: release_create params: owner: string name: string // repo name tag: string // e.g. "v0.2.0" target: string? // branch or SHA, defaults to default branch title: string? // release title, defaults to tag body: string? // release notes markdown draft: bool? // default: false prerelease: bool? // default: false ``` ## Required token permission `write:repository` scope on the Gitea API token. ## Risk classification **LOW** — creating a release is reversible (can delete release). Creating a tag is not (but tag_create already exists). ## Implementation notes - Returns release URL and ID - If tag already exists, Gitea will use it — document this behaviour - Test cases: new tag + release, existing tag + release, draft release ## Motivation Part of the Diamond 2 → Deliver phase: promotion from staging to pre-prod should create a versioned release as the audit trail. Flux image automation can then track release tags. Agents should be able to cut releases without web UI access.
Author
Owner

Shipped in v0.2.4. Closing during cleanup pass.

Shipped in v0.2.4. Closing during cleanup pass.
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: mathias/gitea-mcp#17