diff --git a/src/GitVersionExe.Tests/ArgumentParserTests.cs b/src/GitVersionExe.Tests/ArgumentParserTests.cs index 3e3d2836df..c14b5c4f3c 100644 --- a/src/GitVersionExe.Tests/ArgumentParserTests.cs +++ b/src/GitVersionExe.Tests/ArgumentParserTests.cs @@ -14,6 +14,7 @@ namespace GitVersionExe.Tests [TestFixture] public class ArgumentParserTests : TestBase { + private IEnvironment environment; private IArgumentParser argumentParser; [SetUp] @@ -24,6 +25,7 @@ public void SetUp() services.AddSingleton(); services.AddSingleton(); }); + environment = sp.GetService(); argumentParser = sp.GetService(); } @@ -604,5 +606,37 @@ public void CheckVerbosityParsing(string command, bool shouldThrow, Verbosity ex arguments.Verbosity.ShouldBe(expectedVerbosity); } } + + [Test] + public void EmptyArgumentsRemoteUsernameDefinedSetsUsername() + { + environment.SetEnvironmentVariable("GITVERSION_REMOTE_USERNAME", "value"); + var arguments = argumentParser.ParseArguments(string.Empty); + arguments.Authentication.Username.ShouldBe("value"); + } + + [Test] + public void EmptyArgumentsRemotePasswordDefinedSetsPassword() + { + environment.SetEnvironmentVariable("GITVERSION_REMOTE_PASSWORD", "value"); + var arguments = argumentParser.ParseArguments(string.Empty); + arguments.Authentication.Password.ShouldBe("value"); + } + + [Test] + public void ArbitraryArgumentsRemoteUsernameDefinedSetsUsername() + { + environment.SetEnvironmentVariable("GITVERSION_REMOTE_USERNAME", "value"); + var arguments = argumentParser.ParseArguments("-nocache"); + arguments.Authentication.Username.ShouldBe("value"); + } + + [Test] + public void ArbitraryArgumentsRemotePasswordDefinedSetsPassword() + { + environment.SetEnvironmentVariable("GITVERSION_REMOTE_PASSWORD", "value"); + var arguments = argumentParser.ParseArguments("-nocache"); + arguments.Authentication.Password.ShouldBe("value"); + } } } diff --git a/src/GitVersionExe/ArgumentParser.cs b/src/GitVersionExe/ArgumentParser.cs index 015e6d51a4..c8bcfa8a62 100644 --- a/src/GitVersionExe/ArgumentParser.cs +++ b/src/GitVersionExe/ArgumentParser.cs @@ -46,6 +46,9 @@ public Arguments ParseArguments(string[] commandLineArguments) }; args.Output.Add(OutputType.Json); + + AddAuthentication(args); + return args; } @@ -133,7 +136,7 @@ private void AddAuthentication(Arguments arguments) var password = environment.GetEnvironmentVariable("GITVERSION_REMOTE_PASSWORD"); if (!string.IsNullOrWhiteSpace(password)) { - arguments.Authentication.Username = password; + arguments.Authentication.Password = password; } }