private IKerberosConfigFileMover GetKerberosConfigFileMover(string targetPath) { IKerberosConfigFileMover kerberosConfigFileMover; if (!string.IsNullOrWhiteSpace(GitHubSettings.KerberosConfigRawUrlString)) { kerberosConfigFileMover = new KerberosConfigFileMover(targetPath, new GitHubFileDownloader(new Uri(GitHubSettings.KerberosConfigRawUrlString), GitHubSettings.AccessToken)); } else if (!string.IsNullOrWhiteSpace(AzureDevOpsGitSettings.KerberosConfigPath)) { var downloader = new AzureDevopsGitFileDownloader(AzureDevOpsGitSettings.CollectionUrl, AzureDevOpsGitSettings.ProjectName, AzureDevOpsGitSettings.RepositoryName, AzureDevOpsGitSettings.AccessToken, AzureDevOpsGitSettings.KerberosConfigPath); kerberosConfigFileMover = new KerberosConfigFileMover(targetPath, downloader); } else { throw new Exception("Kerberos configuration information (GitHub/AzureDevOpsGit) not provided! Please refer to the readme for environment variable details to set."); } return(kerberosConfigFileMover); }
private IKeyTabFileMover GetKerberosKeytabFileMover() { IKeyTabFileMover keyTabFileMover; if (!string.IsNullOrWhiteSpace(GitHubSettings.KerberosKeytabRawUrlString)) { keyTabFileMover = new KeyTabFileMover(buildPath, new GitHubFileDownloader(new Uri(GitHubSettings.KerberosKeytabRawUrlString), GitHubSettings.AccessToken)); } else if (!string.IsNullOrWhiteSpace(AzureDevOpsGitSettings.KerberosKeytabPath)) { var downloader = new AzureDevopsGitFileDownloader(AzureDevOpsGitSettings.CollectionUrl, AzureDevOpsGitSettings.ProjectName, AzureDevOpsGitSettings.RepositoryName, AzureDevOpsGitSettings.AccessToken, AzureDevOpsGitSettings.KerberosKeytabPath); keyTabFileMover = new KeyTabFileMover(buildPath, downloader); } else if (!string.IsNullOrWhiteSpace(AzureVaultSettings.SecretName)) { var downloader = new AzureKeyVaultFileDownloader(AzureVaultSettings.VaultBaseUrl, AzureVaultSettings.ClientAppId, AzureVaultSettings.ClientAppSecret, AzureVaultSettings.SecretName, AzureVaultSettings.SecretVersion); keyTabFileMover = new KeyTabFileMover(buildPath, downloader); } else { throw new Exception("Kerberos keytab file information (GitHub/AzureDevOpsGit/AzureVault) not provided! Please refer to the readme for environment variable details to set."); } return(keyTabFileMover); }
public void Test_WithAPITokenProvided() { var path = Path.Combine(Environment.CurrentDirectory, "TestAzureGitDownload", "AzureGit.txt"); if (File.Exists(path)) { File.Delete(path); } var downloader = new AzureDevopsGitFileDownloader(collectionUrl, projectName, repoName, apiToken, sourceFileUrlRelativeToTheRoot); downloader.Download(path); Assert.True(File.Exists(path)); Assert.True(File.ReadAllText(path).Length > 0); }