Skip to content

Commit

Permalink
Added azure-cli credential type. (#728)
Browse files Browse the repository at this point in the history
  • Loading branch information
dlemstra committed Jun 25, 2024
1 parent 62072b1 commit ac272c7
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 2 deletions.
3 changes: 2 additions & 1 deletion src/Sign.Cli/AzureCredentialOptions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ namespace Sign.Cli
internal sealed class AzureCredentialOptions
{
internal Option<string?> CredentialTypeOption { get; } = new Option<string?>(["--azure-credential-type", "-act"], Resources.CredentialTypeOptionDescription).FromAmong(
AzureCredentialType.AzureCli,
AzureCredentialType.Environment);
internal Option<bool?> ManagedIdentityOption { get; } = new(["--azure-key-vault-managed-identity", "-kvm"], Resources.ManagedIdentityOptionDescription) { IsHidden = true };
internal Option<string?> TenantIdOption { get; } = new(["--azure-key-vault-tenant-id", "-kvt"], Resources.TenantIdOptionDescription);
Expand All @@ -36,7 +37,7 @@ internal DefaultAzureCredentialOptions CreateDefaultAzureCredentialOptions(Parse
string? credentialType = parseResult.GetValueForOption(CredentialTypeOption);
if (credentialType is not null)
{
options.ExcludeAzureCliCredential = true;
options.ExcludeAzureCliCredential = credentialType != AzureCredentialType.AzureCli;
options.ExcludeAzureDeveloperCliCredential = true;
options.ExcludeAzurePowerShellCredential = true;
options.ExcludeEnvironmentCredential = credentialType != AzureCredentialType.Environment;
Expand Down
1 change: 1 addition & 0 deletions src/Sign.Cli/AzureCredentialType.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ namespace Sign.Cli
{
internal static class AzureCredentialType
{
public const string AzureCli = "azure-cli";
public const string Environment = "environment";
}
}
21 changes: 20 additions & 1 deletion test/Sign.Cli.Test/AzureCredentialOptionsTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@ public void CreateDefaultAzureCredentialOptions_WhenNoOptionsAreSpecified_Exclud
}

[Fact]
public void CreateDefaultAzureCredentialOptions_WhenEnvironmentIsSpecified_ExcludeOptionsHaveTheCorrectValues()
public void CreateDefaultAzureCredentialOptions_WhenEnvironmentCredentialTypeIsSpecified_ExcludeOptionsHaveTheCorrectValues()
{
ParseResult result = _parser.Parse(@"azure-key-vault -kvu https://keyvault.test -kvc a -act environment b");

Expand All @@ -141,5 +141,24 @@ public void CreateDefaultAzureCredentialOptions_WhenEnvironmentIsSpecified_Exclu
Assert.True(credentialOptions.ExcludeVisualStudioCredential);
Assert.True(credentialOptions.ExcludeWorkloadIdentityCredential);
}

[Fact]
public void CreateDefaultAzureCredentialOptions_WhenAzureCliCredentialTypeIsSpecified_ExcludeOptionsHaveTheCorrectValues()
{
ParseResult result = _parser.Parse(@"azure-key-vault -kvu https://keyvault.test -kvc a -act azure-cli b");

DefaultAzureCredentialOptions credentialOptions = _options.CreateDefaultAzureCredentialOptions(result);

Assert.False(credentialOptions.ExcludeAzureCliCredential);
Assert.True(credentialOptions.ExcludeAzureDeveloperCliCredential);
Assert.True(credentialOptions.ExcludeAzurePowerShellCredential);
Assert.True(credentialOptions.ExcludeEnvironmentCredential);
Assert.True(credentialOptions.ExcludeInteractiveBrowserCredential);
Assert.True(credentialOptions.ExcludeManagedIdentityCredential);
Assert.True(credentialOptions.ExcludeSharedTokenCacheCredential);
Assert.True(credentialOptions.ExcludeVisualStudioCodeCredential);
Assert.True(credentialOptions.ExcludeVisualStudioCredential);
Assert.True(credentialOptions.ExcludeWorkloadIdentityCredential);
}
}
}

0 comments on commit ac272c7

Please sign in to comment.