Skip to content

Commit 4290c9c

Browse files
Merge branch 'main' into dependabot/go_modules/github.com/stackitcloud/stackit-sdk-go/services/serviceaccount-0.21.1
2 parents e2705a5 + 2f33e04 commit 4290c9c

7 files changed

Lines changed: 90 additions & 29 deletions

File tree

‎.github/workflows/ci.yaml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ jobs:
5050
uses: actions/checkout@v7.0.1
5151

5252
- name: Check GoReleaser
53-
uses: goreleaser/goreleaser-action@v7.2.3
53+
uses: goreleaser/goreleaser-action@v7.3.0
5454
with:
5555
args: check
5656

‎.github/workflows/release.yaml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ jobs:
7474
uses: samuelmeuli/action-snapcraft@v3
7575

7676
- name: Run GoReleaser
77-
uses: goreleaser/goreleaser-action@v7.2.3
77+
uses: goreleaser/goreleaser-action@v7.3.0
7878
with:
7979
args: release --clean
8080
env:

‎AUTHENTICATION.md‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,3 +131,5 @@ Using this flow is less secure since the token is long-lived. You can provide th
131131
# Optional: provide a file path containing the OIDC token
132132
STACKIT_FEDERATED_TOKEN_FILE=/path/to/oidc-token.jwt
133133
```
134+
135+
When running in Azure DevOps with the [STACKIT Service Connection](https://marketplace.visualstudio.com/items?itemName=SchwarzDigits.stackit-service-connection), the CLI reads `STACKIT_SERVICE_CONNECTION_ID` and requests the OIDC token for that service connection.

‎go.mod‎

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
module github.com/stackitcloud/stackit-cli
22

3-
go 1.26.0
3+
go 1.26.10
44

55
require (
66
github.com/fatih/color v1.19.0
@@ -22,24 +22,24 @@ require (
2222
github.com/stackitcloud/stackit-sdk-go/services/automation v0.2.1
2323
github.com/stackitcloud/stackit-sdk-go/services/cdn v1.21.0
2424
github.com/stackitcloud/stackit-sdk-go/services/dns v0.25.0
25-
github.com/stackitcloud/stackit-sdk-go/services/edge v0.13.2
25+
github.com/stackitcloud/stackit-sdk-go/services/edge v0.14.0
2626
github.com/stackitcloud/stackit-sdk-go/services/git v0.14.1
2727
github.com/stackitcloud/stackit-sdk-go/services/iaas v1.15.1
2828
github.com/stackitcloud/stackit-sdk-go/services/intake v0.12.0
2929
github.com/stackitcloud/stackit-sdk-go/services/logs v0.10.2
3030
github.com/stackitcloud/stackit-sdk-go/services/mongodbflex v1.13.0
3131
github.com/stackitcloud/stackit-sdk-go/services/opensearch v1.5.0
3232
github.com/stackitcloud/stackit-sdk-go/services/postgresflex v1.15.0
33-
github.com/stackitcloud/stackit-sdk-go/services/resourcemanager v0.26.1
33+
github.com/stackitcloud/stackit-sdk-go/services/resourcemanager v0.27.0
3434
github.com/stackitcloud/stackit-sdk-go/services/runcommand v1.11.0
35-
github.com/stackitcloud/stackit-sdk-go/services/secretsmanager v0.19.1
35+
github.com/stackitcloud/stackit-sdk-go/services/secretsmanager v0.20.0
3636
github.com/stackitcloud/stackit-sdk-go/services/serverbackup v1.7.3
3737
github.com/stackitcloud/stackit-sdk-go/services/serverupdate v1.6.0
3838
github.com/stackitcloud/stackit-sdk-go/services/serviceaccount v0.21.1
39-
github.com/stackitcloud/stackit-sdk-go/services/serviceenablement v1.7.2
39+
github.com/stackitcloud/stackit-sdk-go/services/serviceenablement v1.8.0
4040
github.com/stackitcloud/stackit-sdk-go/services/ske v1.21.2
4141
github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex v1.18.1
42-
github.com/stackitcloud/stackit-sdk-go/services/valkey v0.3.1
42+
github.com/stackitcloud/stackit-sdk-go/services/valkey v0.4.0
4343
github.com/stackitcloud/stackit-sdk-go/services/vpn v0.15.2
4444
github.com/zalando/go-keyring v0.2.8
4545
golang.org/x/mod v0.41.0
@@ -269,12 +269,12 @@ require (
269269
github.com/spf13/cast v1.10.0 // indirect
270270
github.com/stackitcloud/stackit-sdk-go/services/kms v1.14.0
271271
github.com/stackitcloud/stackit-sdk-go/services/loadbalancer v1.16.0
272-
github.com/stackitcloud/stackit-sdk-go/services/logme v1.4.0
273-
github.com/stackitcloud/stackit-sdk-go/services/mariadb v1.3.1
272+
github.com/stackitcloud/stackit-sdk-go/services/logme v1.5.0
273+
github.com/stackitcloud/stackit-sdk-go/services/mariadb v1.4.0
274274
github.com/stackitcloud/stackit-sdk-go/services/objectstorage v1.12.0
275275
github.com/stackitcloud/stackit-sdk-go/services/observability v0.25.2
276276
github.com/stackitcloud/stackit-sdk-go/services/rabbitmq v1.5.0
277-
github.com/stackitcloud/stackit-sdk-go/services/redis v1.5.0
277+
github.com/stackitcloud/stackit-sdk-go/services/redis v1.6.0
278278
github.com/stackitcloud/stackit-sdk-go/services/sfs v0.11.3
279279
github.com/subosito/gotenv v1.6.0 // indirect
280280
golang.org/x/sys v0.48.0 // indirect

‎go.sum‎

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -622,8 +622,8 @@ github.com/stackitcloud/stackit-sdk-go/services/cdn v1.21.0 h1:lCs1eq/OOTdwGrrkx
622622
github.com/stackitcloud/stackit-sdk-go/services/cdn v1.21.0/go.mod h1:NBgvZH5ekJ2hFCNI480C9MdJsa4989YGC1YgX5ELA48=
623623
github.com/stackitcloud/stackit-sdk-go/services/dns v0.25.0 h1:Yn4etadrdEEPU8YcbvF7a/UExSqri+jUC62w62ic4N8=
624624
github.com/stackitcloud/stackit-sdk-go/services/dns v0.25.0/go.mod h1:D0iv6XBYkaEwTjbBeom0VTZnwQMfwb48FC8R2jRg80c=
625-
github.com/stackitcloud/stackit-sdk-go/services/edge v0.13.2 h1:UDkXmgOAlP3y/u7FKp6/MaVxvSi38hNqnj1HytM6bU4=
626-
github.com/stackitcloud/stackit-sdk-go/services/edge v0.13.2/go.mod h1:hlUcPvOgH/CzZqH7u4SwV81qiismCVAtvw5pTAf6si4=
625+
github.com/stackitcloud/stackit-sdk-go/services/edge v0.14.0 h1:TTwlI34FUb0AisiApxKs5brGNP3Ma9cTvdmbxzNxs40=
626+
github.com/stackitcloud/stackit-sdk-go/services/edge v0.14.0/go.mod h1:FBBnDsQns6SjJYQrox3YSY7ydOa4T8FR3sXNwFRTsPc=
627627
github.com/stackitcloud/stackit-sdk-go/services/git v0.14.1 h1:7R5peSRer3Y83mfB6wcdCP0vhEjsq4myUdVhl24q6to=
628628
github.com/stackitcloud/stackit-sdk-go/services/git v0.14.1/go.mod h1:kz2pl17t9MNQx0+fNXg10ZAVfjmvOtsHB7VlAzu/Io8=
629629
github.com/stackitcloud/stackit-sdk-go/services/iaas v1.15.1 h1:5D0ABveu3SZyB7DBkVJcCSS4fr1TiMmfdJA98TgDn/o=
@@ -634,12 +634,12 @@ github.com/stackitcloud/stackit-sdk-go/services/kms v1.14.0 h1:6vZhGEIEqXUcs6pzp
634634
github.com/stackitcloud/stackit-sdk-go/services/kms v1.14.0/go.mod h1:ZBXRYWP4Yz3Gn75VSFz2mfcLSOrDEbiCoGTIXonvXkA=
635635
github.com/stackitcloud/stackit-sdk-go/services/loadbalancer v1.16.0 h1:zcPGXu16E5NRp5ocF/0JTnm6AyAQmk61iqIlUpAbfgo=
636636
github.com/stackitcloud/stackit-sdk-go/services/loadbalancer v1.16.0/go.mod h1:tVD3LmpowgML5U3imG9DdGAjhLmccibO92Ta7DPNfc0=
637-
github.com/stackitcloud/stackit-sdk-go/services/logme v1.4.0 h1:sm6Xw4tnJvHguNoHBqndpMX3wwzNmQx2ZwvPsU03ass=
638-
github.com/stackitcloud/stackit-sdk-go/services/logme v1.4.0/go.mod h1:88EgGOZDYkw31BPtuQsqhh2yqzF9ZfoggsP/cYz7+O0=
637+
github.com/stackitcloud/stackit-sdk-go/services/logme v1.5.0 h1:WFok0NMwTUTIZtClkYZW8M2mAkoQwyaIJD8hLltM+z8=
638+
github.com/stackitcloud/stackit-sdk-go/services/logme v1.5.0/go.mod h1:88EgGOZDYkw31BPtuQsqhh2yqzF9ZfoggsP/cYz7+O0=
639639
github.com/stackitcloud/stackit-sdk-go/services/logs v0.10.2 h1:ZVOAS95S445ZUvXLjs4a+xL6kkxDm1bUHjDzYXwGbU4=
640640
github.com/stackitcloud/stackit-sdk-go/services/logs v0.10.2/go.mod h1:euyZx4EqA2N7lVrC/wWxdCKalZmnY5zjfrjouNkGycA=
641-
github.com/stackitcloud/stackit-sdk-go/services/mariadb v1.3.1 h1:FZJLUhHVrlrfFnI5VqAx0dOEcTZpMi/vnk/MxkzTkJI=
642-
github.com/stackitcloud/stackit-sdk-go/services/mariadb v1.3.1/go.mod h1:P1HFWSmuy2i1WA0PhcDfGsa0CRcbGTE+wDb1iEAL8/E=
641+
github.com/stackitcloud/stackit-sdk-go/services/mariadb v1.4.0 h1:LFpdvASJnTv5Y/PEfwgK0pn7ixXLgcUmLt2cRTg979g=
642+
github.com/stackitcloud/stackit-sdk-go/services/mariadb v1.4.0/go.mod h1:GpFHOEVEq+Pog9dWPMvGeF4mEvB+MVLIRh3/jB1isUI=
643643
github.com/stackitcloud/stackit-sdk-go/services/mongodbflex v1.13.0 h1:+7cw7kFNw2dZ3opWDusuW+GC+3lwf8mjpHtIvi2+wqs=
644644
github.com/stackitcloud/stackit-sdk-go/services/mongodbflex v1.13.0/go.mod h1:yNxGU6mwDzXX82/QfgxRzg2M3+ktVNKS1qPzT01QIi0=
645645
github.com/stackitcloud/stackit-sdk-go/services/objectstorage v1.12.0 h1:IIvEF3DBLuPF38vvBfKWKaOTWKH9NjTpybd1pfAymb0=
@@ -652,30 +652,30 @@ github.com/stackitcloud/stackit-sdk-go/services/postgresflex v1.15.0 h1:TSxUvRRM
652652
github.com/stackitcloud/stackit-sdk-go/services/postgresflex v1.15.0/go.mod h1:7Ka8vrinx+DjCXv6lqCVZbIkDIbrzA4qrkNjXr6MUDM=
653653
github.com/stackitcloud/stackit-sdk-go/services/rabbitmq v1.5.0 h1:SAro5TWVJDDyiqMwew9Ta1tMcItBmWrCRYErIQ9+UBI=
654654
github.com/stackitcloud/stackit-sdk-go/services/rabbitmq v1.5.0/go.mod h1:mjYkyr/A/+9rZnX5IOLEoAMFqHsRCIToZWpsYzYBwWo=
655-
github.com/stackitcloud/stackit-sdk-go/services/redis v1.5.0 h1:+6TwnEoyqED1AgbWsBUkP1iOAg3fXfUqXCsjHqfKeQ4=
656-
github.com/stackitcloud/stackit-sdk-go/services/redis v1.5.0/go.mod h1:/wE98YN+s1s1OcaEPt8Z2xO0Y46Gur3nXlg1AiiMNeY=
657-
github.com/stackitcloud/stackit-sdk-go/services/resourcemanager v0.26.1 h1:6NHoXh6c/GQ7+CO03bszc09rnKCeP0dzMmyrnz6mkvs=
658-
github.com/stackitcloud/stackit-sdk-go/services/resourcemanager v0.26.1/go.mod h1:IsId3wbkp5oaO0JEaHZpZnbVW6KFHlAptwB+1iG3v3w=
655+
github.com/stackitcloud/stackit-sdk-go/services/redis v1.6.0 h1:5UEPilI+RCuXEM8jm4ibREoZAsSAGI1+KnJ0oapye7Q=
656+
github.com/stackitcloud/stackit-sdk-go/services/redis v1.6.0/go.mod h1:/wE98YN+s1s1OcaEPt8Z2xO0Y46Gur3nXlg1AiiMNeY=
657+
github.com/stackitcloud/stackit-sdk-go/services/resourcemanager v0.27.0 h1:lZl9X/wl0tF+HufZiurUkYJmk4u6/Vz8/FkdgT3wA10=
658+
github.com/stackitcloud/stackit-sdk-go/services/resourcemanager v0.27.0/go.mod h1:IsId3wbkp5oaO0JEaHZpZnbVW6KFHlAptwB+1iG3v3w=
659659
github.com/stackitcloud/stackit-sdk-go/services/runcommand v1.11.0 h1:EVeeGzvyiCN4VbInHIWXZtL8hPsVzZIdnfXjgyZzUf0=
660660
github.com/stackitcloud/stackit-sdk-go/services/runcommand v1.11.0/go.mod h1:KQLunYwad9IhSbnXuhkKAldVG9LNxCzIYHR8vMJlKQI=
661-
github.com/stackitcloud/stackit-sdk-go/services/secretsmanager v0.19.1 h1:Mym5vqa3YaF42LbqlVXDFYf/evsNU76l0wpUPGEu+0U=
662-
github.com/stackitcloud/stackit-sdk-go/services/secretsmanager v0.19.1/go.mod h1:oFbKTkCFtp/RVjTeuv5caSuuEnf3/JG8zRDB4nbLYes=
661+
github.com/stackitcloud/stackit-sdk-go/services/secretsmanager v0.20.0 h1:D4/yjPk0GMbp5X96luY3wGEkFJ8RjfLJsIQhHh2ZdwI=
662+
github.com/stackitcloud/stackit-sdk-go/services/secretsmanager v0.20.0/go.mod h1:yV1dcbGaZfdzwcJqjsRNpZ4VVDsQETAAYj2/MCPr4RE=
663663
github.com/stackitcloud/stackit-sdk-go/services/serverbackup v1.7.3 h1:wqAj7RP4GrfWct1de6ny7UyJpB2vcMaNXR/8xPkPwKg=
664664
github.com/stackitcloud/stackit-sdk-go/services/serverbackup v1.7.3/go.mod h1:VkF3N0fTP8zOztdeKEG0uoMuMp3larEqNB22fnvlA5M=
665665
github.com/stackitcloud/stackit-sdk-go/services/serverupdate v1.6.0 h1:X/LEJX8AfiOoKDf/pDLaZSzAxlDHzy+QIy4vD+TVeLc=
666666
github.com/stackitcloud/stackit-sdk-go/services/serverupdate v1.6.0/go.mod h1:z17c+hqIi6S5Op9Uk0FmxaeZIoN6and2AAV7P1viAqQ=
667667
github.com/stackitcloud/stackit-sdk-go/services/serviceaccount v0.21.1 h1:GJn6tlJscVpdovN2lekb9R5dOZ1ynM9+gIVhEVsRCE0=
668668
github.com/stackitcloud/stackit-sdk-go/services/serviceaccount v0.21.1/go.mod h1:f5RySI1PHkYlv2JWIfbTOBARwf/JR+iAs/qeoGiXAvU=
669-
github.com/stackitcloud/stackit-sdk-go/services/serviceenablement v1.7.2 h1:ne+TBZTWUzIg47X5vRbeyPfJCA1tafIN3R20ADBIu2Q=
670-
github.com/stackitcloud/stackit-sdk-go/services/serviceenablement v1.7.2/go.mod h1:gmOQuuRATNTmHTuwCsJ6ko1AwHThYpvEkmD2uOYEJCQ=
669+
github.com/stackitcloud/stackit-sdk-go/services/serviceenablement v1.8.0 h1:PsLXr7R/R/ceWIJOkist2B5chWm/Q34IgQd/dmhvWbQ=
670+
github.com/stackitcloud/stackit-sdk-go/services/serviceenablement v1.8.0/go.mod h1:izKsr/tJKDNPsgZ/LFQ2civLOICA75BKU06NNWgADIw=
671671
github.com/stackitcloud/stackit-sdk-go/services/sfs v0.11.3 h1:u3IgZPwcD6yncKPK+PYqPKKaRW4EqfH8x4ARa53DlXI=
672672
github.com/stackitcloud/stackit-sdk-go/services/sfs v0.11.3/go.mod h1:QDhu6jIIgqgO7l/wAGlfUDHC4Q20vfyUifh3a0qT3W4=
673673
github.com/stackitcloud/stackit-sdk-go/services/ske v1.21.2 h1:4ApmRQGkcf/G/h1s19QsqH/vqE3oqfrdG1J/3/40iEM=
674674
github.com/stackitcloud/stackit-sdk-go/services/ske v1.21.2/go.mod h1:YYwFQNYrYUpa4FeT/6pxky8vp7E7pPy2F6+Ptf469hg=
675675
github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex v1.18.1 h1:EU8vhBTmlqvQGPEeakXrzjpCsYHVaD3XU3sJO9Glj38=
676676
github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex v1.18.1/go.mod h1:T1xYY3XabHJW6HppYk486ECBRswNwB3tRFM/ZOfQft0=
677-
github.com/stackitcloud/stackit-sdk-go/services/valkey v0.3.1 h1:zAdxoRrUB5sIz73xAyXXQlZZ46Yc1p3rW1PerOLHNOk=
678-
github.com/stackitcloud/stackit-sdk-go/services/valkey v0.3.1/go.mod h1:8znHnd2b6rdEHSmW/36LQa4dMMaLuN8dwo3tD6arEic=
677+
github.com/stackitcloud/stackit-sdk-go/services/valkey v0.4.0 h1:75iJs+mZPnrGSlSoTZtKYYCyNqtqgx6JVChwJokcKVg=
678+
github.com/stackitcloud/stackit-sdk-go/services/valkey v0.4.0/go.mod h1:0crDO5v97ulHjVZVoFR2gJ4FCpEQeXGdM+V+AlZ6M6E=
679679
github.com/stackitcloud/stackit-sdk-go/services/vpn v0.15.2 h1:82VZJaJPwcBKSj8WV8v0ujBvbkbMxFXIvvv0wU+0Be0=
680680
github.com/stackitcloud/stackit-sdk-go/services/vpn v0.15.2/go.mod h1:3OHHiMoNDwI63Vtvf5B/2Hc2hLlaCyTvPwg8N6T957s=
681681
github.com/stbenjam/no-sprintf-host-port v0.3.1 h1:AyX7+dxI4IdLBPtDbsGAyqiTSLpCP9hWRrXQDU4Cm/g=

‎internal/pkg/auth/oidc.go‎

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ const (
1717
EnvGitHubRequestToken = "ACTIONS_ID_TOKEN_REQUEST_TOKEN" //nolint:gosec // linter false positive
1818
EnvAzureOIDCRequestURI = "SYSTEM_OIDCREQUESTURI"
1919
EnvAzureAccessToken = "SYSTEM_ACCESSTOKEN" //nolint:gosec // linter false positive
20+
EnvAzureServiceConnectionID = "STACKIT_SERVICE_CONNECTION_ID"
2021
)
2122

2223
func IsOIDCEnabled() bool {
@@ -40,7 +41,8 @@ func OIDCServiceAccountEmail() string {
4041
// TokenFunc returns the OIDCTokenFunc to use for Workload Identity Federation.
4142
// It checks the following token sources in order: STACKIT_SERVICE_ACCOUNT_FEDERATED_TOKEN,
4243
// STACKIT_FEDERATED_TOKEN_FILE, GitHub Actions (ACTIONS_ID_TOKEN_REQUEST_URL +
43-
// ACTIONS_ID_TOKEN_REQUEST_TOKEN), and Azure DevOps (SYSTEM_OIDCREQUESTURI + SYSTEM_ACCESSTOKEN).
44+
// ACTIONS_ID_TOKEN_REQUEST_TOKEN), and Azure DevOps (SYSTEM_OIDCREQUESTURI + SYSTEM_ACCESSTOKEN,
45+
// optionally scoped to the service connection set in STACKIT_SERVICE_CONNECTION_ID).
4446
// Returns an error if no source is detected.
4547
func OIDCTokenFunc() (oidcadapters.OIDCTokenFunc, error) {
4648
// static token provided directly via env var
@@ -65,7 +67,7 @@ func OIDCTokenFunc() (oidcadapters.OIDCTokenFunc, error) {
6567
// Azure DevOps
6668
if adoURL := os.Getenv(EnvAzureOIDCRequestURI); adoURL != "" {
6769
if adoToken := os.Getenv(EnvAzureAccessToken); adoToken != "" {
68-
return oidcadapters.RequestAzureDevOpsOIDCToken(adoURL, adoToken, ""), nil
70+
return oidcadapters.RequestAzureDevOpsOIDCToken(adoURL, adoToken, os.Getenv(EnvAzureServiceConnectionID)), nil
6971
}
7072
}
7173

‎internal/pkg/auth/oidc_test.go‎

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"encoding/json"
66
"net/http"
77
"net/http/httptest"
8+
"net/url"
89
"testing"
910

1011
"github.com/stackitcloud/stackit-cli/internal/pkg/auth"
@@ -169,6 +170,62 @@ func TestTokenFunc_AzureDevOps(t *testing.T) {
169170
}
170171
}
171172

173+
func TestTokenFunc_AzureDevOps_ServiceConnectionID(t *testing.T) {
174+
tests := []struct {
175+
description string
176+
serviceConnectionID string
177+
}{
178+
{
179+
description: "service connection id set",
180+
serviceConnectionID: "my-service-connection-id",
181+
},
182+
{
183+
description: "service connection id unset",
184+
serviceConnectionID: "",
185+
},
186+
}
187+
188+
for _, tt := range tests {
189+
t.Run(tt.description, func(t *testing.T) {
190+
var gotQuery url.Values
191+
srv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
192+
gotQuery = r.URL.Query()
193+
w.Header().Set("Content-Type", "application/json")
194+
tok := "ado-oidc-token"
195+
_ = json.NewEncoder(w).Encode(map[string]*string{"oidcToken": &tok})
196+
}))
197+
defer srv.Close()
198+
199+
t.Setenv(auth.EnvServiceAccountFederatedToken, "")
200+
t.Setenv(auth.EnvFederatedTokenFile, "")
201+
t.Setenv(auth.EnvGitHubRequestURL, "")
202+
t.Setenv(auth.EnvGitHubRequestToken, "")
203+
t.Setenv(auth.EnvAzureOIDCRequestURI, srv.URL)
204+
t.Setenv(auth.EnvAzureAccessToken, "ado-access-token")
205+
t.Setenv(auth.EnvAzureServiceConnectionID, tt.serviceConnectionID)
206+
207+
fn, err := auth.OIDCTokenFunc()
208+
if err != nil {
209+
t.Fatalf("OIDCTokenFunc() unexpected error: %v", err)
210+
}
211+
if _, err := fn(context.Background()); err != nil {
212+
t.Fatalf("fn() unexpected error: %v", err)
213+
}
214+
215+
got, ok := gotQuery["serviceConnectionId"]
216+
if tt.serviceConnectionID == "" {
217+
if ok {
218+
t.Errorf("serviceConnectionId query param = %q, want it absent", got)
219+
}
220+
return
221+
}
222+
if !ok || len(got) != 1 || got[0] != tt.serviceConnectionID {
223+
t.Errorf("serviceConnectionId query param = %q, want %q", got, tt.serviceConnectionID)
224+
}
225+
})
226+
}
227+
}
228+
172229
func TestTokenFunc_NoSource(t *testing.T) {
173230
// All env vars absent → must return an actionable error, no panic.
174231
t.Setenv(auth.EnvServiceAccountFederatedToken, "")

0 commit comments

Comments
 (0)