Skip to content

Commit 6de308d

Browse files
mikebordonrumstead
authored andcommitted
fix(server): Send Azure DevOps token via git extra headers (#23478) (#23631)
Signed-off-by: Mike Bordon <[email protected]> Signed-off-by: rumstead <[email protected]>
1 parent 274ab28 commit 6de308d

File tree

2 files changed

+5
-1
lines changed

2 files changed

+5
-1
lines changed

util/git/creds.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -719,6 +719,7 @@ func (creds AzureWorkloadIdentityCreds) Environ() (io.Closer, []string, error) {
719719
}
720720
nonce := creds.store.Add("", token)
721721
env := creds.store.Environ(nonce)
722+
env = append(env, fmt.Sprintf("%s=Authorization: Bearer %s", bearerAuthHeaderEnv, token))
722723

723724
return argoioutils.NewCloser(func() error {
724725
creds.store.Remove(nonce)

util/git/creds_test.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -419,14 +419,17 @@ func TestAzureWorkloadIdentityCreds_Environ(t *testing.T) {
419419
workloadIdentityMock := new(mocks.TokenProvider)
420420
workloadIdentityMock.On("GetToken", azureDevopsEntraResourceId).Return(&workloadidentity.Token{AccessToken: "accessToken", ExpiresOn: time.Now().Add(time.Minute)}, nil)
421421
creds := AzureWorkloadIdentityCreds{store, workloadIdentityMock}
422-
_, _, err := creds.Environ()
422+
_, env, err := creds.Environ()
423423
require.NoError(t, err)
424424
assert.Len(t, store.creds, 1)
425425

426426
for _, value := range store.creds {
427427
assert.Equal(t, "", value.username)
428428
assert.Equal(t, "accessToken", value.password)
429429
}
430+
431+
require.Len(t, env, 1)
432+
assert.Equal(t, "ARGOCD_GIT_BEARER_AUTH_HEADER=Authorization: Bearer accessToken", env[0], "ARGOCD_GIT_BEARER_AUTH_HEADER env var must be set")
430433
}
431434

432435
func TestAzureWorkloadIdentityCreds_Environ_cleanup(t *testing.T) {

0 commit comments

Comments
 (0)