diff options
Diffstat (limited to 'src/marlin.core/functional/IGitCredential.cs')
| -rw-r--r-- | src/marlin.core/functional/IGitCredential.cs | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/marlin.core/functional/IGitCredential.cs b/src/marlin.core/functional/IGitCredential.cs new file mode 100644 index 0000000..cf96804 --- /dev/null +++ b/src/marlin.core/functional/IGitCredential.cs @@ -0,0 +1,18 @@ +namespace marlin.core.functional; + +using System.Diagnostics; + +/// <summary> +/// Supplies whatever git needs to authenticate a single invocation — an HTTP header, +/// an SSH key, etc. Credentials are applied per-process via environment variables only; +/// nothing is written to git config, argv, or any credential store. +/// </summary> +public interface IGitCredential +{ + /// <summary> + /// Configures <paramref name="psi"/> so the git process it starts can authenticate. + /// Returns a disposable that tears down anything ephemeral (e.g. a temp key file) + /// once that process has exited. + /// </summary> + Task<IAsyncDisposable> ApplyAsync(ProcessStartInfo psi); +} |
