diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json index 3b88bcbde..2b7fecfce 100644 --- a/.config/dotnet-tools.json +++ b/.config/dotnet-tools.json @@ -3,7 +3,7 @@ "isRoot": true, "tools": { "microsoft.dotnet.darc": { - "version": "1.1.0-beta.23527.3", + "version": "1.1.0-beta.23416.3", "commands": [ "darc" ] diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index d0dbdc27c..6ac15ff81 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -222,13 +222,13 @@ https://github.com/dotnet/arcade 39042b4048580366d35a7c1c4f4ce8fc0dbea4b4 - + https://github.com/dotnet/arcade-services - 6e08a501d23d7ca53cfe10d74d0a002f75040a4d + 5d63a226d022fda90cae2c239e882ad253baa758 - + https://github.com/dotnet/arcade-services - 6e08a501d23d7ca53cfe10d74d0a002f75040a4d + 5d63a226d022fda90cae2c239e882ad253baa758 https://github.com/dotnet/runtime diff --git a/eng/Versions.props b/eng/Versions.props index 9ad64ff3e..9a768c646 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -44,7 +44,7 @@ - 1.1.0-beta.23527.3 + 1.1.0-beta.23416.3 diff --git a/eng/vmr-sync.sh b/eng/vmr-sync.sh index db0f704e2..a753efdd8 100755 --- a/eng/vmr-sync.sh +++ b/eng/vmr-sync.sh @@ -135,7 +135,7 @@ while [[ $# -gt 0 ]]; do recursive=true ;; --remote) - additional_remotes="$additional_remotes $2" + additional_remotes="$additional_remotes,$2" shift ;; --readme-template) @@ -265,9 +265,9 @@ fi $azdev_pat \ --$verbosity \ $recursive_arg \ - $additional_remotes \ --readme-template "$readme_template" \ --tpn-template "$tpn_template" \ + $additional_remotes \ "$repository" if [[ $? == 0 ]]; then diff --git a/src/VirtualMonoRepo/Tasks/GitFileManagerFactory.cs b/src/VirtualMonoRepo/Tasks/GitFileManagerFactory.cs new file mode 100644 index 000000000..2da3d540b --- /dev/null +++ b/src/VirtualMonoRepo/Tasks/GitFileManagerFactory.cs @@ -0,0 +1,52 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System; +using Microsoft.DotNet.DarcLib; +using Microsoft.DotNet.DarcLib.Helpers; +using Microsoft.DotNet.DarcLib.VirtualMonoRepo; +using Microsoft.Extensions.Logging; + +namespace Microsoft.DotNet.VirtualMonoRepo.Tasks; + +public class GitFileManagerFactory : IGitFileManagerFactory +{ + private readonly IVmrInfo _vmrInfo; + private readonly VmrRemoteConfiguration _remoteConfiguration; + private readonly IProcessManager _processManager; + private readonly IVersionDetailsParser _versionDetailsParser; + private readonly ILoggerFactory _loggerFactory; + + public GitFileManagerFactory( + IVmrInfo vmrInfo, + VmrRemoteConfiguration remoteConfiguration, + IProcessManager processManager, + IVersionDetailsParser versionDetailsParser, + ILoggerFactory loggerFactory) + { + _vmrInfo = vmrInfo; + _remoteConfiguration = remoteConfiguration; + _processManager = processManager; + _versionDetailsParser = versionDetailsParser; + _loggerFactory = loggerFactory; + } + + public IGitFileManager Create(string repoUri) + => new GitFileManager(CreateGitRepo(repoUri), _versionDetailsParser, _loggerFactory.CreateLogger()); + + private IGitRepo CreateGitRepo(string repoUri) => GitRepoTypeParser.ParseFromUri(repoUri) switch + { + GitRepoType.AzureDevOps => throw new Exception("VMR initialization should not require Azure DevOps repositories"), + + GitRepoType.GitHub => new GitHubClient( + _processManager.GitExecutable, + _remoteConfiguration.GitHubToken, + _loggerFactory.CreateLogger(), + _vmrInfo.TmpPath, + // Caching not in use for Darc local client. + null), + + GitRepoType.Local => new LocalGitClient(_processManager.GitExecutable, _loggerFactory.CreateLogger()), + _ => throw new ArgumentException("Unknown git repository type", nameof(repoUri)), + }; +} diff --git a/src/VirtualMonoRepo/Tasks/VirtualMonoRepo_Initialize.cs b/src/VirtualMonoRepo/Tasks/VirtualMonoRepo_Initialize.cs index 2a8c1d726..eae76d532 100644 --- a/src/VirtualMonoRepo/Tasks/VirtualMonoRepo_Initialize.cs +++ b/src/VirtualMonoRepo/Tasks/VirtualMonoRepo_Initialize.cs @@ -74,8 +74,6 @@ public class VirtualMonoRepo_Initialize : Build.Utilities.Task, ICancelableTask additionalRemotes, ReadmeTemplatePath, TpnTemplatePath, - generateCodeowners: false, - discardPatches: true, _cancellationToken.Token); return true; } @@ -84,6 +82,7 @@ public class VirtualMonoRepo_Initialize : Build.Utilities.Task, ICancelableTask private IServiceProvider CreateServiceProvider() => new ServiceCollection() .AddLogging(b => b.AddConsole().AddFilter(l => l >= LogLevel.Information)) - .AddVmrManagers("git", VmrPath, TmpPath, null, null) + .AddTransient() + .AddVmrManagers(sp => sp.GetRequiredService(), "git", VmrPath, TmpPath, null, null) .BuildServiceProvider(); }