Jira Python - все вопросы из всех проектов - PullRequest
0 голосов
/ 07 апреля 2020

У меня есть код для подключения к экземпляру JIRA-сервера моей компании через клиент Python Jira. Когда я делаю подсчет всех проектов, доступных на сервере, я вижу около 4300 проектов, но когда я oop просматриваю проекты, чтобы получить список всех проблем во всех проектах, я не могу получить больше 149 проекты. В каждом проекте около 100 вопросов, поэтому я ожидаю в общей сложности 4300 проектов и 430000 вопросов. Но я получаю 149 проектов, и l oop существует с ~ 27000 проблем. Кто-нибудь сталкивался с этой проблемой? Вот код, который я использую:

import jira.client
from jira.client import JIRA
import re
import pandas as pd
options = {"server": "https://horizon.xxxxxx.com/issues",'verify':False}
jira = JIRA(options, basic_auth=('user','pwd'))
projects = jira.projects()
allissues = []
allprojects=[]
block_size=50
for projectA in projects:
    block_num=0
    while True:
        start_idx=block_num*block_size
        issues=jira.search_issues(f'project = {projectA.key}', start_idx, block_size)
        if len(issues)== 0:
            break
        block_num+=1
        for issue in issues:
            allissues.append(issue)
            allprojects.append(projectA.key)

Ответы [ 3 ]

0 голосов
/ 07 апреля 2020

Добавление цитат к решенным ниже проектам:

import jira.client
from jira.client import JIRA
import re
import pandas as pd

options = {"server": "https://horizon.xxxxxxx.com/issues2",'verify':False}
jira = JIRA(options, basic_auth=('user','pwd'))
issues2=pd.DataFrame()
projects = jira.projects()

block_size=50
for projectA in projects:
    block_num=0
    while True:
        start_idx=block_num*block_size
        issues=jira.search_issues(f'project = "{projectA.key}"', start_idx, block_size)
        if len(issues)== 0:
            break
        block_num+=1
        allissues = []
        allissues.extend(issues)
        for allissue in allissues:
            d={
                'projectname': projectA.key,
                'key':allissue .key,
                'assignee':allissue .fields.assignee,
                'creator':allissue .fields.creator,
                'reporter':allissue .fields.reporter,
                'created':allissue .fields.created,
                'components':allissue .fields.components,
                'description':allissue .fields.description,
                'summary':allissue .fields.summary,
                'fixVersion':allissue .fields.fixVersions,
                'subtask':allissue .fields.issuetype.name,
                'priority':allissue .fields.priority.name,
                'resolution':allissue .fields.resolution,
                'resolution.date':allissue .fields.resolutiondate,
                'status.name':allissue .fields.status.name,
                'statusdescription':allissue .fields.status.description,
                'updated':allissue .fields.updated,
                'versions':allissue .fields.versions,
                'watches':allissue .fields.watches,
                'storypoints':allissue .fields.customfield_10002    
            }
            issues2=issues2.append(d, ignore_index=True)
issues2.head()
0 голосов
/ 07 апреля 2020

Имеет ли ваш пользователь разрешение на просмотр для всех проектов? Существуют ли схемы безопасности проблем, не позволяющие увидеть некоторые проблемы?

0 голосов
/ 07 апреля 2020

У меня нет настройки для проверки моего кода, но поток кода должен выглядеть следующим образом:

Сначала импортируйте все необходимые библиотеки и получите все проекты, затем

projectsList=[]
issuesList=[]
for proj in projects:
    while true:
        startIndex=block_num*block_size
        issues=jira.search_issues(f'project = {projectA.key}', start_idx
        if len(issues)== 0:
            break
        block_num+=1
        issueList.extend(issues)
    projectsList.append(proj)

Несколько указателей: 1. Размер блока не требуется при поиске в качестве аргумента, поскольку по умолчанию значение уже установлено равным 50. 2. Вам не нужно добавлять имя проекта каждый раз, когда вы oop представляете проблему

Если у вас все еще есть проблемы с результатами, предоставьте любую дополнительную информацию, такую ​​как информация об ошибках, журналы отладки (добавьте несколько операторов печати) и т. Д. c., Которые могут помочь вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...