Skip to content

Commit f551dd8

Browse files
Benoit Doyonarturcic
authored andcommitted
Fix an issue where GITVERSION_REMOTE_PASSWORD would overwrite the Username options intead of setting the Password option.
Also make sure authentication is set even if no other command line arguments are present.
1 parent 87ed41b commit f551dd8

File tree

2 files changed

+38
-1
lines changed

2 files changed

+38
-1
lines changed

src/GitVersionExe.Tests/ArgumentParserTests.cs

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ namespace GitVersionExe.Tests
1414
[TestFixture]
1515
public class ArgumentParserTests : TestBase
1616
{
17+
private IEnvironment environment;
1718
private IArgumentParser argumentParser;
1819

1920
[SetUp]
@@ -24,6 +25,7 @@ public void SetUp()
2425
services.AddSingleton<IArgumentParser, ArgumentParser>();
2526
services.AddSingleton<IGlobbingResolver, GlobbingResolver>();
2627
});
28+
environment = sp.GetService<IEnvironment>();
2729
argumentParser = sp.GetService<IArgumentParser>();
2830
}
2931

@@ -604,5 +606,37 @@ public void CheckVerbosityParsing(string command, bool shouldThrow, Verbosity ex
604606
arguments.Verbosity.ShouldBe(expectedVerbosity);
605607
}
606608
}
609+
610+
[Test]
611+
public void EmptyArgumentsRemoteUsernameDefinedSetsUsername()
612+
{
613+
environment.SetEnvironmentVariable("GITVERSION_REMOTE_USERNAME", "value");
614+
var arguments = argumentParser.ParseArguments(string.Empty);
615+
arguments.Authentication.Username.ShouldBe("value");
616+
}
617+
618+
[Test]
619+
public void EmptyArgumentsRemotePasswordDefinedSetsPassword()
620+
{
621+
environment.SetEnvironmentVariable("GITVERSION_REMOTE_PASSWORD", "value");
622+
var arguments = argumentParser.ParseArguments(string.Empty);
623+
arguments.Authentication.Password.ShouldBe("value");
624+
}
625+
626+
[Test]
627+
public void ArbitraryArgumentsRemoteUsernameDefinedSetsUsername()
628+
{
629+
environment.SetEnvironmentVariable("GITVERSION_REMOTE_USERNAME", "value");
630+
var arguments = argumentParser.ParseArguments("-nocache");
631+
arguments.Authentication.Username.ShouldBe("value");
632+
}
633+
634+
[Test]
635+
public void ArbitraryArgumentsRemotePasswordDefinedSetsPassword()
636+
{
637+
environment.SetEnvironmentVariable("GITVERSION_REMOTE_PASSWORD", "value");
638+
var arguments = argumentParser.ParseArguments("-nocache");
639+
arguments.Authentication.Password.ShouldBe("value");
640+
}
607641
}
608642
}

src/GitVersionExe/ArgumentParser.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,9 @@ public Arguments ParseArguments(string[] commandLineArguments)
4646
};
4747

4848
args.Output.Add(OutputType.Json);
49+
50+
AddAuthentication(args);
51+
4952
return args;
5053
}
5154

@@ -133,7 +136,7 @@ private void AddAuthentication(Arguments arguments)
133136
var password = environment.GetEnvironmentVariable("GITVERSION_REMOTE_PASSWORD");
134137
if (!string.IsNullOrWhiteSpace(password))
135138
{
136-
arguments.Authentication.Username = password;
139+
arguments.Authentication.Password = password;
137140
}
138141
}
139142

0 commit comments

Comments
 (0)