diff --git a/src/shared/Microsoft.AzureRepos/AzureReposBindingManager.cs b/src/shared/Microsoft.AzureRepos/AzureReposBindingManager.cs index db2670edf2..7e26590bda 100644 --- a/src/shared/Microsoft.AzureRepos/AzureReposBindingManager.cs +++ b/src/shared/Microsoft.AzureRepos/AzureReposBindingManager.cs @@ -93,11 +93,15 @@ public AzureReposBinding GetBinding(string orgName) _trace.WriteLine($"Looking up organization binding for '{orgName}'..."); - // NOT using the short-circuiting OR operator here on purpose - we need both branches to be evaluated - if (config.TryGet(GitConfigurationLevel.Local, GitConfigurationType.Raw, - orgKey, out string localUser) | - config.TryGet(GitConfigurationLevel.Global, GitConfigurationType.Raw, - orgKey, out string globalUser)) + string localUser = null; + bool hasLocal = _git.IsInsideRepository() && // Can only check local config if we are inside a repository + config.TryGet(GitConfigurationLevel.Local, GitConfigurationType.Raw, + orgKey, out localUser); + + bool hasGlobal = config.TryGet(GitConfigurationLevel.Global, GitConfigurationType.Raw, + orgKey, out string globalUser); + + if (hasLocal || hasGlobal) { return new AzureReposBinding(orgName, globalUser, localUser); }