@@ -12,6 +12,19 @@ public class ConfigurationProvider
12
12
{
13
13
internal const string DefaultTagPrefix = "[vV]" ;
14
14
15
+ public static Config Provide ( GitPreparer gitPreparer , IFileSystem fileSystem , bool applyDefaults = true , Config overrideConfig = null )
16
+ {
17
+ var workingDirectory = gitPreparer . WorkingDirectory ;
18
+ var projectRootDirectory = gitPreparer . GetProjectRootDirectory ( ) ;
19
+
20
+ if ( HasConfigFileAt ( workingDirectory , fileSystem ) )
21
+ {
22
+ return Provide ( workingDirectory , fileSystem , applyDefaults , overrideConfig ) ;
23
+ }
24
+
25
+ return Provide ( projectRootDirectory , fileSystem , applyDefaults , overrideConfig ) ;
26
+ }
27
+
15
28
public static Config Provide ( string workingDirectory , IFileSystem fileSystem , bool applyDefaults = true , Config overrideConfig = null )
16
29
{
17
30
var readConfig = ReadConfig ( workingDirectory , fileSystem ) ;
@@ -140,9 +153,9 @@ static Config ReadConfig(string workingDirectory, IFileSystem fileSystem)
140
153
return new Config ( ) ;
141
154
}
142
155
143
- public static string GetEffectiveConfigAsString ( string gitDirectory , IFileSystem fileSystem )
156
+ public static string GetEffectiveConfigAsString ( string workingDirectory , IFileSystem fileSystem )
144
157
{
145
- var config = Provide ( gitDirectory , fileSystem ) ;
158
+ var config = Provide ( workingDirectory , fileSystem ) ;
146
159
var stringBuilder = new StringBuilder ( ) ;
147
160
using ( var stream = new StringWriter ( stringBuilder ) )
148
161
{
@@ -180,7 +193,7 @@ public static void Verify(GitPreparer gitPreparer, IFileSystem fileSystem)
180
193
public static readonly string DefaultConfigFileName = "GitVersion.yml" ;
181
194
public static readonly string ObsoleteConfigFileName = "GitVersionConfig.yaml" ;
182
195
183
- static string GetConfigFilePath ( string workingDirectory , IFileSystem fileSystem )
196
+ public static string GetConfigFilePath ( string workingDirectory , IFileSystem fileSystem )
184
197
{
185
198
var ymlPath = Path . Combine ( workingDirectory , DefaultConfigFileName ) ;
186
199
if ( fileSystem . Exists ( ymlPath ) )
@@ -197,6 +210,23 @@ static string GetConfigFilePath(string workingDirectory, IFileSystem fileSystem)
197
210
return ymlPath ;
198
211
}
199
212
213
+ public static bool HasConfigFileAt ( string workingDirectory , IFileSystem fileSystem )
214
+ {
215
+ var defaultConfigFilePath = Path . Combine ( workingDirectory , DefaultConfigFileName ) ;
216
+ if ( fileSystem . Exists ( defaultConfigFilePath ) )
217
+ {
218
+ return true ;
219
+ }
220
+
221
+ var deprecatedConfigFilePath = Path . Combine ( workingDirectory , ObsoleteConfigFileName ) ;
222
+ if ( fileSystem . Exists ( deprecatedConfigFilePath ) )
223
+ {
224
+ return true ;
225
+ }
226
+
227
+ return false ;
228
+ }
229
+
200
230
static bool WarnAboutObsoleteConfigFile ( string workingDirectory , IFileSystem fileSystem )
201
231
{
202
232
var deprecatedConfigFilePath = Path . Combine ( workingDirectory , ObsoleteConfigFileName ) ;
0 commit comments