From a9bc03fb01b5d1ac41bf5592f384d22df5425aa4 Mon Sep 17 00:00:00 2001
From: Melodi <62381002+Melodi17@users.noreply.github.com>
Date: Sun, 6 Sep 2026 09:02:31 +1000
Subject: feat: vcs and secret management support
---
src/marlin.core/functional/IGitCredential.cs | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
create mode 100644 src/marlin.core/functional/IGitCredential.cs
(limited to 'src/marlin.core/functional/IGitCredential.cs')
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;
+
+///
+/// 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.
+///
+public interface IGitCredential
+{
+ ///
+ /// Configures 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.
+ ///
+ Task ApplyAsync(ProcessStartInfo psi);
+}
--
cgit v1.3.1