loading up the forgejo repo on tangled to test page performance
at forgejo 1.2 kB view raw
1// Copyright 2024 The Forgejo Authors c/o Codeberg e.V.. All rights reserved. 2// SPDX-License-Identifier: MIT 3 4package webhook 5 6import ( 7 "html/template" 8 "net/http" 9 10 webhook_model "forgejo.org/models/webhook" 11 webhook_module "forgejo.org/modules/webhook" 12 "forgejo.org/services/forms" 13 "forgejo.org/services/webhook/shared" 14) 15 16type gogsHandler struct{ defaultHandler } 17 18func (gogsHandler) Type() webhook_module.HookType { return webhook_module.GOGS } 19func (gogsHandler) Icon(size int) template.HTML { return shared.ImgIcon("gogs.ico", size) } 20 21func (gogsHandler) UnmarshalForm(bind func(any)) forms.WebhookForm { 22 var form struct { 23 forms.WebhookCoreForm 24 PayloadURL string `binding:"Required;ValidUrl"` 25 ContentType int `binding:"Required"` 26 Secret string 27 } 28 bind(&form) 29 30 contentType := webhook_model.ContentTypeJSON 31 if webhook_model.HookContentType(form.ContentType) == webhook_model.ContentTypeForm { 32 contentType = webhook_model.ContentTypeForm 33 } 34 return forms.WebhookForm{ 35 WebhookCoreForm: form.WebhookCoreForm, 36 URL: form.PayloadURL, 37 ContentType: contentType, 38 Secret: form.Secret, 39 HTTPMethod: http.MethodPost, 40 Metadata: nil, 41 } 42}