github.com/crosbymichael/octokat@v0.0.0-20160826194511-076a32289ed5/searches.go (about) 1 package octokat 2 3 import ( 4 "fmt" 5 "time" 6 ) 7 8 type SearchItem struct { 9 URL string `json:"url,omitempty,omitempty"` 10 LABELSURL string `json:"labels_url,omitempty,omitempty"` 11 COMMENTSURL string `json:"comments_url,omitempty,omitempty"` 12 EVENTSURL string `json:"events_url,omitempty,omitempty"` 13 HTMLURL string `json:"html_url,omitempty,omitempty"` 14 Id int `json:"id,omitempty"` 15 Number int `json:"number,omitempty"` 16 Title string `json:"title,omitempty"` 17 User User `json:"user,omitempty"` 18 Labels []struct { 19 URL string `json:"url,omitempty"` 20 Name string `json:"name,omitempty"` 21 Color string `json:"color,omitempty"` 22 } `json:"labels,omitempty"` 23 State string `json:"state,omitempty"` 24 Assignee User `json:"assignee,omitempty"` 25 Milestone struct { 26 URL string `json:"url,omitempty"` 27 Number int `json:"number,omitempty"` 28 State string `json:"state,omitempty"` 29 Title string `json:"title,omitempty"` 30 Description string `json:"description,omitempty"` 31 Creator User `json:"creator,omitempty"` 32 OpenIssues int `json:"open_issues,omitempty"` 33 ClosedIssues int `json:"closed_issues,omitempty"` 34 CreatedAt time.Time `json:"created_at,omitempty"` 35 DueOn *time.Time `json:"due_on,omitempty"` 36 } `json:"milestone,omitempty"` 37 Comments int `json:"comments,omitempty"` 38 CreatedAt time.Time `json:"created_at,omitempty"` 39 UpdatedAt time.Time `json:"updated_at,omitempty"` 40 ClosedAt *time.Time `json:"closed_at,omitempty"` 41 PullRequest struct { 42 HTMLURL string `json:"html_url,omitempty"` 43 DiffURL string `json:"diff_url,omitempty"` 44 PatchURL string `json:"patch_url,omitempty"` 45 } `json:"pull_request,omitempty"` 46 Body string `json:"body,omitempty"` 47 Score float64 `json:"score,omitempty"` 48 } 49 50 type SearchIssue struct { 51 TotalCount int `json:"total_count,omitempty"` 52 Items []*SearchItem `json:"items,omitempty"` 53 } 54 55 // Search issues 56 // 57 // See http://developer.github.com/v3/search/#search-issues 58 func (c *Client) SearchIssues(query string, options *Options) (issues []*SearchItem, err error) { 59 var ( 60 path = fmt.Sprintf("search/issues?%s", query) 61 issuesFound = SearchIssue{} 62 ) 63 err = c.jsonGet(path, options, &issuesFound) 64 issues = issuesFound.Items 65 return 66 }