ad00654487
forge CreatePullRequest (Gitea; empty base resolves to the repo default branch). Service CreatePR records a pr-created event. HTTP POST /api/repo/pr/create; MCP tool create_pr; <pr-list> New pull request button (head = selected repo current branch, base = default). Live-tested end-to-end: app create_pr opened a real PR (base auto-resolved), listed, then cleaned up; main untouched. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1.5 KiB
1.5 KiB
pr-list
Intent
Shows the open pull requests for the selected repository and provides the "Merge & clean up" action (AGENT.md §8.4) — the feature that makes PRs usable for someone who otherwise finds them clutter: squash-merge and delete the branch in one click. The merge is DESTRUCTIVE (§1.4), so the button confirms first, naming the PR, base, and branch to be deleted.
Public surface
- Tag:
<pr-list> - Attributes/properties: none. Hides itself (
hidden) when no forge is configured or the repo isn't on the forge host. - Listens:
repo:selectondocument— loads PRs forevent.detail.path. - Fetches:
GET /api/repo/prs?path=…({supported:false}→ hidden). - Writes:
POST /api/repo/pr/merge {path, number}after aconfirm();POST /api/repo/pr/create {path, head, base, title}via the "New pull request…" button (head = the selected repo's current branch, base = the repo default).
History
- 2026-09-20: created — slice 5 (forge); list open PRs + "Merge & clean up".
- 2026-09-20: added "New pull request…" (create_pr) — opens a PR from the selected repo's current branch into the default branch (slice 10).
Notes / gotchas
- Requires
GITEA_URL+GITEA_TOKENon the server; otherwise the component stays hidden (graceful degradation). - Fork PRs are labelled; their branch lives in the fork, so cleanup only deletes branches in the same repo (the server enforces this too).
- All server-derived text is escaped; the PR link opens in a new tab.