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  }