Skip to content

Commit 71e0e98

Browse files
authored
Merge pull request #3454 from arturcic/feature/configuration
Use IGitVersionConfiguration instead of GitVersionConfiguration (where possible)
2 parents 059ee5f + 458090a commit 71e0e98

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+181
-306
lines changed

src/GitVersion.App.Tests/ArgumentParserTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -395,7 +395,7 @@ private static IEnumerable<TestCaseData> OverrideconfigWithInvalidOptionTestData
395395
}
396396

397397
[TestCaseSource(nameof(OverrideConfigWithSingleOptionTestData))]
398-
public void OverrideConfigWithSingleOptions(string options, GitVersionConfiguration expected)
398+
public void OverrideConfigWithSingleOptions(string options, IGitVersionConfiguration expected)
399399
{
400400
var arguments = this.argumentParser.ParseArguments($"/overrideconfig {options}");
401401

@@ -534,7 +534,7 @@ private static IEnumerable<TestCaseData> OverrideConfigWithSingleOptionTestData(
534534
}
535535

536536
[TestCaseSource(nameof(OverrideConfigWithMultipleOptionsTestData))]
537-
public void OverrideConfigWithMultipleOptions(string options, GitVersionConfiguration expected)
537+
public void OverrideConfigWithMultipleOptions(string options, IGitVersionConfiguration expected)
538538
{
539539
var arguments = this.argumentParser.ParseArguments(options);
540540
ConfigurationHelper configurationHelper = new(arguments.OverrideConfiguration);

src/GitVersion.BuildAgents/GitVersionBuildAgentsModule.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22

33
namespace GitVersion.Agents;
44

5-
public class GitVersionBuildAgentsModule : GitVersionModule
5+
public class GitVersionBuildAgentsModule : IGitVersionModule
66
{
7-
public override void RegisterTypes(IServiceCollection services)
7+
public void RegisterTypes(IServiceCollection services)
88
{
9-
var buildAgents = FindAllDerivedTypes<BuildAgentBase>(Assembly.GetAssembly(GetType()));
9+
var buildAgents = IGitVersionModule.FindAllDerivedTypes<BuildAgentBase>(Assembly.GetAssembly(GetType()));
1010

1111
foreach (var buildAgent in buildAgents)
1212
{
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
#nullable enable
22
GitVersion.Agents.GitVersionBuildAgentsModule
33
GitVersion.Agents.GitVersionBuildAgentsModule.GitVersionBuildAgentsModule() -> void
4-
override GitVersion.Agents.GitVersionBuildAgentsModule.RegisterTypes(Microsoft.Extensions.DependencyInjection.IServiceCollection! services) -> void
4+
GitVersion.Agents.GitVersionBuildAgentsModule.RegisterTypes(Microsoft.Extensions.DependencyInjection.IServiceCollection! services) -> void

src/GitVersion.Core.Tests/Configuration/ConfigurationExtensionsTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ public class ConfigurationExtensionsTests : TestBase
99
[Test]
1010
public void GetReleaseBranchConfigReturnsAllReleaseBranches()
1111
{
12-
var configuration = new GitVersionConfiguration()
12+
var configuration = new GitVersionConfiguration
1313
{
1414
Branches = new Dictionary<string, BranchConfiguration>
1515
{

src/GitVersion.Core.Tests/IntegrationTests/IgnoreBeforeScenarios.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ public void ShouldFallbackToBaseVersionWhenAllCommitsAreIgnored(string? nextVers
1717
fixture.MakeACommit();
1818

1919
var configuration = GitFlowConfigurationBuilder.New.WithNextVersion(nextVersion)
20-
.WithIgnoreConfiguration(new() { Before = dateTimeNow.AddDays(1) }).Build();
20+
.WithIgnoreConfiguration(new IgnoreConfiguration() { Before = dateTimeNow.AddDays(1) }).Build();
2121

2222
fixture.AssertFullSemver(expectedFullSemVer, configuration);
2323
}
@@ -33,7 +33,7 @@ public void ShouldNotFallbackToBaseVersionWhenAllCommitsAreNotIgnored(string? ne
3333
fixture.MakeACommit();
3434

3535
var configuration = GitFlowConfigurationBuilder.New.WithNextVersion(nextVersion)
36-
.WithIgnoreConfiguration(new() { Before = dateTimeNow.AddDays(-1) }).Build();
36+
.WithIgnoreConfiguration(new IgnoreConfiguration() { Before = dateTimeNow.AddDays(-1) }).Build();
3737

3838
fixture.AssertFullSemver(expectedFullSemVer, configuration);
3939
}

src/GitVersion.Core/Agents/IBuildAgent.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,11 @@ public interface IBuildAgent
77
bool IsDefault { get; }
88

99
bool CanApplyToCurrentContext();
10-
void WriteIntegration(Action<string?> writer, GitVersionVariables variables, bool updateBuildNumber = true);
1110
string? GetCurrentBranch(bool usingDynamicRepos);
1211
bool PreventFetch();
1312
bool ShouldCleanUpRemotes();
13+
14+
void WriteIntegration(Action<string?> writer, GitVersionVariables variables, bool updateBuildNumber = true);
1415
}
1516

1617
public interface ICurrentBuildAgent : IBuildAgent { }

src/GitVersion.Core/Configuration/Abstractions/IConfigurationFileLocator.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ namespace GitVersion.Configuration;
33
public interface IConfigurationFileLocator
44
{
55
bool TryGetConfigurationFile(string? workingDirectory, string? projectRootDirectory, out string? configFilePath);
6-
GitVersionConfiguration ReadConfiguration(string? configFilePath);
6+
IGitVersionConfiguration ReadConfiguration(string? configFilePath);
77
IReadOnlyDictionary<object, object?>? ReadOverrideConfiguration(string? configFilePath);
88
void Verify(string? workingDirectory, string? projectRootDirectory);
99
}

src/GitVersion.Core/Configuration/BranchConfigurationBuilder.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
namespace GitVersion.Configuration;
44

5-
public class BranchConfigurationBuilder
5+
internal class BranchConfigurationBuilder
66
{
77
public static BranchConfigurationBuilder New => new();
88

@@ -148,7 +148,7 @@ public virtual BranchConfigurationBuilder WithConfiguration(IBranchConfiguration
148148
return this;
149149
}
150150

151-
public BranchConfiguration Build() => new()
151+
public IBranchConfiguration Build() => new BranchConfiguration
152152
{
153153
VersioningMode = versioningMode,
154154
Label = label,

src/GitVersion.Core/Configuration/ConfigurationBuilderBase.cs

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -167,9 +167,9 @@ public virtual TConfigurationBuilder WithLabelPreReleaseWeight(int? value)
167167
return (TConfigurationBuilder)this;
168168
}
169169

170-
public virtual TConfigurationBuilder WithIgnoreConfiguration(IgnoreConfiguration value)
170+
public virtual TConfigurationBuilder WithIgnoreConfiguration(IIgnoreConfiguration value)
171171
{
172-
this.ignore = value;
172+
this.ignore = (IgnoreConfiguration)value;
173173
return (TConfigurationBuilder)this;
174174
}
175175

@@ -206,6 +206,9 @@ public virtual TConfigurationBuilder WithoutBranches()
206206
public virtual BranchConfigurationBuilder WithBranch(string value)
207207
=> this.branchConfigurationBuilders.GetOrAdd(value, () => BranchConfigurationBuilder.New);
208208

209+
public virtual BranchConfigurationBuilder WithBranch(string value, BranchConfigurationBuilder builder)
210+
=> this.branchConfigurationBuilders.GetOrAdd(value, () => builder);
211+
209212
public virtual TConfigurationBuilder WithBranch(string value, Action<BranchConfigurationBuilder> action)
210213
{
211214
var result = this.branchConfigurationBuilders.GetOrAdd(value, () => BranchConfigurationBuilder.New);
@@ -291,7 +294,7 @@ public virtual TConfigurationBuilder WithPreReleaseWeight(int? value)
291294
return (TConfigurationBuilder)this;
292295
}
293296

294-
public virtual TConfigurationBuilder WithConfiguration(GitVersionConfiguration value)
297+
public virtual TConfigurationBuilder WithConfiguration(IGitVersionConfiguration value)
295298
{
296299
WithAssemblyVersioningScheme(value.AssemblyVersioningScheme);
297300
WithAssemblyFileVersioningScheme(value.AssemblyFileVersioningScheme);
@@ -338,15 +341,15 @@ public void AddOverride(IReadOnlyDictionary<object, object?> value)
338341
}
339342
}
340343

341-
public virtual GitVersionConfiguration Build()
344+
public virtual IGitVersionConfiguration Build()
342345
{
343346
Dictionary<string, BranchConfiguration> branches = new();
344347
foreach (var (name, branchConfigurationBuilder) in this.branchConfigurationBuilders)
345348
{
346-
branches.Add(name, branchConfigurationBuilder.Build());
349+
branches.Add(name, (BranchConfiguration)branchConfigurationBuilder.Build());
347350
}
348351

349-
GitVersionConfiguration configuration = new()
352+
IGitVersionConfiguration configuration = new GitVersionConfiguration
350353
{
351354
AssemblyVersioningScheme = this.assemblyVersioningScheme,
352355
AssemblyFileVersioningScheme = this.assemblyFileVersioningScheme,
@@ -397,26 +400,26 @@ public virtual GitVersionConfiguration Build()
397400
return configuration;
398401
}
399402

400-
private static void FinalizeConfiguration(GitVersionConfiguration configuration)
403+
private static void FinalizeConfiguration(IGitVersionConfiguration configuration)
401404
{
402405
foreach (var (name, branchConfiguration) in configuration.Branches)
403406
{
404407
FinalizeBranchConfiguration(configuration, name, branchConfiguration);
405408
}
406409
}
407410

408-
private static void FinalizeBranchConfiguration(GitVersionConfiguration configuration, string branchName,
411+
private static void FinalizeBranchConfiguration(IGitVersionConfiguration configuration, string branchName,
409412
IBranchConfiguration branchConfiguration)
410413
{
411-
var branches = new Dictionary<string, BranchConfiguration>(configuration.Branches);
414+
var branches = configuration.Branches;
412415
foreach (var targetBranchName in branchConfiguration.IsSourceBranchFor)
413416
{
414-
var targetBranchConfiguration = branches[targetBranchName];
417+
var targetBranchConfiguration = (BranchConfiguration)branches[targetBranchName];
415418
targetBranchConfiguration.SourceBranches.Add(branchName);
416419
}
417420
}
418421

419-
private static void ValidateConfiguration(GitVersionConfiguration configuration)
422+
private static void ValidateConfiguration(IGitVersionConfiguration configuration)
420423
{
421424
foreach (var (name, branchConfiguration) in configuration.Branches)
422425
{

src/GitVersion.Core/Configuration/ConfigurationFileLocator.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public void Verify(string? workingDirectory, string? projectRootDirectory)
3030
WarnAboutAmbiguousConfigFileSelection(workingDirectory, projectRootDirectory);
3131
}
3232

33-
public GitVersionConfiguration ReadConfiguration(string? configFilePath)
33+
public IGitVersionConfiguration ReadConfiguration(string? configFilePath)
3434
{
3535
if (configFilePath == null || !this.fileSystem.Exists(configFilePath)) return new GitVersionConfiguration();
3636

0 commit comments

Comments
 (0)