F5 — Watch / unwatch + automatic webhook lifecycle #486
Labels
No labels
area:agents
area:dashboard
area:database
area:design
area:design-review
area:flows
area:infra
area:meta
area:security
area:sessions
area:webhook
area:workdir
security
type:bug
type:chore
type:meta
type:user-story
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
charles/claude-hooks#486
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
As an operator, I want clicking "Watch" on a repo in the picker to create the webhook on the active forge automatically.
Acceptance criteria
POST /watched-reposbody{ owner, name }(forge_type resolved server-side as the active forge). Generates a 32-byte randomwebhook_secret, writes the row withenabled=1, then callsForgePort.createWebhook({ owner, name, url: '<public_base_url>/webhooks/<forge>', secret }). Stores the returnedwebhook_id.DELETE /watched-repos/{owner}/{name}: callsForgePort.deleteWebhookagainst the row'sforge_type(operator can unwatch rows from any forge they have an OAuth row for, not only the active one — useful for cleanup after switching). Then deletes the row. 404 from the forge → still delete the row.PATCH /watched-repos/{owner}/{name}body{ enabled: bool }: toggles dispatch without deleting the webhook.ForgePortextended withcreateWebhook/deleteWebhook/editWebhook/listWebhooks; each adapter (forgejo, github, gitlab) implements via its forge API.docs/multi-forge.md§"Subscribe to individual events".public_base_urlconfig key required; startup fails if missing AND any OAuth client is configured.Out of scope
References
docs/specs/forge-auth-repo-selection.md§F5docs/multi-forge.mdDependencies