From 69addee943fda5753ce082966e7219565cc46cc7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Charlie=20Ringstr=C3=B6m?= Date: Tue, 1 Sep 2026 09:58:00 +0200 Subject: [PATCH 1/2] Add username to ATC output --- general/token/cli.go | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/general/token/cli.go b/general/token/cli.go index fcb3e8c1e..96068c674 100644 --- a/general/token/cli.go +++ b/general/token/cli.go @@ -74,11 +74,21 @@ func AccessTokenCreateCmd(c *cli.Context) error { if err != nil { return err } - return printTokenResponse(resBytes, outputFormat, os.Stdout) + return printTokenResponse(resBytes, outputFormat, os.Stdout, username) } // printTokenResponse writes the token response in the requested format to w. -func printTokenResponse(data []byte, outputFormat coreformat.OutputFormat, w io.Writer) error { +func printTokenResponse(data []byte, outputFormat coreformat.OutputFormat, w io.Writer, username string) error { + // Add username to atc output + var jsonData map[string]any + if err := json.Unmarshal(data, &jsonData); err != nil { + return err + } + jsonData["username"] = username + data, err := json.Marshal(jsonData) + if err != nil { + return err + } switch outputFormat { case coreformat.Json: log.Output(clientUtils.IndentJson(data)) From 51b42ec4941f87c4e42f20ebfae57cee3ad84a4a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Charlie=20Ringstr=C3=B6m?= Date: Tue, 1 Sep 2026 10:16:44 +0200 Subject: [PATCH 2/2] Pass tests --- general/token/cli.go | 2 +- general/token/cli_test.go | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/general/token/cli.go b/general/token/cli.go index 96068c674..0717ddd04 100644 --- a/general/token/cli.go +++ b/general/token/cli.go @@ -112,7 +112,7 @@ func printTokenTable(data []byte, w io.Writer) error { orderedKeys := []string{ "access_token", "token_id", "expires_in", "scope", "token_type", "refreshable", "refresh_token", "reference_token", - "grant_type", "audience", + "grant_type", "audience", "username", } tw := tabwriter.NewWriter(w, 0, 0, 2, ' ', 0) diff --git a/general/token/cli_test.go b/general/token/cli_test.go index 13a9b627f..b14e4f942 100644 --- a/general/token/cli_test.go +++ b/general/token/cli_test.go @@ -32,7 +32,7 @@ func TestPrintTokenResponse_JSON(t *testing.T) { data := sampleTokenResponse(t) var buf bytes.Buffer - err := printTokenResponse(data, coreformat.Json, &buf) + err := printTokenResponse(data, coreformat.Json, &buf, "username") require.NoError(t, err) // JSON format uses log.Output (writes to the real logger, not the writer). @@ -47,7 +47,7 @@ func TestPrintTokenResponse_Table(t *testing.T) { data := sampleTokenResponse(t) var buf bytes.Buffer - err := printTokenResponse(data, coreformat.Table, &buf) + err := printTokenResponse(data, coreformat.Table, &buf, "username") require.NoError(t, err) output := buf.String() @@ -64,6 +64,7 @@ func TestPrintTokenResponse_Table(t *testing.T) { assert.Contains(t, output, "applied-permissions/user") assert.Contains(t, output, "token_type") assert.Contains(t, output, "Bearer") + assert.Contains(t, output, "username") } func TestPrintTokenResponse_Table_AccessTokenTruncated(t *testing.T) { @@ -73,7 +74,7 @@ func TestPrintTokenResponse_Table_AccessTokenTruncated(t *testing.T) { require.NoError(t, err) var buf bytes.Buffer - require.NoError(t, printTokenResponse(data, coreformat.Table, &buf)) + require.NoError(t, printTokenResponse(data, coreformat.Table, &buf, "username")) output := buf.String() assert.Contains(t, output, "access_token") @@ -91,7 +92,7 @@ func TestPrintTokenResponse_Table_AbsentFieldsOmitted(t *testing.T) { require.NoError(t, err) var buf bytes.Buffer - require.NoError(t, printTokenResponse(data, coreformat.Table, &buf)) + require.NoError(t, printTokenResponse(data, coreformat.Table, &buf, "username")) output := buf.String() assert.NotContains(t, output, "token_id") @@ -100,7 +101,7 @@ func TestPrintTokenResponse_Table_AbsentFieldsOmitted(t *testing.T) { } func TestPrintTokenResponse_UnsupportedFormat(t *testing.T) { - err := printTokenResponse([]byte("{}"), coreformat.Sarif, &bytes.Buffer{}) + err := printTokenResponse([]byte("{}"), coreformat.Sarif, &bytes.Buffer{}, "username") require.Error(t, err) assert.Contains(t, err.Error(), "unsupported format") } @@ -181,4 +182,3 @@ func TestPrintOidcTokenResponse_UnsupportedFormat(t *testing.T) { require.Error(t, err) assert.Contains(t, err.Error(), "unsupported format") } -