2016-06-12 7 views
2

ステータスがDone or Closedのプロジェクトにすべての値を表示しようとしています。高度な検索でJQLクエリを実行すると、プロジェクトで3096の問題が発生します。しかし、私はそれをPythonで実行すると、約50の問題が発生します。 JQLクエリと状態DoneまたはClosedと3000の以上の問題があるにもかかわらず、JiraはステータスがDoneまたはClosedのプロジェクトのすべての問題を検索します

#/usr/bin/python 
import jira.client 
from jira.client import JIRA 

options = {'server': 'http://jira.confluence.no' } 
jira = JIRA(options, batch_auth=('admin', 'admin')) 
project = jira.projects() 

for project in projects: 
    issues = jira.search_issues('project=JA') 

for issue in issues: 
    if str(issue.fields.status) == 'Done' or str(issue.fields.status) == 'Closed': 
     print issue 

私はわずか50かそこらの問題を取得しています。

制限はありますか? https://pythonhosted.org/jira/のドキュメントから

+0

あなたはどのように多くのプロジェクトを持っているかを動作するはず?現在のように、「issue」には最後のプロジェクトの問題が含まれます(問題が「project = JA」と一致していなくても)。 'for project'ループの中に' for issue'ループを埋め込むことを意味しますか?実際、なぜ 'for project'ループがあるのでしょうか? –

+0

'for issue'を' for project'ループに埋め込もうとしましたが、何度も何度も同じ問題が発生していました。私はそれをどうやってやれるかについて何か提案していますか? – user3580316

+0

'for poject'ループはまったく必要ありません。あなたはすでにあなたが興味を持っているプロジェクトを 'search_issues'に伝えています。 –

答えて

4

search_issues(jql_str, startAt=0, maxResults=50, validate_query=True, 
       fields=None, expand=None, json_result=None) 

maxResults引数に注意してください。私はあなたがmaxResults=Falseを指定する必要があると思います。また、のようなループでそれを行う:

got = 50 
    total = 0 
    while got==50: 
     issues = jira.search_issues('project=JA', startAt = total) 
     .... 
     got = len(issues) 
     total += got 
+0

私はあなたが私の質問を誤解したと思います。私はすべての問題を挙げることになっていましたが、私は上のポストでコードをどうにかして50の問題しか得ていません。 – user3580316

+4

@ user3580316:私は完全に理解しました。 「結果をたくさん教えてください」と指定するか、丸ごとループさせて塊にする必要があります。 –

3

マーティン・ボナーの答えはOKですが、私はちょうどより多くの明確化を追加するための答えを投稿しています。

search_issues方法はJQLクエリを実行するためにJIRA REST APIを使用していますので、あなたもstartAtとmaxResultsパラメータを理解することJIRA REST API documentationを見ることができます、このドキュメントから

enter image description here

をI maxResultsは、値としてintのみを受け入れると仮定します。

+0

無制限の結果を定義するにはどうすればよいですか?これは正しいです? 'issues = jira.search_issues( 'project = JA'、maxResults = 500000)' – user3580316

+0

デフォルトでは、返される問題の数は1000に制限されています.JIRA Cloudでは、この値を変更することはできません:https://confluence.atlassian.com /jirakb/changing-maxresults-parameter-for-jira-rest-api-779160706.html – GlennV

+0

独自のJIRAを実行している場合は、最大結果数を変更するようにJIRAを設定する方法についてこの記事を参照してください。 https://confluence.atlassian.com/jirakb/how-to-increase-the-jira-search-results-limit-on-the-issue-navigator-357696242.html。この制限は意図的なものであり、パフォーマンスやメモリの問題を回避することを目的としています。推奨されるアプローチは、maxResultsおよびstartAtパラメータを使用してバッチで結果を取得することです。 – GlennV

-2

使用maxResultsパラメータを、あなたのケースのmaxResultsに= 3000

関連する問題