aboutsummaryrefslogtreecommitdiffstats
path: root/routers/api
diff options
context:
space:
mode:
author6543 <6543@obermui.de>2021-06-17 08:40:59 +0200
committerGitHub <noreply@github.com>2021-06-17 08:40:59 +0200
commit9469e14dc6eb6f2dbd312527ed83d690800a8fc2 (patch)
tree45fb4ed1cdb14ea72f80dfb2ef82226a24433ed4 /routers/api
parentfdf9ab11cd3707ce882756e616955d58d78db8c9 (diff)
downloadgitea-9469e14dc6eb6f2dbd312527ed83d690800a8fc2.tar.gz
gitea-9469e14dc6eb6f2dbd312527ed83d690800a8fc2.zip
[API] Issue Search Add filter for MilestoneNames (#16173)
Diffstat (limited to 'routers/api')
-rw-r--r--routers/api/v1/repo/issue.go13
1 files changed, 12 insertions, 1 deletions
diff --git a/routers/api/v1/repo/issue.go b/routers/api/v1/repo/issue.go
index 5932765ab8..5a7d10b36f 100644
--- a/routers/api/v1/repo/issue.go
+++ b/routers/api/v1/repo/issue.go
@@ -42,6 +42,10 @@ func SearchIssues(ctx *context.APIContext) {
// in: query
// description: comma separated list of labels. Fetch only issues that have any of this labels. Non existent labels are discarded
// type: string
+ // - name: milestones
+ // in: query
+ // description: comma separated list of milestone names. Fetch only issues that have any of this milestones. Non existent are discarded
+ // type: string
// - name: q
// in: query
// description: search string
@@ -164,6 +168,12 @@ func SearchIssues(ctx *context.APIContext) {
includedLabelNames = strings.Split(labels, ",")
}
+ milestones := strings.TrimSpace(ctx.Query("milestones"))
+ var includedMilestones []string
+ if len(milestones) > 0 {
+ includedMilestones = strings.Split(milestones, ",")
+ }
+
// this api is also used in UI,
// so the default limit is set to fit UI needs
limit := ctx.QueryInt("limit")
@@ -175,7 +185,7 @@ func SearchIssues(ctx *context.APIContext) {
// Only fetch the issues if we either don't have a keyword or the search returned issues
// This would otherwise return all issues if no issues were found by the search.
- if len(keyword) == 0 || len(issueIDs) > 0 || len(includedLabelNames) > 0 {
+ if len(keyword) == 0 || len(issueIDs) > 0 || len(includedLabelNames) > 0 || len(includedMilestones) > 0 {
issuesOpt := &models.IssuesOptions{
ListOptions: models.ListOptions{
Page: ctx.QueryInt("page"),
@@ -185,6 +195,7 @@ func SearchIssues(ctx *context.APIContext) {
IsClosed: isClosed,
IssueIDs: issueIDs,
IncludedLabelNames: includedLabelNames,
+ IncludeMilestones: includedMilestones,
SortType: "priorityrepo",
PriorityRepoID: ctx.QueryInt64("priority_repo_id"),
IsPull: isPull,