diff --git a/pagure/api/issue.py b/pagure/api/issue.py index 3df2471..9bff2da 100644 --- a/pagure/api/issue.py +++ b/pagure/api/issue.py @@ -226,6 +226,9 @@ def api_view_issues(repo, username=None, namespace=None): | ``author`` | string | Optional | | Filter the issues | | | | | by creator | +---------------+---------+--------------+---------------------------+ + | ``milestones``| list of | Optional | | Filter the issues | + | | strings | | by milestone | + +---------------+---------+--------------+---------------------------+ Sample response ^^^^^^^^^^^^^^^ @@ -282,6 +285,7 @@ def api_view_issues(repo, username=None, namespace=None): tags = [tag.strip() for tag in tags if tag.strip()] assignee = flask.request.args.get('assignee', None) author = flask.request.args.get('author', None) + milestone = flask.request.args.getlist('milestones', None) since = flask.request.args.get('since', None) # Hide private tickets @@ -303,6 +307,7 @@ def api_view_issues(repo, username=None, namespace=None): 'assignee': assignee, 'author': author, 'private': private, + 'milestones': milestone, } if status is not None: @@ -342,6 +347,7 @@ def api_view_issues(repo, username=None, namespace=None): 'assignee': assignee, 'author': author, 'since': since + 'milestones': milestone, } }) return jsonout diff --git a/tests/test_pagure_flask_api_issue.py b/tests/test_pagure_flask_api_issue.py index db066a8..861840d 100644 --- a/tests/test_pagure_flask_api_issue.py +++ b/tests/test_pagure_flask_api_issue.py @@ -781,6 +781,7 @@ class PagureFlaskApiIssuetests(tests.Modeltests): "args": { "assignee": None, "author": None, + 'milestones': [], "since": None, "status": None, "tags": [] @@ -818,6 +819,7 @@ class PagureFlaskApiIssuetests(tests.Modeltests): "args": { "assignee": None, "author": None, + 'milestones': [], "since": None, "status": None, "tags": [] @@ -857,6 +859,7 @@ class PagureFlaskApiIssuetests(tests.Modeltests): "args": { "assignee": None, "author": None, + 'milestones': [], "since": None, "status": None, "tags": [] @@ -882,6 +885,7 @@ class PagureFlaskApiIssuetests(tests.Modeltests): "args": { "assignee": None, "author": None, + 'milestones': [], "since": None, "status": None, "tags": [] @@ -921,6 +925,7 @@ class PagureFlaskApiIssuetests(tests.Modeltests): "args": { "assignee": None, "author": None, + 'milestones': [], "since": None, "status": None, "tags": [] @@ -945,6 +950,7 @@ class PagureFlaskApiIssuetests(tests.Modeltests): "args": { "assignee": None, "author": None, + 'milestones': [], "since": None, "status": None, "tags": [] @@ -964,6 +970,7 @@ class PagureFlaskApiIssuetests(tests.Modeltests): "args": { "assignee": None, "author": None, + 'milestones': [], "since": None, "status": "Closed", "tags": [] @@ -983,6 +990,7 @@ class PagureFlaskApiIssuetests(tests.Modeltests): "args": { "assignee": None, "author": None, + 'milestones': [], "since": None, "status": "Invalid", "tags": [] @@ -1005,6 +1013,7 @@ class PagureFlaskApiIssuetests(tests.Modeltests): "args": { "assignee": None, "author": None, + 'milestones': [], "since": None, "status": "All", "tags": [] @@ -1140,6 +1149,7 @@ class PagureFlaskApiIssuetests(tests.Modeltests): "args": { "assignee": None, "author": None, + 'milestones': [], "since": None, "status": None, "tags": [] @@ -1165,6 +1175,7 @@ class PagureFlaskApiIssuetests(tests.Modeltests): "args": { "assignee": None, "author": None, + 'milestones': [], "since": start, "status": None, "tags": [] @@ -1187,6 +1198,7 @@ class PagureFlaskApiIssuetests(tests.Modeltests): "args": { "assignee": None, "author": None, + 'milestones': [], "since": middle, "status": None, "tags": [] @@ -1209,6 +1221,7 @@ class PagureFlaskApiIssuetests(tests.Modeltests): "args": { "assignee": None, "author": None, + 'milestones': [], "since": final, "status": None, "tags": [] @@ -1234,6 +1247,7 @@ class PagureFlaskApiIssuetests(tests.Modeltests): "args": { "assignee": None, "author": None, + 'milestones': [], "since": final, "status": None, "tags": []