summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--routers/api/v1/utils/hook.go3
-rw-r--r--services/webhook/webhook.go7
2 files changed, 7 insertions, 3 deletions
diff --git a/routers/api/v1/utils/hook.go b/routers/api/v1/utils/hook.go
index c8471184f5..8decc5cf43 100644
--- a/routers/api/v1/utils/hook.go
+++ b/routers/api/v1/utils/hook.go
@@ -6,6 +6,7 @@ package utils
import (
"encoding/json"
+ "fmt"
"net/http"
"strings"
@@ -53,7 +54,7 @@ func GetRepoHook(ctx *context.APIContext, repoID, hookID int64) (*models.Webhook
// write the appropriate error to `ctx`. Return whether the form is valid
func CheckCreateHookOption(ctx *context.APIContext, form *api.CreateHookOption) bool {
if !webhook.IsValidHookTaskType(form.Type) {
- ctx.Error(http.StatusUnprocessableEntity, "", "Invalid hook type")
+ ctx.Error(http.StatusUnprocessableEntity, "", fmt.Sprintf("Invalid hook type: %s", form.Type))
return false
}
for _, name := range []string{"url", "content_type"} {
diff --git a/services/webhook/webhook.go b/services/webhook/webhook.go
index a86d638ab5..b779b38466 100644
--- a/services/webhook/webhook.go
+++ b/services/webhook/webhook.go
@@ -60,12 +60,15 @@ var (
// RegisterWebhook registers a webhook
func RegisterWebhook(name string, webhook *webhook) {
- webhooks[models.HookTaskType(name)] = webhook
+ webhooks[models.HookTaskType(strings.TrimSpace(name))] = webhook
}
// IsValidHookTaskType returns true if a webhook registered
func IsValidHookTaskType(name string) bool {
- _, ok := webhooks[models.HookTaskType(name)]
+ if name == models.GITEA || name == models.GOGS {
+ return true
+ }
+ _, ok := webhooks[models.HookTaskType(strings.TrimSpace(name))]
return ok
}