Files
holocron/plugins/gitea/skills/gitea-releases/references/call-signatures.md
Defame1297 6cfc3577e2 docs: trim repeated boilerplate in git, gitea, and bin skills
Finding 13: five blocks of near-identical wording were repeated across
skills within a plugin — the gitea "resolve owner and repo" step (5
skills), the 404-masks-403 note (6 files), the manual pagination
explanation (8 files), the git plugin's main/master force-push refusal
(7 files, some with multiple internal restatements), and the bin
skills' domain-glossary/ADR paragraph (5 skills). Tightened each
instance in place — same meaning, fewer words — rather than extracting
to a shared file, which ADR-0014's one-file-per-skill install
constraint rules out. Left the three git skills' structured-result
JSON shapes alone (coupled to the separate, out-of-scope git-orchestrate
merge candidate, finding 19).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YR2CjVumUbEGWcMikcoXBD
2026-09-12 19:48:31 +00:00

4.0 KiB

topic, source_keys
topic source_keys
call-signatures
gitea-mcp-repo
gitea-mcp-slim-go

Release and tag call signatures

Signatures and response shapes are derived from gitea-mcp source (operation/*.go and slim.go, see references/sources.md) rather than copied from upstream API docs, which can drift from the deployed gitea-mcp version — but this is a source-code extraction, not a live MCP tool call.

Input parameter schemas for all 9 tools here were additionally cross-checked live via ToolSearch against the deployed mcp__gitea__* tools and confirmed to match exactly — required and optional params, names, and defaults. Last verified against gitea-mcp v1.7.0, as reported by get_gitea_mcp_server_version. That check covers input params only: the response shapes below remain source-derived, not live-verified, so re-verify them if a response reads differently than documented here.

owner and repo are required strings on every tool below and are omitted from the per-tool lists for brevity.

Releases

list_releases

  • Optional: is_draft (boolean), is_pre_release (boolean), page (number, default 1), per_page (number, default 20)
  • Returns an array of release objects (shape below), one page at a time.

get_release

  • Required: id (number) — the release's numeric id, not its tag name.
  • Returns a single release object.

get_latest_release

  • No parameters beyond owner/repo.
  • Returns a single release object for the most recently published release. The deployed tool's own description reads "the most recent published (non-draft) release" — it names drafts as excluded and is silent on prereleases, so whether prereleases are also excluded is unconfirmed; verify with list_releases if the caller depends on it. Either way a release created without is_pre_release: true is eligible, which is why that flag has to be set in the create call (see conventions.md).

create_release

  • Required: tag_name (string), target (string — branch, tag, or commit SHA to cut the tag from), title (string)
  • Optional: body (string — release notes), is_draft (boolean), is_pre_release (boolean)
  • Assumed (not confirmed by the research docs) that if tag_name doesn't already exist as a tag, Gitea creates it against target as part of this call. Verify with get_tag/list_tags afterward if the caller needs certainty.

delete_release

  • Required: id (number) — same numeric id as get_release. Does not accept tag_name.
  • Does not delete the underlying tag.

Release object shape (returned by list/get/create/latest):

id, tag_name, target, title, body, draft, prerelease, html_url, author, created_at, published_at

author is the creator's login. body holds the release notes.

Tags

list_tags

  • Optional: page (number, default 1), per_page (number, default 20)
  • Returns an array of { name, commit_sha } — no message field on list responses.

get_tag

  • Required: tag_name (string)
  • Returns { name, message, commit_sha } — the only tag call that returns message.

create_tag

  • Required: tag_name (string)
  • Optional: target (string — commitish to tag; if omitted, Gitea tags the default branch tip), message (string — annotated tag message)

delete_tag

  • Required: tag_name (string). Does not accept a numeric id.
  • Assumed by symmetry with delete_release (documented above as not deleting the underlying tag) to also not delete any release wrapping the tag — but this reverse direction is not independently confirmed by the research docs, and is the more dangerous direction to get wrong: an agent might skip an explicit delete_release call assuming the release survives. Verify with list_releases/get_release after calling delete_tag rather than assume.

Pagination

Nothing auto-paginates. Loop page: 1, 2, ... until a page returns fewer items than per_page. list_releases/list_tags default per_page to 20, not the usual 30 — assuming 30 under-counts pages needed.