From f7ac5765ea4318ea9bb2cddc41c6a4add06e8aae Mon Sep 17 00:00:00 2001 From: Anirudh Oppiliappan Date: Tue, 17 Feb 2026 14:11:04 +0200 Subject: [PATCH] appview/pages: list webhook deliveries in repo settings Signed-off-by: Anirudh Oppiliappan --- appview/pages/pages.go | 26 +++++-- .../settings/fragments/webhookDeliveries.html | 74 +++++++++++++++++++ .../pages/templates/repo/settings/hooks.html | 72 +++++++++++++++++- 3 files changed, 166 insertions(+), 6 deletions(-) create mode 100644 appview/pages/templates/repo/settings/fragments/webhookDeliveries.html diff --git a/appview/pages/pages.go b/appview/pages/pages.go index 82ad0b2a..4b77b34c 100644 --- a/appview/pages/pages.go +++ b/appview/pages/pages.go @@ -965,11 +965,12 @@ func (p *Pages) RepoPipelineSettings(w io.Writer, params RepoPipelineSettingsPar } type RepoWebhooksSettingsParams struct { - LoggedInUser *oauth.MultiAccountUser - RepoInfo repoinfo.RepoInfo - Active string - Tab string - Webhooks []models.Webhook + LoggedInUser *oauth.MultiAccountUser + RepoInfo repoinfo.RepoInfo + Active string + Tab string + Webhooks []models.Webhook + WebhookDeliveries map[int64][]models.WebhookDelivery } func (p *Pages) RepoWebhooksSettings(w io.Writer, params RepoWebhooksSettingsParams) error { @@ -978,6 +979,21 @@ func (p *Pages) RepoWebhooksSettings(w io.Writer, params RepoWebhooksSettingsPar return p.executeRepo("repo/settings/hooks", w, params) } +type WebhookDeliveriesListParams struct { + LoggedInUser *oauth.MultiAccountUser + RepoInfo repoinfo.RepoInfo + Webhook *models.Webhook + Deliveries []models.WebhookDelivery +} + +func (p *Pages) WebhookDeliveriesList(w io.Writer, params WebhookDeliveriesListParams) error { + tpl, err := p.parse("repo/settings/fragments/webhookDeliveries") + if err != nil { + return err + } + return tpl.ExecuteTemplate(w, "repo/settings/fragments/webhookDeliveries", params) +} + type RepoIssuesParams struct { LoggedInUser *oauth.MultiAccountUser RepoInfo repoinfo.RepoInfo diff --git a/appview/pages/templates/repo/settings/fragments/webhookDeliveries.html b/appview/pages/templates/repo/settings/fragments/webhookDeliveries.html new file mode 100644 index 00000000..f097d651 --- /dev/null +++ b/appview/pages/templates/repo/settings/fragments/webhookDeliveries.html @@ -0,0 +1,74 @@ +{{define "repo/settings/fragments/webhookDeliveries"}} +
+
+

Recent Deliveries

+ +
+ +
+ {{ .Webhook.Url }} +
+ + {{ if .Deliveries }} +
+ {{ range .Deliveries }} +
+ +
+ {{ if .Success }} + + {{ i "circle-check" "size-3" }} + {{ .ResponseCode }} + + {{ else }} + + {{ i "circle-x" "size-3" }} + {{ if .ResponseCode }}{{ .ResponseCode }}{{ else }}failed{{ end }} + + {{ end }} + + {{ .DeliveryId }} + + + {{ i "chevron-down" "size-4" }} + +
+
+ Event: {{ .Event }} +
+
+ {{ .CreatedAt.Format "2006-01-02 15:04:05 MST" }} +
+
+ +
+
+
+
Request Body
+
{{ .RequestBody }}
+
+ + {{ if .ResponseBody }} +
+
Response Body
+
{{ .ResponseBody }}
+
+ {{ end }} +
+
+
+ {{ end }} +
+ {{ else }} +
+ No deliveries yet +
+ {{ end }} +
+{{end}} diff --git a/appview/pages/templates/repo/settings/hooks.html b/appview/pages/templates/repo/settings/hooks.html index c4e84604..c0446dde 100644 --- a/appview/pages/templates/repo/settings/hooks.html +++ b/appview/pages/templates/repo/settings/hooks.html @@ -82,8 +82,9 @@ {{ end }} + {{ if $.RepoInfo.Roles.IsOwner }} -
+
+ {{ end }} + + + {{ $deliveries := index $.WebhookDeliveries .Id }} + {{ if $deliveries }} +
+
+

Recent Deliveries

+
+
+ {{ range $deliveries }} +
+ {{ if .Success }} + + {{ i "circle-check" "size-3" }} + {{ .ResponseCode }} + + {{ else }} + + {{ i "circle-x" "size-3" }} + {{ if .ResponseCode }}{{ .ResponseCode }}{{ else }}failed{{ end }} + + {{ end }} + + {{ .DeliveryId }} + + + {{ .Event }} + + + {{ .CreatedAt.Format "Jan 02, 15:04" }} + +
+ {{ end }} +
+
+ +
+
+ {{ else }} +
+
+ No deliveries yet +
+
+ {{ end }} + + +
+
+ {{ i "loader-circle" "size-6 animate-spin" }} +
+
+ + {{ if $.RepoInfo.Roles.IsOwner }}