func (s *SearchService) Commits(query string, opt *SearchOptions) (*CommitsSearchResult, *Response, error) {
	result := new(CommitsSearchResult)
	resp, err := s.search("commits", query, opt, result)
	return result, resp, err
}
Commits searches commits via various criteria.

GitHub API Docs: https://developer.github.com/v3/search/#search-commits
package github
import (
	"fmt"
	qs "github.com/google/go-querystring/query"
)
type SearchService service
type SearchOptions struct {
	Sort string `url:"sort,omitempty"`
	Order string `url:"order,omitempty"`
	TextMatch bool `url:"-"`
	ListOptions
}
type RepositoriesSearchResult struct {
	Total             *int         `json:"total_count,omitempty"`
	IncompleteResults *bool        `json:"incomplete_results,omitempty"`
	Repositories      []Repository `json:"items,omitempty"`
}
func (s *SearchService) Repositories(query string, opt *SearchOptions) (*RepositoriesSearchResult, *Response, error) {
	result := new(RepositoriesSearchResult)
	resp, err := s.search("repositories", query, opt, result)
	return result, resp, err
}
type CommitsSearchResult struct {
	Total             *int            `json:"total_count,omitempty"`
	IncompleteResults *bool           `json:"incomplete_results,omitempty"`
	Commits           []*CommitResult `json:"items,omitempty"`
}
type CommitResult struct {
	Hash           *string     `json:"hash,omitempty"`
	Message        *string     `json:"message,omitempty"`
	AuthorID       *int        `json:"author_id,omitempty"`
	AuthorName     *string     `json:"author_name,omitempty"`
	AuthorEmail    *string     `json:"author_email,omitempty"`
	AuthorDate     *Timestamp  `json:"author_date,omitempty"`
	CommitterID    *int        `json:"committer_id,omitempty"`
	CommitterName  *string     `json:"committer_name,omitempty"`
	CommitterEmail *string     `json:"committer_email,omitempty"`
	CommitterDate  *Timestamp  `json:"committer_date,omitempty"`
	Repository     *Repository `json:"repository,omitempty"`
}