public SyncRepository(Repository repo, ICommitRepository commitRepo, IGitCredentialsProvider gitCredentialsProvider, IProcessRunner processRunner) { this.repo = repo; this.commitRepo = commitRepo; this.gitCredentialsProvider = gitCredentialsProvider; this.processRunner = processRunner; }
static GitCredentialsProviderResult GetCredentialsFromProvider(IGitCredentialsProvider gitCredentialsProvider, string uri, SupportedCredentialTypes type, Credentials cred) { if (type != SupportedCredentialTypes.UsernamePassword) { return(GitCredentialsProviderResult.NotFound); } var(result, credentials) = Task.Run(() => gitCredentialsProvider.TryGetCredentialsAsync(uri)).Result; if (result == GitCredentialsProviderResult.Found) { ((UsernamePasswordCredentials)cred).Username = credentials.Username; ((UsernamePasswordCredentials)cred).Password = credentials.Password; } return(result); }
public TestRepositoryBuilder(string repositoryUrl, IGitCredentialsProvider gitCredentialsProvider) { GitCredentialsProvider = gitCredentialsProvider ?? throw new ArgumentNullException(nameof(gitCredentialsProvider)); // Create repo working dir WorkingDirectory = Path.Combine(Path.GetTempPath(), "SharpBucketTestRepositories", Guid.NewGuid().ToString("N")); Directory.CreateDirectory(WorkingDirectory); // Clone the bitbucket repository try { var cloneOptions = new CloneOptions { CredentialsProvider = gitCredentialsProvider.GetCredentials }; Repository.Clone(repositoryUrl, WorkingDirectory, cloneOptions); } catch (Exception) { Directory.Delete(WorkingDirectory, true); throw; } }
public PublishToGitRepo(BuildTaskDefinition taskDefinition, IGitCredentialsProvider gitCredentialsProvider) { this.gitCredentialsProvider = gitCredentialsProvider; }