Generated output, not authored content: scripts/sync-plugin-content.sh --all. Claude Code has no .apm/ awareness, so this compiled mirror must track .apm/ or the check-plugin-content-sync pre-push hook reports drift. Deferred to a single commit at the end of the wave on purpose. sync_dir runs rm -rf before every copy, so running it while seven agents were editing the same plugin would have raced them; agents were told not to sync for that reason. Refs #99
2.6 KiB
name, description, compatibility, metadata, allowed-tools
| name | description | compatibility | metadata | allowed-tools | |||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| gitea-files | Use when reading or writing files in a Gitea repository rather than on the local filesystem — read, list, walk the tree, create, update, or delete — even when the user does not say "Gitea". Not commit history -> `gitea-branches`. Not pull requests -> `gitea-prs`. | Requires the Gitea MCP server configured with a token scoped to at least write:repository. Tested with a token holding write:issue + write:repository; write:issue is not actually required for any of this domain's five tools. |
|
mcp__gitea__get_file_contents mcp__gitea__get_dir_contents mcp__gitea__get_repository_tree mcp__gitea__create_or_update_file mcp__gitea__delete_file |
Gotchas
- A 404 may mean an under-scoped token, not a missing path. Every tool here gates on
write:repository, and Gitea masks insufficient scope as 404. Check scopes first. - Reads take
ref, writes takebranch_name. One concept, two parameter names — chaining a read into a write drops the branch if you carry the wrong key. contentis base64 both ways. Encode before a write, decode after a read;withLines: truereturns numbered lines.
Inputs
owner, repo and the target branch are caller-supplied. This skill never infers them from a git remote: ask the human when they are not stated, and expect an orchestrating caller to have resolved them already.
Dispatch
| Condition | Flow | Reference |
|---|---|---|
| Read one file, list one directory level, or walk the repository tree | Read | references/reading.md |
| Create, update, or delete a file | Write | references/writing.md |
If the request only inspects repository contents, read references/reading.md — it carries the three read tools, their pagination behaviour, and why neither a directory listing nor a tree entry supplies the SHA a write needs.
If the request creates, updates or deletes a file, read references/writing.md — it carries the SHA-first sequence every update and delete depends on, the worked multi-call sequence, and how to triage a write that fails.
A request that reads and then writes runs both flows in that order: fetch the file first, then write with the SHA that call returned.
Handoff
Scope ends at the commit. Gitea's own web UI edits files directly against a branch, so committing straight to a branch is the normal path rather than an escape hatch — hand off to gitea-prs when the change needs review before merging or the target branch is protected, not by default.