public JiraService(IJiraContext jiraContext, IJiraRepository repository)
        {
            _jiraContext = jiraContext ?? throw new ArgumentNullException(nameof(jiraContext));
            _repository  = repository ?? throw new ArgumentNullException(nameof(repository));

            InitializeTask = Initialize();
        }
        public static async Task <IEnumerable <JiraUser> > GetAllUsers(this Atlassian.Jira.Jira jira,
                                                                       IJiraContext jiraContext,
                                                                       CancellationToken token = default)
        {
            var  url         = "rest/api/2/user/assignable/multiProjectSearch";
            int  startAt     = 0;
            int  loaded      = 0;
            var  fullResult  = new List <JiraUser>();
            bool hasMoreData = false;

            do
            {
                var page = await jira.RestClient.ExecuteRequestAsync <IEnumerable <Atlassian.Jira.JiraUser> >(
                    Method.GET,
                    $"{url}?projectKeys={jiraContext.Project}&startAt={startAt}&maxResults={MaxUsersPerRequest}",
                    null,
                    token).ConfigureAwait(false);

                if (page == null)
                {
                    break;
                }

                var previousCount = fullResult.Count;
                fullResult.AddRange(page.Select(ToJiraUser));
                loaded = fullResult.Count - previousCount;

                startAt += loaded;
            } while (loaded >= MaxUsersPerRequest);

            return(fullResult);
        }
        public JiraRepository(IJiraContext jiraContext)
        {
            // RAII
            _jiraContext = jiraContext;

            _jira = Atlassian.Jira.Jira.CreateRestClient(
                jiraContext.Uri, jiraContext.Login, jiraContext.Password);

            _jira.Issues.MaxIssuesPerRequest = MaxIssuesPerRequest;
        }
Exemple #4
0
        public JiraGraphBuilder(IJiraContext jiraContext, string epicTypeId)
        {
            var statusColors = jiraContext.StatusColors;

            (string, Color)[] map = BuildStatusColorMapForCategoryColorAnalysis(statusColors);