| 230 | } |
| 231 | |
| 232 | func issueList(client *http.Client, detector fd.Detector, repo ghrepo.Interface, filters prShared.FilterOptions, limit int) (*api.IssuesAndTotalCount, error) { |
| 233 | apiClient := api.NewClientFromHTTP(client) |
| 234 | |
| 235 | if filters.Search != "" || len(filters.Labels) > 0 || filters.Milestone != "" || filters.IssueType != "" { |
| 236 | if milestoneNumber, err := strconv.ParseInt(filters.Milestone, 10, 32); err == nil { |
| 237 | milestone, err := milestoneByNumber(client, repo, int32(milestoneNumber)) |
| 238 | if err != nil { |
| 239 | return nil, err |
| 240 | } |
| 241 | filters.Milestone = milestone.Title |
| 242 | } |
| 243 | |
| 244 | return searchIssues(apiClient, detector, repo, filters, limit) |
| 245 | } |
| 246 | |
| 247 | var err error |
| 248 | meReplacer := prShared.NewMeReplacer(apiClient, repo.RepoHost()) |
| 249 | filters.Assignee, err = meReplacer.Replace(filters.Assignee) |
| 250 | if err != nil { |
| 251 | return nil, err |
| 252 | } |
| 253 | filters.Author, err = meReplacer.Replace(filters.Author) |
| 254 | if err != nil { |
| 255 | return nil, err |
| 256 | } |
| 257 | filters.Mention, err = meReplacer.Replace(filters.Mention) |
| 258 | if err != nil { |
| 259 | return nil, err |
| 260 | } |
| 261 | |
| 262 | return listIssues(apiClient, repo, filters, limit) |
| 263 | } |
| 264 | |
| 265 | func milestoneByNumber(client *http.Client, repo ghrepo.Interface, number int32) (*api.RepoMilestone, error) { |
| 266 | var query struct { |