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
61 lines
3.6 KiB
Markdown
61 lines
3.6 KiB
Markdown
---
|
|
name: gitea-prs
|
|
|
|
description: >
|
|
Use when listing, reading, creating, updating, merging, or reviewing Gitea pull requests — even
|
|
when the user does not say "Gitea". A number the user names may be an issue or a PR — they share
|
|
one number space — so confirm which domain applies before dispatching. Not issues ->
|
|
`gitea-issues`. Not branch or commit operations -> `gitea-branches`.
|
|
|
|
compatibility: Requires Gitea MCP server configured with write:issue and write:repository token
|
|
scopes. Requires git remote "origin" pointing to the Gitea instance for owner/repo resolution when
|
|
invoked directly by a human; an orchestrating caller (e.g. gitea-workflow) may pass owner/repo
|
|
already resolved.
|
|
|
|
metadata:
|
|
category: integration
|
|
source_keys:
|
|
- gitea-mcp-repo
|
|
- gitea-mcp-slim-go
|
|
- context7-websites-gitea
|
|
- context7-gitea-tea-cli
|
|
version: "0.1.3"
|
|
|
|
allowed-tools: Bash mcp__gitea__list_pull_requests mcp__gitea__pull_request_read mcp__gitea__pull_request_write mcp__gitea__pull_request_review_write
|
|
---
|
|
|
|
## Gotchas
|
|
|
|
- **Issues and PRs share one number space.** `#42` may be an issue rather than a PR. When unsure, call `pull_request_read method: "get"` and read a 404 as "that number is an issue" — hand it to `gitea-issues`.
|
|
- **`pull_request_write method: "create"` discards most optional parameters in silence.** `milestone`, `assignee`, `assignees`, `reviewers` and `team_reviewers` are accepted, dropped, and left out of the response, so a drop is indistinguishable from never passing them. `labels` *does* apply on `"create"`, so labels landing is no evidence the milestone did.
|
|
|
|
## Step 1 — Resolve owner and repo
|
|
|
|
Extract them from the git remote before any tool call, skipping this when an orchestrating caller already passed them in:
|
|
|
|
```bash
|
|
rtk git remote get-url origin
|
|
```
|
|
|
|
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
|
|
|
|
Confirm the number names a PR, not an issue, before writing to it.
|
|
|
|
| Task | Tool | Reference |
|
|
|---|---|---|
|
|
| List PRs; read a PR's details, diff, changed files or CI status | `list_pull_requests`, `pull_request_read` | `references/pull-requests.md` |
|
|
| Create a PR — subject to the silent-drop Gotcha above | `pull_request_write` | `references/pull-requests.md` |
|
|
| Update, close, reopen or retarget a PR, sync it with its base, or add/remove reviewers | `pull_request_write` | `references/pull-requests.md` |
|
|
| Merge a PR, or judge whether it can merge | `pull_request_write method: "merge"` | `references/merging.md` |
|
|
| Read, create, submit, dismiss or delete a code review, or reply to and resolve a review comment thread | `pull_request_read`, `pull_request_review_write` | `references/reviews.md` |
|
|
|
|
Read the reference for the row you land on before making the call. Each carries the parameter signatures, the per-method behaviour and the response-shape quirks the row cannot, and every write method has at least one parameter that behaves differently from its issue-side counterpart.
|
|
|
|
## Step 3 — Resolving labels and milestones
|
|
|
|
`labels` and `milestone` take numeric IDs, never name or title strings. Before a `pull_request_write` call carrying either, resolve them through `gitea-labels-milestones`: `label_read method: "list_repo_labels"` for a label name, `milestone_read method: "list"` for a milestone title.
|
|
|
|
Resolve a milestone only when the call is an `"update"` — on `"create"` the lookup is wasted, per the Gotcha above. Recovering an existing PR's milestone ID needs the same lookup, because `pull_request_read` returns `milestone` as a bare title string and never an ID.
|