mirror of
https://github.com/go-gitea/gitea
synced 2025-07-22 18:28:37 +00:00
Slack webhook channel name cannot be empty or just contain an hashtag (#4786)
This commit is contained in:
committed by
techknowlogick
parent
6e03390aa8
commit
be48397945
@@ -15,3 +15,22 @@ func RemoveUsernameParameterSuffix(name string) string {
|
||||
}
|
||||
return name
|
||||
}
|
||||
|
||||
// IsValidSlackChannel validates a channel name conforms to what slack expects.
|
||||
// It makes sure a channel name cannot be empty and invalid ( only an # )
|
||||
func IsValidSlackChannel(channelName string) bool {
|
||||
switch len(strings.TrimSpace(channelName)) {
|
||||
case 0:
|
||||
return false
|
||||
case 1:
|
||||
// Keep default behaviour where a channel name is still
|
||||
// valid without an #
|
||||
// But if it contains only an #, it should be regarded as
|
||||
// invalid
|
||||
if channelName[0] == '#' {
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
return true
|
||||
}
|
||||
|
@@ -15,3 +15,20 @@ func TestRemoveUsernameParameterSuffix(t *testing.T) {
|
||||
assert.Equal(t, "foobar", RemoveUsernameParameterSuffix("foobar"))
|
||||
assert.Equal(t, "", RemoveUsernameParameterSuffix(""))
|
||||
}
|
||||
|
||||
func TestIsValidSlackChannel(t *testing.T) {
|
||||
tt := []struct {
|
||||
channelName string
|
||||
expected bool
|
||||
}{
|
||||
{"gitea", true},
|
||||
{" ", false},
|
||||
{"#", false},
|
||||
{"gitea ", true},
|
||||
{" gitea", true},
|
||||
}
|
||||
|
||||
for _, v := range tt {
|
||||
assert.Equal(t, v.expected, IsValidSlackChannel(v.channelName))
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user