mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-12-23 14:53:34 +01:00
42 lines
1.2 KiB
Go
42 lines
1.2 KiB
Go
// Copyright 2024 The Forgejo Authors c/o Codeberg e.V.. All rights reserved.
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
package webhook
|
|
|
|
import (
|
|
"html/template"
|
|
"net/http"
|
|
|
|
webhook_model "code.gitea.io/gitea/models/webhook"
|
|
webhook_module "code.gitea.io/gitea/modules/webhook"
|
|
"code.gitea.io/gitea/services/forms"
|
|
"code.gitea.io/gitea/services/webhook/shared"
|
|
)
|
|
|
|
type gogsHandler struct{ defaultHandler }
|
|
|
|
func (gogsHandler) Type() webhook_module.HookType { return webhook_module.GOGS }
|
|
func (gogsHandler) Icon(size int) template.HTML { return shared.ImgIcon("gogs.ico", size) }
|
|
|
|
func (gogsHandler) UnmarshalForm(bind func(any)) forms.WebhookForm {
|
|
var form struct {
|
|
forms.WebhookCoreForm
|
|
PayloadURL string `binding:"Required;ValidUrl"`
|
|
ContentType int `binding:"Required"`
|
|
Secret string
|
|
}
|
|
bind(&form)
|
|
|
|
contentType := webhook_model.ContentTypeJSON
|
|
if webhook_model.HookContentType(form.ContentType) == webhook_model.ContentTypeForm {
|
|
contentType = webhook_model.ContentTypeForm
|
|
}
|
|
return forms.WebhookForm{
|
|
WebhookCoreForm: form.WebhookCoreForm,
|
|
URL: form.PayloadURL,
|
|
ContentType: contentType,
|
|
Secret: form.Secret,
|
|
HTTPMethod: http.MethodPost,
|
|
Metadata: nil,
|
|
}
|
|
}
|