1 files changed, 28 insertions, 0 deletions
diff --git a/LibGitTest/WebRepoSource.cs b/LibGitTest/WebRepoSource.cs
new file mode 100644
index 0000000..39d9b79
--- /dev/null
+++ b/LibGitTest/WebRepoSource.cs
@@ -0,0 +1,28 @@
+using LibGit.Interfaces;
+
+namespace LibGitTest;
+
+public class WebRepoSource : IRepoSource
+{
+ private const bool _debug = false;
+ public WebRepoSource(string basePath)
+ {
+ BasePath = basePath;
+ }
+
+ public string BasePath { get; set; }
+
+ public async Task<Stream> GetFileStream(string path)
+ {
+ var client = new HttpClient();
+ if(_debug)Console.WriteLine("Fetching file: " + Path.Join(BasePath, path));
+ var response = await client.GetAsync(Path.Join(BasePath, path));
+ if(!response.IsSuccessStatusCode) throw new Exception("Failed to fetch file: " + Path.Join(BasePath, path));
+ return await response.Content.ReadAsStreamAsync();
+ }
+
+ public async Task<bool> HasObjectCached(string currentCommitId)
+ {
+ return Random.Shared.Next(0, 2) == 1;
+ }
+}
\ No newline at end of file
|