mirror of
https://github.com/woodpecker-ci/woodpecker.git
synced 2025-09-02 15:10:15 +00:00
Fix uppercase from_secrets (#842)
Secret names where matched based on their lowercase value already just the conversion to lowercase for `from_secrets` was missing.
This commit is contained in:
@@ -69,7 +69,7 @@ func sanitizeParamValue(v interface{}, secrets map[string]Secret) (string, error
|
|||||||
if fromSecret, ok := v.(map[string]interface{}); ok {
|
if fromSecret, ok := v.(map[string]interface{}); ok {
|
||||||
if secretNameI, ok := fromSecret["from_secret"]; ok {
|
if secretNameI, ok := fromSecret["from_secret"]; ok {
|
||||||
if secretName, ok := secretNameI.(string); ok {
|
if secretName, ok := secretNameI.(string); ok {
|
||||||
if secret, ok := secrets[secretName]; ok {
|
if secret, ok := secrets[strings.ToLower(secretName)]; ok {
|
||||||
return secret.Value, nil
|
return secret.Value, nil
|
||||||
}
|
}
|
||||||
return "", fmt.Errorf("no secret found for %q", secretName)
|
return "", fmt.Errorf("no secret found for %q", secretName)
|
||||||
|
@@ -9,33 +9,35 @@ import (
|
|||||||
|
|
||||||
func TestParamsToEnv(t *testing.T) {
|
func TestParamsToEnv(t *testing.T) {
|
||||||
from := map[string]interface{}{
|
from := map[string]interface{}{
|
||||||
"skip": nil,
|
"skip": nil,
|
||||||
"string": "stringz",
|
"string": "stringz",
|
||||||
"int": 1,
|
"int": 1,
|
||||||
"float": 1.2,
|
"float": 1.2,
|
||||||
"bool": true,
|
"bool": true,
|
||||||
"slice": []int{1, 2, 3},
|
"slice": []int{1, 2, 3},
|
||||||
"map": map[string]string{"hello": "world"},
|
"map": map[string]string{"hello": "world"},
|
||||||
"complex": []struct{ Name string }{{"Jack"}, {"Jill"}},
|
"complex": []struct{ Name string }{{"Jack"}, {"Jill"}},
|
||||||
"complex2": struct{ Name string }{"Jack"},
|
"complex2": struct{ Name string }{"Jack"},
|
||||||
"from.address": "noreply@example.com",
|
"from.address": "noreply@example.com",
|
||||||
"tags": stringsToInterface("next", "latest"),
|
"tags": stringsToInterface("next", "latest"),
|
||||||
"tag": stringsToInterface("next"),
|
"tag": stringsToInterface("next"),
|
||||||
"my_secret": map[string]interface{}{"from_secret": "secret_token"},
|
"my_secret": map[string]interface{}{"from_secret": "secret_token"},
|
||||||
|
"UPPERCASE_SECRET": map[string]interface{}{"from_secret": "SECRET_TOKEN"},
|
||||||
}
|
}
|
||||||
want := map[string]string{
|
want := map[string]string{
|
||||||
"PLUGIN_STRING": "stringz",
|
"PLUGIN_STRING": "stringz",
|
||||||
"PLUGIN_INT": "1",
|
"PLUGIN_INT": "1",
|
||||||
"PLUGIN_FLOAT": "1.2",
|
"PLUGIN_FLOAT": "1.2",
|
||||||
"PLUGIN_BOOL": "true",
|
"PLUGIN_BOOL": "true",
|
||||||
"PLUGIN_SLICE": "1,2,3",
|
"PLUGIN_SLICE": "1,2,3",
|
||||||
"PLUGIN_MAP": `{"hello":"world"}`,
|
"PLUGIN_MAP": `{"hello":"world"}`,
|
||||||
"PLUGIN_COMPLEX": `[{"name":"Jack"},{"name":"Jill"}]`,
|
"PLUGIN_COMPLEX": `[{"name":"Jack"},{"name":"Jill"}]`,
|
||||||
"PLUGIN_COMPLEX2": `{"name":"Jack"}`,
|
"PLUGIN_COMPLEX2": `{"name":"Jack"}`,
|
||||||
"PLUGIN_FROM_ADDRESS": "noreply@example.com",
|
"PLUGIN_FROM_ADDRESS": "noreply@example.com",
|
||||||
"PLUGIN_TAG": "next",
|
"PLUGIN_TAG": "next",
|
||||||
"PLUGIN_TAGS": "next,latest",
|
"PLUGIN_TAGS": "next,latest",
|
||||||
"PLUGIN_MY_SECRET": "FooBar",
|
"PLUGIN_MY_SECRET": "FooBar",
|
||||||
|
"PLUGIN_UPPERCASE_SECRET": "FooBar",
|
||||||
}
|
}
|
||||||
secrets := map[string]Secret{
|
secrets := map[string]Secret{
|
||||||
"secret_token": {Name: "secret_token", Value: "FooBar", Match: nil},
|
"secret_token": {Name: "secret_token", Value: "FooBar", Match: nil},
|
||||||
|
Reference in New Issue
Block a user