public void GetAttachmentIdFromPath_WorksForRelativePath() { var pwd = Directory.GetCurrentDirectory(); var localDirs = new LocalDirs(pwd); var path = localDirs.GetAttachmentFile(_attachment).FullName; localDirs.GetAttachmentIdFromPath(path).ShouldBe(_attachment.Id.ToString()); }
public RestJiraApi(IJiraApiSettings jiraApiSettings, LocalDirs localDirs, CancellationToken cancellationToken) { _jiraApiSettings = jiraApiSettings ?? throw new ArgumentNullException(nameof(jiraApiSettings)); _localDirs = localDirs ?? throw new ArgumentNullException(nameof(localDirs)); _cancellationToken = cancellationToken; _apiUrl = "/rest/api/2/"; _jiraClient = Atlassian.Jira.Jira.CreateRestClient(jiraApiSettings.JiraUrl, jiraApiSettings.JiraUsername, jiraApiSettings.JiraToken.Value); _restClient = _jiraClient.RestClient; }
public void GetRelativePath_RemovesWorkingDirectory() { var pwd = Directory.GetCurrentDirectory(); var localDirs = new LocalDirs(pwd); var file = localDirs.GetAttachmentFile(_attachment); var path = localDirs.GetRelativePath(file); path.ShouldContain($"{_s}{_attachment.Id.ToString()}{_s}"); path.ShouldContain($"{_s}{_attachment.Filename}"); var newFile = localDirs.GetFileFromRelativePath(path); newFile.FullName.ShouldBe(file.FullName); }
public JiraContext(IJiraApiSettings apiSettings, IWorkspaceSettings workspaceSettings, CancellationToken cancellationToken) { ApiSettings = apiSettings; LocalDirs = new LocalDirs(workspaceSettings.WorkspaceDir); LocalJiraApi = new LocalDirJiraApi(LocalDirs); if (apiSettings.JiraOffline) { Logger.Debug("Using local cache only"); Api = LocalJiraApi; } else { Logger.Debug("Using jira api at {url}", apiSettings.JiraUrl); var restJiraApi = new RestJiraApi(apiSettings, LocalDirs, cancellationToken); Api = new CacheJiraApi(apiSettings, restJiraApi, LocalJiraApi); } }
public MigrationRepository(LocalDirs localDirs) { _localDirs = localDirs; }
private static ConcurrentDictionary <string, HashSet <IssueId> > LoadedIssuesByProject(LocalDirs localDirs) { var issuesByProject = localDirs.Issues.GetDirectories() .Select(dir => new IssueId(dir.Name)) .ToLookup(id => id.Project) .ToDictionary(g => g.Key, g => g.ToHashSet()); Logger.Debug("Loaded {issueCount} cached issues", issuesByProject.Sum(kvp => kvp.Value.Count)); return(new ConcurrentDictionary <string, HashSet <IssueId> >(issuesByProject)); }
public LocalDirJiraApi(LocalDirs localDirs) { _localDirs = localDirs ?? throw new ArgumentNullException(nameof(localDirs)); _issuesByProject = LoadedIssuesByProject(localDirs); }