From 09b643bc147915928876e50d03ebd08b97eb3632 Mon Sep 17 00:00:00 2001 From: silverwind Date: Thu, 6 Aug 2026 15:50:16 +0000 Subject: [PATCH] fix: trim whitespace from register inputs (#1147) Secrets often carry a trailing newline, for example from `echo "token" | base64`, which made `register --no-interactive` fail with `runner registration token not found`. The interactive path already trims typed values, this aligns the flag path. Related to: https://gitea.com/gitea/runner/issues/727 Reviewed-on: https://gitea.com/gitea/runner/pulls/1147 Reviewed-by: techknowlogick <9+techknowlogick@noreply.gitea.com> Co-authored-by: silverwind --- internal/app/cmd/register.go | 6 +++--- internal/app/cmd/register_test.go | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/internal/app/cmd/register.go b/internal/app/cmd/register.go index e980cb15..1203a849 100644 --- a/internal/app/cmd/register.go +++ b/internal/app/cmd/register.go @@ -230,9 +230,9 @@ func initInputs(regArgs *registerArgs) (*registerInputs, error) { token = envToken } inputs := ®isterInputs{ - InstanceAddr: regArgs.InstanceAddr, - Token: token, - RunnerName: regArgs.RunnerName, + InstanceAddr: strings.TrimSpace(regArgs.InstanceAddr), + Token: strings.TrimSpace(token), + RunnerName: strings.TrimSpace(regArgs.RunnerName), Ephemeral: regArgs.Ephemeral, } regArgs.Labels = strings.TrimSpace(regArgs.Labels) diff --git a/internal/app/cmd/register_test.go b/internal/app/cmd/register_test.go index 5442d16d..72b22495 100644 --- a/internal/app/cmd/register_test.go +++ b/internal/app/cmd/register_test.go @@ -184,9 +184,9 @@ func TestInitInputs(t *testing.T) { t.Run("valid token", func(t *testing.T) { t.Setenv(registerTokenEnvVar, "from-env") inputs, err := initInputs(®isterArgs{ - InstanceAddr: "http://localhost:3000", - Token: "from-plain-arg", - RunnerName: "runner", + InstanceAddr: " http://localhost:3000 ", + Token: "from-plain-arg\n", + RunnerName: "runner\n", Ephemeral: true, Labels: " ubuntu:host , ubuntu:docker://node:18 ", }) @@ -203,7 +203,7 @@ func TestInitInputs(t *testing.T) { tokenFile, createErr := os.CreateTemp(t.TempDir(), "from-file") require.NoError(t, createErr) defer tokenFile.Close() - _, writeErr := tokenFile.WriteString("from-file") + _, writeErr := tokenFile.WriteString("from-file\n") require.NoError(t, writeErr) _ = tokenFile.Sync()