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());
        }
Exemplo n.º 2
0
 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);
        }
Exemplo n.º 4
0
        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;
 }
Exemplo n.º 6
0
        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));
        }
Exemplo n.º 7
0
 public LocalDirJiraApi(LocalDirs localDirs)
 {
     _localDirs       = localDirs ?? throw new ArgumentNullException(nameof(localDirs));
     _issuesByProject = LoadedIssuesByProject(localDirs);
 }