Raise the PATCH version of each skill whose references/sources.md, references, or validator changed in the Research registry migration, as ADR-0022 requires. factory-audit and skill-author changed behaviour and docs; the rest changed provenance metadata only. Refs: #121 ADR: 0022 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EGHFJextYtVQseaHPDDhxB
4.8 KiB
name, description, compatibility, metadata, allowed-tools
| name | description | compatibility | metadata | allowed-tools | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| gitea-releases | Use when managing Gitea releases or the git tags underneath them — list, get, create, or delete either — even when the user does not say "release" or "Gitea": "cut a v1.2.0", "publish a prerelease", "tag this commit", "what's the latest release". Not branches or commit history -> `gitea-branches`. Not issues -> `gitea-issues`. Not pull requests -> `gitea-prs`. | Requires Gitea MCP server configured with a token with write:repository scope, which gates every release and tag tool here. Requires git remote "origin" pointing to the Gitea instance for owner/repo resolution, unless an orchestrating caller passes them already resolved. |
|
Bash mcp__gitea__list_releases mcp__gitea__get_release mcp__gitea__get_latest_release mcp__gitea__create_release mcp__gitea__delete_release mcp__gitea__list_tags mcp__gitea__get_tag mcp__gitea__create_tag mcp__gitea__delete_tag |
Gotchas
delete_releasetakes the numericid, never atag_name;delete_tagtakes the tag name, never an id. Holding only a tag name, resolve the release id throughlist_releasesorget_releasefirst — a tag name passed todelete_releasefails, and that failure is not evidence the release is already gone.- Deleting a release never deletes its tag, and the reverse direction is unconfirmed — verify with
list_releases/get_releaseafterdelete_tag. Removing both takes two independent destructive calls. - Set
is_draft/is_pre_releaseexplicitly on everycreate_release— Gitea infers neither from a-beta/-rctag name, sov2.0.0-beta.1publishes as a full release and becomes the repo's latest.draft/prereleaseare output field names only; passingdraftas an input key is silently ignored. list_releases/list_tagsdefaultper_pageto 20, where most other gitea-mcp list tools default to 30 — a caller assuming 30 under-counts pages.
Step 1 — Resolve owner and repo
owner and repo are required on every tool below. Extract from the git remote, unless an orchestrating caller already passed them in:
rtk git remote get-url origin
No origin, or not a Gitea URL: stop and report "No Gitea remote found — set origin to your Gitea instance URL."
Step 2 — Dispatch
| Action | Tool | Required params | Optional params |
|---|---|---|---|
| List releases | list_releases |
owner, repo |
is_draft, is_pre_release, page (default 1), per_page (default 20) |
| Get one release | get_release |
owner, repo, id (number) |
— |
| Get latest release | get_latest_release |
owner, repo |
— |
| Create release | create_release |
owner, repo, tag_name, target, title |
body, is_draft, is_pre_release |
| Delete release | delete_release |
owner, repo, id (number) |
— |
| List tags | list_tags |
owner, repo |
page (default 1), per_page (default 20) |
| Get one tag | get_tag |
owner, repo, tag_name |
— |
| Create tag | create_tag |
owner, repo, tag_name |
target, message |
| Delete tag | delete_tag |
owner, repo, tag_name |
— |
target (on create_release/create_tag) is a commitish — a branch name, existing tag, or commit SHA — the point the new tag is cut from.
Pass a caller-supplied tag_name through verbatim — the API accepts any string; semver is convention, not constraint.
Step 3 — Procedure for the scenario in hand
These four are mutually exclusive — pick the one row the request lands on.
| Scenario | Procedure |
|---|---|
| Create a release | Call create_release with tag_name, target, title, and is_draft/is_pre_release set explicitly — never left to default. This surface carries no update or edit tool, so a wrong flag is repairable only by delete-and-recreate (references/conventions.md). A separate create_tag is only needed to tag a commit without wrapping it in a release — whether create_release creates a missing tag is unconfirmed, so verify with get_tag. |
| Delete a release | Resolve the numeric id per the first Gotcha, confirm intent, then call delete_release. The tag survives. |
| Delete a tag along with its release | Delete the release first, then call delete_tag — confirm both are intended before proceeding, since each is irreversible on its own. |
| List every page | Loop page: 1, 2, 3... until a response returns fewer than per_page entries — nothing auto-paginates. |
If exact input params or response field shapes are needed, read references/call-signatures.md. If the caller raises semver tag naming, draft/prerelease semantics, release-notes sourcing, or how a release relates to its tag, read references/conventions.md.