diff --git a/services/webhook/slack.go b/services/webhook/slack.go index 368a92607b..23fd5a5b16 100644 --- a/services/webhook/slack.go +++ b/services/webhook/slack.go @@ -7,7 +7,6 @@ import ( "context" "fmt" "net/http" - "regexp" "strings" webhook_model "gitea.dev/models/webhook" @@ -317,12 +316,10 @@ func init() { RegisterWebhookRequester(webhook_module.SLACK, newSlackRequest) } -var slackChannel = regexp.MustCompile(`^#?[a-z0-9_-]{1,80}$`) - -// IsValidSlackChannel validates a channel name conforms to what slack expects: -// https://api.slack.com/methods/conversations.rename#naming -// Conversation names can only contain lowercase letters, numbers, hyphens, and underscores, and must be 80 characters or less. -// Gitea accepts if it starts with a #. func IsValidSlackChannel(name string) bool { - return slackChannel.MatchString(name) + // Some documents: https://api.slack.com/methods/conversations.rename#naming + // 1. Internal channel name should "only contain lowercase letters, numbers, hyphens, and underscores, and must be 80 characters or less" + // 2. Slack would also "modify it to meet the above criteria" + // Since we know nothing about the details, don't do any validation here. + return name != "" } diff --git a/services/webhook/slack_test.go b/services/webhook/slack_test.go index ab1a3798c8..f49e7203e0 100644 --- a/services/webhook/slack_test.go +++ b/services/webhook/slack_test.go @@ -191,22 +191,3 @@ func TestSlackJSONPayload(t *testing.T) { assert.NoError(t, err) assert.Equal(t, "[:] 2 new commits pushed by user1", body.Text) } - -func TestIsValidSlackChannel(t *testing.T) { - tt := []struct { - channelName string - expected bool - }{ - {"gitea", true}, - {"#gitea", true}, - {" ", false}, - {"#", false}, - {" #", false}, - {"gitea ", false}, - {" gitea", false}, - } - - for _, v := range tt { - assert.Equal(t, v.expected, IsValidSlackChannel(v.channelName)) - } -}