Files
holocron/plugins/gitea/skills/gitea-branches/SKILL.md
Defame1297 0f2bb242ad chore(plugins): sync generated content mirrors
Regenerates `plugins/*/skills`, `plugins/*/agents`, both per-plugin `plugin.json` manifests and the
two marketplace mirrors from `.apm/` per ADR-0017, via `scripts/sync-plugin-content.sh --all`.

The manifests matter beyond tidiness here: `plugin.json` carries the plugin version and wins over
the marketplace entry at install time (calculatePluginVersion precedence). Until this ran, the patch
bumps in the preceding commit were inert for anyone installing these plugins.

ADR: 0017
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EeH8SCbcrCAQrtymkNuhKP
2026-09-09 05:15:53 +00:00

3.2 KiB

name, description, compatibility, metadata, allowed-tools
name description compatibility metadata allowed-tools
gitea-branches Use when listing, creating, renaming, or deleting branches in a Gitea repository, or reading its commit history — "what commits are on this branch", "what changed in that commit" — even when the user does not say "Gitea". Not a local checkout's branches -> `git-branches`. Not local history -> `git-history`. Not a PR's head or base -> `gitea-prs`. Requires Gitea MCP server configured with a token with write:repository scope; this is confirmed to gate list_branches, create_branch, and delete_branch (Gitea gates reads behind write scope for repo-scoped operations), and is inferred by analogy (not explicitly confirmed by source docs) to also gate rename_branch, list_commits, and get_commit. Requires git remote "origin" pointing to the Gitea instance.
category version source_keys
integration 0.1.3
gitea-mcp-repo
gitea-mcp-slim-go
context7-websites-gitea
Bash mcp__gitea__list_branches mcp__gitea__create_branch mcp__gitea__rename_branch mcp__gitea__delete_branch mcp__gitea__list_commits mcp__gitea__get_commit

Gotchas

  • 404 often means 403. Gitea masks permission errors as not-found; on an unexpected one, check token scope before reporting a branch or commit missing.
  • Nothing auto-paginates. list_branches and list_commits return one page; iterate page until the returned count is below per_page.
  • delete_branch has no force-push guard. Treat deleting a protected branch as a hard refusal unless the user explicitly confirms it in the conversation. Check protected from list_branches first — a protected branch need not be named main.

Step 1 — Resolve owner and repo

Before any tool call, extract owner and repo from the git remote:

rtk git remote get-url origin

get_me and list_my_repos are blocked under the token scope this skill assumes, so the remote is the only source. If origin is not set or the URL is not a Gitea URL, stop and report: "No Gitea remote found — set origin to your Gitea instance URL."

Step 2 — Dispatch

Invocation Action
/gitea-branches or /gitea-branches list List branches
/gitea-branches create <name> [from <base>] Create branch
/gitea-branches rename <name> to <new-name> Rename branch
/gitea-branches delete <name> Delete branch
/gitea-branches commits [on <branch>] [touching <path>] List commit history
/gitea-branches commit <sha> Get full detail for one commit

For branch operations (list/create/rename/delete), read references/branches.md — it carries the call signatures, the old_branch source rule, and the protected-branch refusal in full. For commit operations (list/get), read references/commits.md.

Step 3 — Report

For reads: display branches as name + protected flag; display commits as SHA (short), message summary, author, date.

For writes (create/rename/delete): confirm the action taken, the branch name, and (for create) the base it forked from or (for rename) the name it had before.

For errors: surface the HTTP code and message, applying the 404 gotcha above before reporting "not found" to the user.