108 references to GitCommandMode
aspire (44)
Configuration\ConfigSourceService.cs (10)
562var size = await git.GetObjectSizeAsync(repositoryDirectory, version, GitCommandMode.Interactive, timeout.Token); 568var json = await git.ReadBlobAsync(repositoryDirectory, version, GitCommandMode.Interactive, timeout.Token); 634var mode = allowInteractive ? GitCommandMode.Interactive : GitCommandMode.Unattended; 649resolvedCommit.Length == 64 ? "sha256" : "sha1", GitCommandMode.Interactive, cancellationToken); 654allowInteractive ? GitCommandMode.Interactive : GitCommandMode.Unattended, cancellationToken); 655var commit = await git.GetCommitAsync(repositoryDirectory, "FETCH_HEAD^{commit}", GitCommandMode.Interactive, cancellationToken); 656var entry = await git.GetFileAsync(repositoryDirectory, commit, source.Path, GitCommandMode.Interactive, cancellationToken);
Git\GitClient.cs (9)
13public async Task<string> ResolveReferenceAsync(string repository, string? reference, DirectoryInfo workingDirectory, GitCommandMode mode, CancellationToken cancellationToken) 53public Task InitializeAsync(DirectoryInfo workingDirectory, GitRepositoryLocation repository, string? objectFormat, GitCommandMode mode, CancellationToken cancellationToken) 73public Task FetchAsync(GitRepositoryLocation destination, string repository, string reference, GitCommandMode mode, CancellationToken cancellationToken) => 76public Task CheckoutAsync(GitRepositoryLocation repository, GitCommandMode mode, CancellationToken cancellationToken) => 79public async Task<string> GetCommitAsync(GitRepositoryLocation repository, string reference, GitCommandMode mode, CancellationToken cancellationToken) => 82public async Task<GitTreeEntry?> GetFileAsync(GitRepositoryLocation repository, string commit, string path, GitCommandMode mode, CancellationToken cancellationToken) 94public async Task<long?> GetObjectSizeAsync(GitRepositoryLocation repository, string objectId, GitCommandMode mode, CancellationToken cancellationToken) 100public Task<string> ReadBlobAsync(GitRepositoryLocation repository, string objectId, GitCommandMode mode, CancellationToken cancellationToken) => 103private Task<string> RunAsync(GitRepositoryLocation repository, string[] arguments, GitCommandMode mode, CancellationToken cancellationToken)
Git\GitCommandRunner.cs (12)
15Task<string> RunAsync(DirectoryInfo workingDirectory, string[] arguments, GitCommandMode mode, CancellationToken cancellationToken); 32public async Task<string> RunAsync(DirectoryInfo workingDirectory, string[] arguments, GitCommandMode mode, CancellationToken cancellationToken) 37return await RunProcessAsync(startInfo, captureCancellationOutput: command is "fetch" or "ls-remote" && mode != GitCommandMode.Captured && startInfo.RedirectStandardOutput, 41internal ProcessStartInfo CreateStartInfo(string directory, string[] arguments, GitCommandMode mode) 43var interactive = mode == GitCommandMode.Interactive && hostEnvironment.SupportsInteractiveInput; 52RedirectStandardInput = mode == GitCommandMode.Captured, 61if (!interactive && mode != GitCommandMode.Captured) 73internal static void FilterEnvironment(IDictionary<string, string?> environment, GitCommandMode mode) 75if (mode != GitCommandMode.Captured) 94internal async Task<string> RunProcessAsync(ProcessStartInfo startInfo, bool captureCancellationOutput, GitCommandMode mode, CancellationToken cancellationToken) 149internal static GitCommandException CreateCommandException(string stderr, int exitCode, GitCommandMode mode) 154|| (mode == GitCommandMode.Captured && stderr.Contains("could not read Password", StringComparison.OrdinalIgnoreCase));
Git\IGitClient.cs (8)
8Task<string> ResolveReferenceAsync(string repository, string? reference, DirectoryInfo workingDirectory, GitCommandMode mode, CancellationToken cancellationToken); 9Task InitializeAsync(DirectoryInfo workingDirectory, GitRepositoryLocation repository, string? objectFormat, GitCommandMode mode, CancellationToken cancellationToken); 10Task FetchAsync(GitRepositoryLocation destination, string repository, string reference, GitCommandMode mode, CancellationToken cancellationToken); 11Task CheckoutAsync(GitRepositoryLocation repository, GitCommandMode mode, CancellationToken cancellationToken); 12Task<string> GetCommitAsync(GitRepositoryLocation repository, string reference, GitCommandMode mode, CancellationToken cancellationToken); 13Task<GitTreeEntry?> GetFileAsync(GitRepositoryLocation repository, string commit, string path, GitCommandMode mode, CancellationToken cancellationToken); 14Task<long?> GetObjectSizeAsync(GitRepositoryLocation repository, string objectId, GitCommandMode mode, CancellationToken cancellationToken); 15Task<string> ReadBlobAsync(GitRepositoryLocation repository, string objectId, GitCommandMode mode, CancellationToken cancellationToken);
Templating\TemplateEngineFactory.cs (5)
124token => git.ResolveReferenceAsync(repository, reference, executionContext.WorkingDirectory, GitCommandMode.Captured, token), cancellationToken)); 198commitSha.Length == 64 ? "sha256" : "sha1", GitCommandMode.Captured, token); 199await git.FetchAsync(location, repository, commitSha, GitCommandMode.Captured, token); 200await git.CheckoutAsync(location, GitCommandMode.Captured, token); 201var actualSha = await git.GetCommitAsync(location, "HEAD", GitCommandMode.Captured, token);
Aspire.Cli.Tests (64)
Configuration\ConfigSourceServiceGitTests.cs (10)
226startInfo, captureTimeoutOutput, GitCommandMode.Unattended, cancellation.Token); 289var startInfo = client.CreateStartInfo(workspace.Path, ["fetch"], GitCommandMode.Unattended); 314var startInfo = client.CreateStartInfo(workspace.Path, ["fetch", "--depth", "1", "--", "https://example.com/configuration", "HEAD"], GitCommandMode.Interactive); 339var startInfo = runner.CreateStartInfo(workspace.Path, ["ls-remote", "--", "repository", "HEAD"], GitCommandMode.Interactive); 358var startInfo = client.CreateStartInfo(workspace.Path, [command], GitCommandMode.Interactive); 718GitCommandMode[] expectedResolutionModes = selector == "commit" ? [] 719: [GitCommandMode.Interactive, GitCommandMode.Unattended, GitCommandMode.Interactive, GitCommandMode.Unattended];
Git\GitClientTests.cs (20)
31var resolved = await client.ResolveReferenceAsync("-repository with spaces", reference, workspace.WorkspaceRoot, GitCommandMode.Captured, TestContext.Current.CancellationToken); 41Assert.Equal(GitCommandMode.Captured, command.Mode); 55await client.ResolveReferenceAsync("repository", "same", workspace.WorkspaceRoot, GitCommandMode.Captured, TestContext.Current.CancellationToken)); 59[InlineData(nameof(GitCommandMode.Captured), 40)] 60[InlineData(nameof(GitCommandMode.Interactive), 64)] 61[InlineData(nameof(GitCommandMode.Unattended), 64)] 68var interactionMode = Enum.Parse<GitCommandMode>(mode); 88client.ResolveReferenceAsync("repository", "missing", workspace.WorkspaceRoot, GitCommandMode.Captured, TestContext.Current.CancellationToken)); 102var resolved = await client.ResolveReferenceAsync("repository", new string('A', length), workspace.WorkspaceRoot, GitCommandMode.Captured, TestContext.Current.CancellationToken); 117await client.InitializeAsync(workspace.WorkspaceRoot, repository, objectFormat: null, GitCommandMode.Interactive, token); 118await client.FetchAsync(repository, "repository with spaces", "refs/heads/main", GitCommandMode.Unattended, token); 119Assert.Equal(TestGitCommandRunner.DefaultCommitSha, await client.GetCommitAsync(repository, "FETCH_HEAD^{commit}", GitCommandMode.Interactive, token)); 126Assert.Equal(GitCommandMode.Interactive, command.Mode); 132Assert.Equal(GitCommandMode.Unattended, command.Mode); 137Assert.Equal(GitCommandMode.Interactive, command.Mode); 155var entry = await client.GetFileAsync(repository, objectId, path, GitCommandMode.Interactive, TestContext.Current.CancellationToken); 173Assert.Null(await client.GetFileAsync(repository, TestGitCommandRunner.DefaultCommitSha, "file", GitCommandMode.Interactive, TestContext.Current.CancellationToken)); 189Assert.Equal(23, await client.GetObjectSizeAsync(repository, objectId, GitCommandMode.Interactive, TestContext.Current.CancellationToken)); 190Assert.Equal(content, await client.ReadBlobAsync(repository, objectId, GitCommandMode.Interactive, TestContext.Current.CancellationToken));
Git\GitCommandRunnerTests.cs (20)
28["fetch", "--", "-repository with spaces", "HEAD"], GitCommandMode.Captured); 61GitCommandRunner.FilterEnvironment(environment, GitCommandMode.Captured); 68[InlineData(nameof(GitCommandMode.Interactive))] 69[InlineData(nameof(GitCommandMode.Unattended))] 80GitCommandRunner.FilterEnvironment(environment, Enum.Parse<GitCommandMode>(mode)); 91[InlineData(nameof(GitCommandMode.Interactive), false)] 92[InlineData(nameof(GitCommandMode.Interactive), true)] 93[InlineData(nameof(GitCommandMode.Unattended), false)] 94[InlineData(nameof(GitCommandMode.Unattended), true)] 109GitCommandRunner.FilterEnvironment(environment, Enum.Parse<GitCommandMode>(mode)); 141runner.RunProcessAsync(startInfo, captureCancellationOutput: false, GitCommandMode.Captured, TestContext.Current.CancellationToken)); 158[InlineData(nameof(GitCommandMode.Captured), nameof(GitFailure.AuthenticationFailed))] 159[InlineData(nameof(GitCommandMode.Interactive), nameof(GitFailure.CommandFailed))] 160[InlineData(nameof(GitCommandMode.Unattended), nameof(GitFailure.CommandFailed))] 163var exception = GitCommandRunner.CreateCommandException("fatal: could not read Password", 128, Enum.Parse<GitCommandMode>(mode)); 179CreateRunner().RunProcessAsync(startInfo, captureCancellationOutput: false, GitCommandMode.Captured, TestContext.Current.CancellationToken)); 193CreateRunner().RunProcessAsync(startInfo, captureCancellationOutput: false, GitCommandMode.Captured, new CancellationToken(canceled: true))); 201var output = await CreateRunner().RunProcessAsync(startInfo, captureCancellationOutput: false, GitCommandMode.Captured, TestContext.Current.CancellationToken); 211var startInfo = runner.CreateStartInfo(workspace.Path, ["fetch"], GitCommandMode.Captured); 224var output = await runner.RunProcessAsync(startInfo, captureCancellationOutput: false, GitCommandMode.Captured, cancellation.Token);
Templating\TemplateEngineFactoryGitTests.cs (1)
48Assert.All(commands.Commands, command => Assert.Equal(GitCommandMode.Captured, command.Mode));
TestServices\TestConfigSourceServices.cs (11)
102GitCommandMode mode, CancellationToken cancellationToken) => Task.CompletedTask; 104public Task FetchAsync(GitRepositoryLocation destination, string repository, string reference, GitCommandMode mode, CancellationToken cancellationToken) 110public Task<string> GetCommitAsync(GitRepositoryLocation repository, string reference, GitCommandMode mode, CancellationToken cancellationToken) => 113public async Task<GitTreeEntry?> GetFileAsync(GitRepositoryLocation repository, string commit, string path, GitCommandMode mode, CancellationToken cancellationToken) 124if (state.Mode == GitCommandMode.Unattended) 139public Task<long?> GetObjectSizeAsync(GitRepositoryLocation repository, string objectId, GitCommandMode mode, CancellationToken cancellationToken) => 142public Task<string> ReadBlobAsync(GitRepositoryLocation repository, string objectId, GitCommandMode mode, CancellationToken cancellationToken) => 145public Task<string> ResolveReferenceAsync(string repository, string? reference, DirectoryInfo workingDirectory, GitCommandMode mode, CancellationToken cancellationToken) => 148public Task CheckoutAsync(GitRepositoryLocation repository, GitCommandMode mode, CancellationToken cancellationToken) => 151private sealed class RepositoryState(string repository, string reference, GitCommandMode mode) 155public GitCommandMode Mode { get; } = mode;
TestServices\TestGitCommandRunner.cs (2)
42public async Task<string> RunAsync(DirectoryInfo workingDirectory, string[] arguments, GitCommandMode mode, CancellationToken cancellationToken) 53internal sealed record GitCommandInvocation(DirectoryInfo WorkingDirectory, string[] Arguments, GitCommandMode Mode);