github.com/crosbymichael/octokat@v0.0.0-20160826194511-076a32289ed5/commits.go (about)

     1  package octokat
     2  
     3  import (
     4  	"fmt"
     5  	"time"
     6  )
     7  
     8  type CommitFile struct {
     9  	Additions   int    `json:"additions,omitempty"`
    10  	BlobURL     string `json:"blob_url,omitempty"`
    11  	Changes     int    `json:"changes,omitempty"`
    12  	ContentsURL string `json:"contents_url,omitempty"`
    13  	Deletions   int    `json:"deletions,omitempty"`
    14  	Filename    string `json:"filename,omitempty"`
    15  	Patch       string `json:"patch,omitempty"`
    16  	RawURL      string `json:"raw_url,omitempty"`
    17  	Sha         string `json:"sha,omitempty"`
    18  	Status      string `json:"status,omitempty"`
    19  }
    20  
    21  type CommitStats struct {
    22  	Additions int `json:"additions,omitempty"`
    23  	Deletions int `json:"deletions,omitempty"`
    24  	Total     int `json:"total,omitempty"`
    25  }
    26  
    27  type CommitCommit struct {
    28  	Author struct {
    29  		Date  *time.Time `json:"date,omitempty"`
    30  		Email string     `json:"email,omitempty"`
    31  		Name  string     `json:"name,omitempty"`
    32  	} `json:"author,omitempty"`
    33  	CommentCount int `json:"comment_count,omitempty"`
    34  	Committer    struct {
    35  		Date  *time.Time `json:"date,omitempty"`
    36  		Email string     `json:"email,omitempty"`
    37  		Name  string     `json:"name,omitempty"`
    38  	} `json:"committer,omitempty"`
    39  	Message string `json:"message,omitempty"`
    40  	Tree    struct {
    41  		Sha string `json:"sha,omitempty"`
    42  		URL string `json:"url,omitempty"`
    43  	} `json:"tree,omitempty"`
    44  	URL string `json:"url,omitempty"`
    45  }
    46  
    47  type Commit struct {
    48  	Label       string        `json:"label,omitempty"`
    49  	Ref         string        `json:"ref,omitempty"`
    50  	User        User          `json:"user,omitempty"`
    51  	Repo        Repository    `json:"repo,omitempty"`
    52  	CommentsURL string        `json:"comments_url,omitempty"`
    53  	Commit      *CommitCommit `json:"commit,omitempty"`
    54  	Files       []CommitFile  `json:"files,omitempty"`
    55  	HtmlURL     string        `json:"html_url,omitempty"`
    56  	Parents     []Commit      `json:"parents,omitempty"`
    57  	Sha         string        `json:"sha,omitempty"`
    58  	Stats       CommitStats   `json:"stats,omitempty"`
    59  	URL         string        `json:"url,omitempty"`
    60  }
    61  
    62  func (c *Client) Commits(repo Repo, number string, options *Options) (commits []Commit, err error) {
    63  	path := fmt.Sprintf("repos/%s/pulls/%s/commits", repo, number)
    64  	err = c.jsonGet(path, options, &commits)
    65  	return
    66  }
    67  
    68  func (c *Client) Commit(repo Repo, ref string, options *Options) (commit Commit, err error) {
    69  	path := fmt.Sprintf("repos/%s/commits/%s", repo, ref)
    70  	err = c.jsonGet(path, options, &commit)
    71  	return
    72  }