@@ -52,63 +52,87 @@ func ListPullRequests(ctx *context.APIContext) {
52
52
// parameters:
53
53
// - name: owner
54
54
// in: path
55
- // description: owner of the repo
55
+ // description: Owner of the repo
56
56
// type: string
57
57
// required: true
58
58
// - name: repo
59
59
// in: path
60
- // description: name of the repo
60
+ // description: Name of the repo
61
61
// type: string
62
62
// required: true
63
63
// - name: state
64
64
// in: query
65
- // description: " State of pull request: open or closed (optional)"
65
+ // description: State of pull request
66
66
// type: string
67
- // enum: [closed, open, all]
67
+ // enum: [open, closed, all]
68
+ // default: open
68
69
// - name: sort
69
70
// in: query
70
- // description: " Type of sort"
71
+ // description: Type of sort
71
72
// type: string
72
73
// enum: [oldest, recentupdate, leastupdate, mostcomment, leastcomment, priority]
73
74
// - name: milestone
74
75
// in: query
75
- // description: " ID of the milestone"
76
+ // description: ID of the milestone
76
77
// type: integer
77
78
// format: int64
78
79
// - name: labels
79
80
// in: query
80
- // description: " Label IDs"
81
+ // description: Label IDs
81
82
// type: array
82
83
// collectionFormat: multi
83
84
// items:
84
85
// type: integer
85
86
// format: int64
87
+ // - name: poster
88
+ // in: query
89
+ // description: Filter by pull request author
90
+ // type: string
86
91
// - name: page
87
92
// in: query
88
- // description: page number of results to return (1-based)
93
+ // description: Page number of results to return (1-based)
89
94
// type: integer
95
+ // minimum: 1
96
+ // default: 1
90
97
// - name: limit
91
98
// in: query
92
- // description: page size of results
99
+ // description: Page size of results
93
100
// type: integer
101
+ // minimum: 0
94
102
// responses:
95
103
// "200":
96
104
// "$ref": "#/responses/PullRequestList"
97
105
// "404":
98
106
// "$ref": "#/responses/notFound"
107
+ // "500":
108
+ // "$ref": "#/responses/error"
99
109
100
110
labelIDs , err := base .StringsToInt64s (ctx .FormStrings ("labels" ))
101
111
if err != nil {
102
112
ctx .Error (http .StatusInternalServerError , "PullRequests" , err )
103
113
return
104
114
}
115
+ var posterID int64
116
+ if posterStr := ctx .FormString ("poster" ); posterStr != "" {
117
+ poster , err := user_model .GetUserByName (ctx , posterStr )
118
+ if err != nil {
119
+ if user_model .IsErrUserNotExist (err ) {
120
+ ctx .Error (http .StatusBadRequest , "Poster not found" , err )
121
+ } else {
122
+ ctx .Error (http .StatusInternalServerError , "GetUserByName" , err )
123
+ }
124
+ return
125
+ }
126
+ posterID = poster .ID
127
+ }
105
128
listOptions := utils .GetListOptions (ctx )
106
129
prs , maxResults , err := issues_model .PullRequests (ctx , ctx .Repo .Repository .ID , & issues_model.PullRequestsOptions {
107
130
ListOptions : listOptions ,
108
131
State : ctx .FormTrim ("state" ),
109
132
SortType : ctx .FormTrim ("sort" ),
110
133
Labels : labelIDs ,
111
134
MilestoneID : ctx .FormInt64 ("milestone" ),
135
+ PosterID : posterID ,
112
136
})
113
137
if err != nil {
114
138
ctx .Error (http .StatusInternalServerError , "PullRequests" , err )
0 commit comments