S33: declare RepoWebhooksMounter
- SHA
d99c093cc5615583e96037615f113e591f161984- Parents
-
3897a08 - Tree
3bfc940
d99c093
d99c093cc5615583e96037615f113e591f1619843897a08
3bfc940| Status | File | + | - |
|---|---|---|---|
| M |
internal/web/handlers/handlers.go
|
10 | 0 |
internal/web/handlers/handlers.gomodified@@ -75,6 +75,10 @@ type Deps struct { | ||
| 75 | 75 | // the deferred-tab placeholders (webhooks, keys, notifications, |
| 76 | 76 | // tags) under /{owner}/{repo}/settings/* (S32). Auth-required. |
| 77 | 77 | RepoSettingsGeneralMounter func(chi.Router) |
| 78 | + // RepoWebhooksMounter registers the per-repo webhook CRUD + | |
| 79 | + // delivery views under /{owner}/{repo}/settings/webhooks/* (S33). | |
| 80 | + // Auth-required. | |
| 81 | + RepoWebhooksMounter func(chi.Router) | |
| 78 | 82 | // RepoIssuesMounter registers /{owner}/{repo}/issues, /labels, and |
| 79 | 83 | // /milestones routes (S21). Reads are public (per-repo policy gate); |
| 80 | 84 | // writes are auth-required. |
@@ -243,6 +247,12 @@ func RegisterChi(r *chi.Mux, deps Deps) (*chi.Mux, middleware.PanicHandler, http | ||
| 243 | 247 | if deps.RepoSettingsGeneralMounter != nil { |
| 244 | 248 | deps.RepoSettingsGeneralMounter(r) |
| 245 | 249 | } |
| 250 | + // Webhooks (S33) — register BEFORE the general mounter so the | |
| 251 | + // /settings/webhooks GET resolves to the new CRUD list, not | |
| 252 | + // any stale placeholder. | |
| 253 | + if deps.RepoWebhooksMounter != nil { | |
| 254 | + deps.RepoWebhooksMounter(r) | |
| 255 | + } | |
| 246 | 256 | if deps.RepoIssuesMounter != nil { |
| 247 | 257 | deps.RepoIssuesMounter(r) |
| 248 | 258 | } |