diff options
Diffstat (limited to 'LibGitTest/WebRepoSource.cs')
-rw-r--r-- | LibGitTest/WebRepoSource.cs | 28 |
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 |