mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 16:40:24 +08:00 
			
		
		
		
	Possible fix the webhook API creation (#13960)
* Possible fix the webhook API creation * Fix api create webhook bug
This commit is contained in:
		@@ -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"} {
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user