From 79cb6c67a53d045fe5770ee73c93a087b7356460 Mon Sep 17 00:00:00 2001 From: "Brett V. Forsgren" Date: Mon, 8 Jun 2026 16:26:36 -0600 Subject: [PATCH] Add cargo to Azure Artifacts credential type mapping Add 'cargo' -> 'cargo_registry' to the azureArtifactsPackageManagerCredentialType map so that Azure Artifacts credentials are injected for Cargo package manager update jobs. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- cmd/dependabot/internal/cmd/update.go | 1 + cmd/dependabot/internal/cmd/update_test.go | 34 ++++++++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/cmd/dependabot/internal/cmd/update.go b/cmd/dependabot/internal/cmd/update.go index 05a2af88..96283442 100644 --- a/cmd/dependabot/internal/cmd/update.go +++ b/cmd/dependabot/internal/cmd/update.go @@ -42,6 +42,7 @@ type UpdateFlags struct { // A map of package manager names to credential type var azureArtifactsPackageManagerCredentialType = map[string]string{ + "cargo": "cargo_registry", "gradle": "maven_repository", "maven": "maven_repository", "npm_and_yarn": "npm_registry", diff --git a/cmd/dependabot/internal/cmd/update_test.go b/cmd/dependabot/internal/cmd/update_test.go index e7d66b26..1eb79ed7 100644 --- a/cmd/dependabot/internal/cmd/update_test.go +++ b/cmd/dependabot/internal/cmd/update_test.go @@ -204,6 +204,40 @@ func Test_processInput(t *testing.T) { assertStringArraysEqual(t, expectedGitCredentalsMetadataHosts, actualCredentialsMetadataHosts) }) + + t.Run("add Azure Artifacts credentials for cargo when local token is present", func(t *testing.T) { + var input = model.Input{ + Job: model.Job{ + PackageManager: "cargo", + Source: model.Source{ + Repo: "org/project/_git/repo", + Directory: "/", + }, + }, + } + var flags = UpdateFlags{ + apiUrl: "https://dev.azure.com/org/project/_git/repo", + } + os.Unsetenv("LOCAL_GITHUB_ACCESS_TOKEN") + os.Setenv("LOCAL_AZURE_ACCESS_TOKEN", "token") + + processInput(&input, &flags) + + // Ensure cargo_registry credentials are added for Azure Artifacts hosts + actualCargoRegistryStrings := []string{} + for _, cred := range input.Credentials { + if cred["type"] == "cargo_registry" { + actualCargoRegistryStrings = append(actualCargoRegistryStrings, fmt.Sprintf("%s|%s", cred["host"], cred["password"])) + } + } + + expectedCargoRegistries := []string{ + "org.pkgs.visualstudio.com|$LOCAL_AZURE_ACCESS_TOKEN", + "pkgs.dev.azure.com|$LOCAL_AZURE_ACCESS_TOKEN", + } + + assertStringArraysEqual(t, expectedCargoRegistries, actualCargoRegistryStrings) + }) } func assertStringArraysEqual(t *testing.T, expected, actual []string) {