public static GitDbContext CreateFromLocal(PineBlogGitDbOptions options) { var credentials = GetCredentials(options); string repositoryPath = Repository.Discover(options.LocalRepositoryBasePath); if (repositoryPath == null) { return(null); } var repository = new Repository(options.LocalRepositoryBasePath); return(new GitDbContext(repository, credentials, repositoryPath)); }
public async Task SingleOrDefaultAsync_Should_ReturnNull_WhenNoBlogSettingsFile() { var options = new PineBlogGitDbOptions() { Branch = "test" }; var optionsMock = new Mock <IOptionsSnapshot <PineBlogGitDbOptions> >(); optionsMock.Setup(m => m.Value).Returns(options); var gitDbContext = ServiceProvider.GetRequiredService <GitDbContext>(); var blogSettingsRepository = new BlogSettingsRepository(gitDbContext, optionsMock.Object); var result = await blogSettingsRepository.SingleOrDefaultAsync(CancellationToken.None); result.Should().BeNull(); }
public static GitDbContext Create(PineBlogGitDbOptions options) { var credentials = GetCredentials(options); string repositoryPath = Repository.Discover(options.LocalRepositoryBasePath); if (repositoryPath == null) { var cloneOptions = new CloneOptions(); cloneOptions.CredentialsProvider = (_url, _user, _cred) => credentials; var sourceUrl = new Uri(options.RepositoryUrl).AbsoluteUri; repositoryPath = Repository.Clone(sourceUrl, options.LocalRepositoryBasePath, cloneOptions); if (repositoryPath == null) { throw new NotFoundException <GitDbContext>($"Could not clone repository \"{sourceUrl}\"."); } } var repository = new Repository(options.LocalRepositoryBasePath); return(new GitDbContext(repository, credentials, repositoryPath)); }
protected static Credentials GetCredentials(PineBlogGitDbOptions options) { //return new UsernamePasswordCredentials { Username = settings.UserName, Password = settings.Password }; return(new DefaultCredentials()); }