Skip to content

Commit dbc2c46

Browse files
committed
improves configuration file loading logs
Updates logging messages for configuration file loading to provide more clarity and consistency. Now it logs when: - Default configuration is used - Configuration file is not found - Configuration file is being used
1 parent a8dacda commit dbc2c46

File tree

4 files changed

+20
-4
lines changed

4 files changed

+20
-4
lines changed

src/GitVersion.Configuration.Tests/Configuration/ConfigurationFileLocatorTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,7 @@ public void NoWarnOnCustomYmlFile()
222222
var configurationProvider = (ConfigurationProvider)sp.GetRequiredService<IConfigurationProvider>();
223223

224224
configurationProvider.ProvideForDirectory(this.repoPath);
225-
stringLogger.Length.ShouldBe(0);
225+
stringLogger.ShouldMatch("No configuration file found, using default configuration");
226226
}
227227

228228
[Test]
@@ -244,7 +244,7 @@ public void NoWarnOnCustomYmlFileOutsideRepoPath()
244244
var configurationProvider = (ConfigurationProvider)sp.GetRequiredService<IConfigurationProvider>();
245245

246246
configurationProvider.ProvideForDirectory(this.repoPath);
247-
stringLogger.Length.ShouldBe(0);
247+
stringLogger.ShouldMatch("No configuration file found, using default configuration");
248248
}
249249

250250
[Test]

src/GitVersion.Configuration.Tests/Configuration/ConfigurationProviderTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -287,7 +287,7 @@ public void NoWarnOnGitVersionYmlFile()
287287
this.configurationProvider.ProvideForDirectory(this.repoPath);
288288

289289
var filePath = PathHelper.Combine(this.repoPath, ConfigurationFileLocator.DefaultFileName);
290-
stringLogger.ShouldContain($"Found configuration file at '{filePath}'");
290+
stringLogger.ShouldContain($"Using configuration file '{filePath}'");
291291
}
292292

293293
[Test]

src/GitVersion.Configuration/ConfigurationFileLocator.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ public void Verify(string? workingDirectory, string? projectRootDirectory)
4343
string? customConfigurationFile = GetCustomConfigurationFilePathIfEligable(directoryPath);
4444
if (!string.IsNullOrWhiteSpace(customConfigurationFile))
4545
{
46+
this.log.Info($"Found configuration file at '{customConfigurationFile}'");
4647
return customConfigurationFile;
4748
}
4849

src/GitVersion.Configuration/ConfigurationProvider.cs

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using System.IO.Abstractions;
22
using GitVersion.Configuration.Workflows;
33
using GitVersion.Extensions;
4+
using GitVersion.Logging;
45
using Microsoft.Extensions.Options;
56
using YamlDotNet.Core;
67

@@ -9,12 +10,14 @@ namespace GitVersion.Configuration;
910
internal class ConfigurationProvider(
1011
IConfigurationFileLocator configFileLocator,
1112
IFileSystem fileSystem,
13+
ILog log,
1214
IConfigurationSerializer configurationSerializer,
1315
IOptions<GitVersionOptions> options)
1416
: IConfigurationProvider
1517
{
1618
private readonly IConfigurationFileLocator configFileLocator = configFileLocator.NotNull();
1719
private readonly IFileSystem fileSystem = fileSystem.NotNull();
20+
private readonly ILog log = log.NotNull();
1821
private readonly IConfigurationSerializer configurationSerializer = configurationSerializer.NotNull();
1922
private readonly IOptions<GitVersionOptions> options = options.NotNull();
2023

@@ -72,7 +75,19 @@ private IGitVersionConfiguration ProvideConfiguration(string? configFile,
7275

7376
private IReadOnlyDictionary<object, object?>? ReadOverrideConfiguration(string? configFilePath)
7477
{
75-
if (configFilePath == null || !fileSystem.File.Exists(configFilePath)) return null;
78+
if (configFilePath == null)
79+
{
80+
this.log.Info("No configuration file found, using default configuration");
81+
return null;
82+
}
83+
84+
if (!this.fileSystem.File.Exists(configFilePath))
85+
{
86+
this.log.Info($"Configuration file '{configFilePath}' not found");
87+
return null;
88+
}
89+
90+
this.log.Info($"Using configuration file '{configFilePath}'");
7691
var content = fileSystem.File.ReadAllText(configFilePath);
7792
return configurationSerializer.Deserialize<Dictionary<object, object?>>(content);
7893
}

0 commit comments

Comments
 (0)