github

package
v1.0.7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 27, 2015 License: Apache-2.0 Imports: 18 Imported by: 0

Documentation

Overview

Package github provides a client for using the GitHub API.

Construct a new GitHub client, then use the various services on the client to access different parts of the GitHub API. For example:

client := github.NewClient(nil)

// list all organizations for user "willnorris"
orgs, _, err := client.Organizations.List("willnorris", nil)

Set optional parameters for an API method by passing an Options object.

// list recently updated repositories for org "github"
opt := &github.RepositoryListByOrgOptions{Sort: "updated"}
repos, _, err := client.Repositories.ListByOrg("github", opt)

The services of a client divide the API into logical chunks and correspond to the structure of the GitHub API documentation at http://developer.github.com/v3/.

Authentication

The go-github library does not directly handle authentication. Instead, when creating a new client, pass an http.Client that can handle authentication for you. The easiest and recommended way to do this is using the golang.org/x/oauth2 library, but you can always use any other library that provides an http.Client. If you have an OAuth2 access token (for example, a personal API token), you can use it with the oauth2 library using:

import "golang.org/x/oauth2"

// tokenSource is an oauth2.TokenSource which returns a static access token
type tokenSource struct {
	token *oauth2.Token
}

// Token implements the oauth2.TokenSource interface
func (t *tokenSource) Token() (*oauth2.Token, error){
	return t.token, nil
}

func main() {
	ts := &tokenSource{
		&oauth2.Token{AccessToken: "... your access token ..."},
	}

	tc := oauth2.NewClient(oauth2.NoContext, ts)

	client := github.NewClient(tc)

	// list all repositories for the authenticated user
	repos, _, err := client.Repositories.List("", nil)
}

Note that when using an authenticated Client, all calls made by the client will include the specified OAuth token. Therefore, authenticated clients should almost never be shared between different users.

Rate Limiting

GitHub imposes a rate limit on all API clients. Unauthenticated clients are limited to 60 requests per hour, while authenticated clients can make up to 5,000 requests per hour. To receive the higher rate limit when making calls that are not issued on behalf of a user, use the UnauthenticatedRateLimitedTransport.

The Rate field on a client tracks the rate limit information based on the most recent API call. This is updated on every call, but may be out of date if it's been some time since the last API call and other clients have made subsequent requests since then. You can always call RateLimit() directly to get the most up-to-date rate limit data for the client.

Learn more about GitHub rate limiting at http://developer.github.com/v3/#rate-limiting.

Conditional Requests

The GitHub API has good support for conditional requests which will help prevent you from burning through your rate limit, as well as help speed up your application. go-github does not handle conditional requests directly, but is instead designed to work with a caching http.Transport. We recommend using https://github.com/gregjones/httpcache, which can be used in conjuction with https://github.com/sourcegraph/apiproxy to provide additional flexibility and control of caching rules.

Learn more about GitHub conditional requests at https://developer.github.com/v3/#conditional-requests.

Creating and Updating Resources

All structs for GitHub resources use pointer values for all non-repeated fields. This allows distinguishing between unset fields and those set to a zero-value. Helper functions have been provided to easily create these pointers for string, bool, and int values. For example:

// create a new private repository named "foo"
repo := &github.Repository{
	Name:    github.String("foo"),
	Private: github.Bool(true),
}
client.Repositories.Create("", repo)

Users who have worked with protocol buffers should find this pattern familiar.

Pagination

All requests for resource collections (repos, pull requests, issues, etc) support pagination. Pagination options are described in the ListOptions struct and passed to the list methods directly or as an embedded type of a more specific list options struct (for example PullRequestListOptions). Pages information is available via Response struct.

opt := &github.RepositoryListByOrgOptions{
	ListOptions: github.ListOptions{PerPage: 10},
}
// get all pages of results
var allRepos []github.Repository
for {
	repos, resp, err := client.Repositories.ListByOrg("github", opt)
	if err != nil {
		return err
	}
	allRepos = append(allRepos, repos...)
	if resp.NextPage == 0 {
		break
	}
	opt.ListOptions.Page = resp.NextPage
}

Index

Constants

View Source
const (
	// Tarball specifies an archive in gzipped tar format.
	Tarball archiveFormat = "tarball"

	// Zipball specifies an archive in zip format.
	Zipball archiveFormat = "zipball"
)

Variables

This section is empty.

Functions

func Bool

func Bool(v bool) *bool

Bool is a helper routine that allocates a new bool value to store v and returns a pointer to it.

func CheckResponse

func CheckResponse(r *http.Response) error

CheckResponse checks the API response for errors, and returns them if present. A response is considered an error if it has a status code outside the 200 range. API error responses are expected to have either no response body, or a JSON response body that maps to ErrorResponse. Any other response body will be silently ignored.

func Int

func Int(v int) *int

Int is a helper routine that allocates a new int32 value to store v and returns a pointer to it, but unlike Int32 its argument value is an int.

func String

func String(v string) *string

String is a helper routine that allocates a new string value to store v and returns a pointer to it.

func Stringify

func Stringify(message interface{}) string

Stringify attempts to create a reasonable string representation of types in the GitHub library. It does things like resolve pointers to their values and omits struct fields with nil values.

Types

type APIMeta

type APIMeta struct {
	// An Array of IP addresses in CIDR format specifying the addresses
	// that incoming service hooks will originate from on GitHub.com.
	Hooks []string `json:"hooks,omitempty"`

	// An Array of IP addresses in CIDR format specifying the Git servers
	// for GitHub.com.
	Git []string `json:"git,omitempty"`

	// Whether authentication with username and password is supported.
	// (GitHub Enterprise instances using CAS or OAuth for authentication
	// will return false. Features like Basic Authentication with a
	// username and password, sudo mode, and two-factor authentication are
	// not supported on these servers.)
	VerifiablePasswordAuthentication *bool `json:"verifiable_password_authentication,omitempty"`
}

APIMeta represents metadata about the GitHub API.

type ActivityListStarredOptions

type ActivityListStarredOptions struct {
	// How to sort the repository list.  Possible values are: created, updated,
	// pushed, full_name.  Default is "full_name".
	Sort string `url:"sort,omitempty"`

	// Direction in which to sort repositories.  Possible values are: asc, desc.
	// Default is "asc" when sort is "full_name", otherwise default is "desc".
	Direction string `url:"direction,omitempty"`

	ListOptions
}

ActivityListStarredOptions specifies the optional parameters to the ActivityService.ListStarred method.

type ActivityService

type ActivityService struct {
	// contains filtered or unexported fields
}

ActivityService handles communication with the activity related methods of the GitHub API.

GitHub API docs: http://developer.github.com/v3/activity/

func (*ActivityService) DeleteRepositorySubscription

func (s *ActivityService) DeleteRepositorySubscription(owner, repo string) (*Response, error)

DeleteRepositorySubscription deletes the subscription for the specified repository for the authenticated user.

GitHub API Docs: https://developer.github.com/v3/activity/watching/#delete-a-repository-subscription

func (*ActivityService) DeleteThreadSubscription

func (s *ActivityService) DeleteThreadSubscription(id string) (*Response, error)

DeleteThreadSubscription deletes the subscription for the specified thread for the authenticated user.

GitHub API Docs: https://developer.github.com/v3/activity/notifications/#delete-a-thread-subscription

func (*ActivityService) GetRepositorySubscription

func (s *ActivityService) GetRepositorySubscription(owner, repo string) (*Subscription, *Response, error)

GetRepositorySubscription returns the subscription for the specified repository for the authenticated user. If the authenticated user is not watching the repository, a nil Subscription is returned.

GitHub API Docs: https://developer.github.com/v3/activity/watching/#get-a-repository-subscription

func (*ActivityService) GetThread

func (s *ActivityService) GetThread(id string) (*Notification, *Response, error)

GetThread gets the specified notification thread.

GitHub API Docs: https://developer.github.com/v3/activity/notifications/#view-a-single-thread

func (*ActivityService) GetThreadSubscription

func (s *ActivityService) GetThreadSubscription(id string) (*Subscription, *Response, error)

GetThreadSubscription checks to see if the authenticated user is subscribed to a thread.

GitHub API Docs: https://developer.github.com/v3/activity/notifications/#get-a-thread-subscription

func (*ActivityService) IsStarred

func (s *ActivityService) IsStarred(owner, repo string) (bool, *Response, error)

IsStarred checks if a repository is starred by authenticated user.

GitHub API docs: https://developer.github.com/v3/activity/starring/#check-if-you-are-starring-a-repository

func (*ActivityService) ListEvents

func (s *ActivityService) ListEvents(opt *ListOptions) ([]Event, *Response, error)

ListEvents drinks from the firehose of all public events across GitHub.

GitHub API docs: http://developer.github.com/v3/activity/events/#list-public-events

func (*ActivityService) ListEventsForOrganization

func (s *ActivityService) ListEventsForOrganization(org string, opt *ListOptions) ([]Event, *Response, error)

ListEventsForOrganization lists public events for an organization.

GitHub API docs: http://developer.github.com/v3/activity/events/#list-public-events-for-an-organization

func (*ActivityService) ListEventsForRepoNetwork

func (s *ActivityService) ListEventsForRepoNetwork(owner, repo string, opt *ListOptions) ([]Event, *Response, error)

ListEventsForRepoNetwork lists public events for a network of repositories.

GitHub API docs: http://developer.github.com/v3/activity/events/#list-public-events-for-a-network-of-repositories

func (*ActivityService) ListEventsPerformedByUser

func (s *ActivityService) ListEventsPerformedByUser(user string, publicOnly bool, opt *ListOptions) ([]Event, *Response, error)

ListEventsPerformedByUser lists the events performed by a user. If publicOnly is true, only public events will be returned.

GitHub API docs: http://developer.github.com/v3/activity/events/#list-events-performed-by-a-user

func (*ActivityService) ListEventsRecievedByUser

func (s *ActivityService) ListEventsRecievedByUser(user string, publicOnly bool, opt *ListOptions) ([]Event, *Response, error)

ListEventsRecievedByUser lists the events recieved by a user. If publicOnly is true, only public events will be returned.

GitHub API docs: http://developer.github.com/v3/activity/events/#list-events-that-a-user-has-received

func (*ActivityService) ListIssueEventsForRepository

func (s *ActivityService) ListIssueEventsForRepository(owner, repo string, opt *ListOptions) ([]Event, *Response, error)

ListIssueEventsForRepository lists issue events for a repository.

GitHub API docs: http://developer.github.com/v3/activity/events/#list-issue-events-for-a-repository

func (*ActivityService) ListNotifications

func (s *ActivityService) ListNotifications(opt *NotificationListOptions) ([]Notification, *Response, error)

ListNotifications lists all notifications for the authenticated user.

GitHub API Docs: https://developer.github.com/v3/activity/notifications/#list-your-notifications

func (*ActivityService) ListRepositoryEvents

func (s *ActivityService) ListRepositoryEvents(owner, repo string, opt *ListOptions) ([]Event, *Response, error)

ListRepositoryEvents lists events for a repository.

GitHub API docs: http://developer.github.com/v3/activity/events/#list-repository-events

func (*ActivityService) ListRepositoryNotifications

func (s *ActivityService) ListRepositoryNotifications(owner, repo string, opt *NotificationListOptions) ([]Notification, *Response, error)

ListRepositoryNotifications lists all notifications in a given repository for the authenticated user.

GitHub API Docs: https://developer.github.com/v3/activity/notifications/#list-your-notifications-in-a-repository

func (*ActivityService) ListStargazers

func (s *ActivityService) ListStargazers(owner, repo string, opt *ListOptions) ([]User, *Response, error)

ListStargazers lists people who have starred the specified repo.

GitHub API Docs: https://developer.github.com/v3/activity/starring/#list-stargazers

func (*ActivityService) ListStarred

func (s *ActivityService) ListStarred(user string, opt *ActivityListStarredOptions) ([]Repository, *Response, error)

ListStarred lists all the repos starred by a user. Passing the empty string will list the starred repositories for the authenticated user.

GitHub API docs: http://developer.github.com/v3/activity/starring/#list-repositories-being-starred

func (*ActivityService) ListUserEventsForOrganization

func (s *ActivityService) ListUserEventsForOrganization(org, user string, opt *ListOptions) ([]Event, *Response, error)

ListUserEventsForOrganization provides the user’s organization dashboard. You must be authenticated as the user to view this.

GitHub API docs: http://developer.github.com/v3/activity/events/#list-events-for-an-organization

func (*ActivityService) ListWatched

func (s *ActivityService) ListWatched(user string) ([]Repository, *Response, error)

ListWatched lists the repositories the specified user is watching. Passing the empty string will fetch watched repos for the authenticated user.

GitHub API Docs: https://developer.github.com/v3/activity/watching/#list-repositories-being-watched

func (*ActivityService) ListWatchers

func (s *ActivityService) ListWatchers(owner, repo string, opt *ListOptions) ([]User, *Response, error)

ListWatchers lists watchers of a particular repo.

GitHub API Docs: http://developer.github.com/v3/activity/watching/#list-watchers

func (*ActivityService) MarkNotificationsRead

func (s *ActivityService) MarkNotificationsRead(lastRead time.Time) (*Response, error)

MarkNotificationsRead marks all notifications up to lastRead as read.

GitHub API Docs: https://developer.github.com/v3/activity/notifications/#mark-as-read

func (*ActivityService) MarkRepositoryNotificationsRead

func (s *ActivityService) MarkRepositoryNotificationsRead(owner, repo string, lastRead time.Time) (*Response, error)

MarkRepositoryNotificationsRead marks all notifications up to lastRead in the specified repository as read.

GitHub API Docs: https://developer.github.com/v3/activity/notifications/#mark-notifications-as-read-in-a-repository

func (*ActivityService) MarkThreadRead

func (s *ActivityService) MarkThreadRead(id string) (*Response, error)

MarkThreadRead marks the specified thread as read.

GitHub API Docs: https://developer.github.com/v3/activity/notifications/#mark-a-thread-as-read

func (*ActivityService) SetRepositorySubscription

func (s *ActivityService) SetRepositorySubscription(owner, repo string, subscription *Subscription) (*Subscription, *Response, error)

SetRepositorySubscription sets the subscription for the specified repository for the authenticated user.

GitHub API Docs: https://developer.github.com/v3/activity/watching/#set-a-repository-subscription

func (*ActivityService) SetThreadSubscription

func (s *ActivityService) SetThreadSubscription(id string, subscription *Subscription) (*Subscription, *Response, error)

SetThreadSubscription sets the subscription for the specified thread for the authenticated user.

GitHub API Docs: https://developer.github.com/v3/activity/notifications/#set-a-thread-subscription

func (*ActivityService) Star

func (s *ActivityService) Star(owner, repo string) (*Response, error)

Star a repository as the authenticated user.

GitHub API docs: https://developer.github.com/v3/activity/starring/#star-a-repository

func (*ActivityService) Unstar

func (s *ActivityService) Unstar(owner, repo string) (*Response, error)

Unstar a repository as the authenticated user.

GitHub API docs: https://developer.github.com/v3/activity/starring/#unstar-a-repository

type Blob

type Blob struct {
	Content  *string `json:"content,omitempty"`
	Encoding *string `json:"encoding,omitempty"`
	SHA      *string `json:"sha,omitempty"`
	Size     *int    `json:"size,omitempty"`
	URL      *string `json:"url,omitempty"`
}

Blob represents a blob object.

type Branch

type Branch struct {
	Name   *string `json:"name,omitempty"`
	Commit *Commit `json:"commit,omitempty"`
}

Branch represents a repository branch

type Client

type Client struct {

	// Base URL for API requests.  Defaults to the public GitHub API, but can be
	// set to a domain endpoint to use with GitHub Enterprise.  BaseURL should
	// always be specified with a trailing slash.
	BaseURL *url.URL

	// Base URL for uploading files.
	UploadURL *url.URL

	// User agent used when communicating with the GitHub API.
	UserAgent string

	// Rate specifies the current rate limit for the client as determined by the
	// most recent API call.  If the client is used in a multi-user application,
	// this rate may not always be up-to-date.  Call RateLimit() to check the
	// current rate.
	Rate Rate

	// Services used for talking to different parts of the GitHub API.
	Activity      *ActivityService
	Gists         *GistsService
	Git           *GitService
	Gitignores    *GitignoresService
	Issues        *IssuesService
	Organizations *OrganizationsService
	PullRequests  *PullRequestsService
	Repositories  *RepositoriesService
	Search        *SearchService
	Users         *UsersService
	Licenses      *LicensesService
	// contains filtered or unexported fields
}

A Client manages communication with the GitHub API.

func NewClient

func NewClient(httpClient *http.Client) *Client

NewClient returns a new GitHub API client. If a nil httpClient is provided, http.DefaultClient will be used. To use API methods which require authentication, provide an http.Client that will perform the authentication for you (such as that provided by the golang.org/x/oauth2 library).

func (*Client) APIMeta

func (c *Client) APIMeta() (*APIMeta, *Response, error)

APIMeta returns information about GitHub.com, the service. Or, if you access this endpoint on your organization’s GitHub Enterprise installation, this endpoint provides information about that installation.

GitHub API docs: https://developer.github.com/v3/meta/

func (*Client) Do

func (c *Client) Do(req *http.Request, v interface{}) (*Response, error)

Do sends an API request and returns the API response. The API response is JSON decoded and stored in the value pointed to by v, or returned as an error if an API error has occurred. If v implements the io.Writer interface, the raw response body will be written to v, without attempting to first decode it.

func (*Client) ListEmojis

func (c *Client) ListEmojis() (map[string]string, *Response, error)

ListEmojis returns the emojis available to use on GitHub.

GitHub API docs: https://developer.github.com/v3/emojis/

func (*Client) ListServiceHooks

func (c *Client) ListServiceHooks() ([]ServiceHook, *Response, error)

ListServiceHooks lists all of the available service hooks.

GitHub API docs: https://developer.github.com/webhooks/#services

func (*Client) Markdown

func (c *Client) Markdown(text string, opt *MarkdownOptions) (string, *Response, error)

Markdown renders an arbitrary Markdown document.

GitHub API docs: https://developer.github.com/v3/markdown/

func (*Client) NewRequest

func (c *Client) NewRequest(method, urlStr string, body interface{}) (*http.Request, error)

NewRequest creates an API request. A relative URL can be provided in urlStr, in which case it is resolved relative to the BaseURL of the Client. Relative URLs should always be specified without a preceding slash. If specified, the value pointed to by body is JSON encoded and included as the request body.

func (*Client) NewUploadRequest

func (c *Client) NewUploadRequest(urlStr string, reader io.Reader, size int64, mediaType string) (*http.Request, error)

NewUploadRequest creates an upload request. A relative URL can be provided in urlStr, in which case it is resolved relative to the UploadURL of the Client. Relative URLs should always be specified without a preceding slash.

func (*Client) Octocat

func (c *Client) Octocat(message string) (string, *Response, error)

Octocat returns an ASCII art octocat with the specified message in a speech bubble. If message is empty, a random zen phrase is used.

func (*Client) RateLimit

func (c *Client) RateLimit() (*Rate, *Response, error)

RateLimit is deprecated. Use RateLimits instead.

func (*Client) RateLimits

func (c *Client) RateLimits() (*RateLimits, *Response, error)

RateLimits returns the rate limits for the current client.

func (*Client) Zen

func (c *Client) Zen() (string, *Response, error)

Zen returns a random line from The Zen of GitHub.

see also: http://warpspire.com/posts/taste/

type CodeResult

type CodeResult struct {
	Name        *string     `json:"name,omitempty"`
	Path        *string     `json:"path,omitempty"`
	SHA         *string     `json:"sha,omitempty"`
	HTMLURL     *string     `json:"html_url,omitempty"`
	Repository  *Repository `json:"repository,omitempty"`
	TextMatches []TextMatch `json:"text_matches,omitempty"`
}

CodeResult represents a single search result.

func (CodeResult) String

func (c CodeResult) String() string

type CodeSearchResult

type CodeSearchResult struct {
	Total       *int         `json:"total_count,omitempty"`
	CodeResults []CodeResult `json:"items,omitempty"`
}

CodeSearchResult represents the result of an code search.

type CombinedStatus

type CombinedStatus struct {
	// State is the combined state of the repository.  Possible values are:
	// failture, pending, or success.
	State *string `json:"state,omitempty"`

	Name       *string      `json:"name,omitempty"`
	SHA        *string      `json:"sha,omitempty"`
	TotalCount *int         `json:"total_count,omitempty"`
	Statuses   []RepoStatus `json:"statuses,omitempty"`

	CommitURL     *string `json:"commit_url,omitempty"`
	RepositoryURL *string `json:"repository_url,omitempty"`
}

CombinedStatus represents the combined status of a repository at a particular reference.

func (CombinedStatus) String

func (s CombinedStatus) String() string

type Commit

type Commit struct {
	SHA       *string       `json:"sha,omitempty"`
	Author    *CommitAuthor `json:"author,omitempty"`
	Committer *CommitAuthor `json:"committer,omitempty"`
	Message   *string       `json:"message,omitempty"`
	Tree      *Tree         `json:"tree,omitempty"`
	Parents   []Commit      `json:"parents,omitempty"`
	Stats     *CommitStats  `json:"stats,omitempty"`
	URL       *string       `json:"url,omitempty"`

	// CommentCount is the number of GitHub comments on the commit.  This
	// is only populated for requests that fetch GitHub data like
	// Pulls.ListCommits, Repositories.ListCommits, etc.
	CommentCount *int `json:"comment_count,omitempty"`
}

Commit represents a GitHub commit.

func (Commit) String

func (c Commit) String() string

type CommitAuthor

type CommitAuthor struct {
	Date  *time.Time `json:"date,omitempty"`
	Name  *string    `json:"name,omitempty"`
	Email *string    `json:"email,omitempty"`
}

CommitAuthor represents the author or committer of a commit. The commit author may not correspond to a GitHub User.

func (CommitAuthor) String

func (c CommitAuthor) String() string

type CommitFile

type CommitFile struct {
	SHA       *string `json:"sha,omitempty"`
	Filename  *string `json:"filename,omitempty"`
	Additions *int    `json:"additions,omitempty"`
	Deletions *int    `json:"deletions,omitempty"`
	Changes   *int    `json:"changes,omitempty"`
	Status    *string `json:"status,omitempty"`
	Patch     *string `json:"patch,omitempty"`
}

CommitFile represents a file modified in a commit.

func (CommitFile) String

func (c CommitFile) String() string

type CommitStats

type CommitStats struct {
	Additions *int `json:"additions,omitempty"`
	Deletions *int `json:"deletions,omitempty"`
	Total     *int `json:"total,omitempty"`
}

CommitStats represents the number of additions / deletions from a file in a given RepositoryCommit.

func (CommitStats) String

func (c CommitStats) String() string

type CommitsComparison

type CommitsComparison struct {
	BaseCommit      *RepositoryCommit `json:"base_commit,omitempty"`
	MergeBaseCommit *RepositoryCommit `json:"merge_base_commit,omitempty"`

	// Head can be 'behind' or 'ahead'
	Status       *string `json:"status,omitempty"`
	AheadBy      *int    `json:"ahead_by,omitempty"`
	BehindBy     *int    `json:"behind_by,omitempty"`
	TotalCommits *int    `json:"total_commits,omitempty"`

	Commits []RepositoryCommit `json:"commits,omitempty"`

	Files []CommitFile `json:"files,omitempty"`
}

CommitsComparison is the result of comparing two commits. See CompareCommits() for details.

func (CommitsComparison) String

func (c CommitsComparison) String() string

type CommitsListOptions

type CommitsListOptions struct {
	// SHA or branch to start listing Commits from.
	SHA string `url:"sha,omitempty"`

	// Path that should be touched by the returned Commits.
	Path string `url:"path,omitempty"`

	// Author of by which to filter Commits.
	Author string `url:"author,omitempty"`

	// Since when should Commits be included in the response.
	Since time.Time `url:"since,omitempty"`

	// Until when should Commits be included in the response.
	Until time.Time `url:"until,omitempty"`

	ListOptions
}

CommitsListOptions specifies the optional parameters to the RepositoriesService.ListCommits method.

type Contributor

type Contributor struct {
	Login             *string `json:"login,omitempty"`
	ID                *int    `json:"id,omitempty"`
	AvatarURL         *string `json:"avatar_url,omitempty"`
	GravatarID        *string `json:"gravatar_id,omitempty"`
	URL               *string `json:"url,omitempty"`
	HTMLURL           *string `json:"html_url,omitempty"`
	FollowersURL      *string `json:"followers_url,omitempty"`
	FollowingURL      *string `json:"following_url,omitempty"`
	GistsURL          *string `json:"gists_url,omitempty"`
	StarredURL        *string `json:"starred_url,omitempty"`
	SubscriptionsURL  *string `json:"subscriptions_url,omitempty"`
	OrganizationsURL  *string `json:"organizations_url,omitempty"`
	ReposURL          *string `json:"repos_url,omitempty"`
	EventsURL         *string `json:"events_url,omitempty"`
	ReceivedEventsURL *string `json:"received_events_url,omitempty"`
	Type              *string `json:"type,omitempty"`
	SiteAdmin         *bool   `json:"site_admin"`
	Contributions     *int    `json:"contributions,omitempty"`
}

Contributor represents a repository contributor

type ContributorStats

type ContributorStats struct {
	Author *Contributor  `json:"author,omitempty"`
	Total  *int          `json:"total,omitempty"`
	Weeks  []WeeklyStats `json:"weeks,omitempty"`
}

ContributorStats represents a contributor to a repository and their weekly contributions to a given repo.

func (ContributorStats) String

func (c ContributorStats) String() string

type Deployment

type Deployment struct {
	URL         *string         `json:"url,omitempty"`
	ID          *int            `json:"id,omitempty"`
	SHA         *string         `json:"sha,omitempty"`
	Ref         *string         `json:"ref,omitempty"`
	Task        *string         `json:"task,omitempty"`
	Payload     json.RawMessage `json:"payload,omitempty"`
	Environment *string         `json:"environment,omitempty"`
	Description *string         `json:"description,omitempty"`
	Creator     *User           `json:"creator,omitempty"`
	CreatedAt   *Timestamp      `json:"created_at,omitempty"`
	UpdatedAt   *Timestamp      `json:"pushed_at,omitempty"`
}

Deployment represents a deployment in a repo

type DeploymentRequest

type DeploymentRequest struct {
	Ref              *string   `json:"ref,omitempty"`
	Task             *string   `json:"task,omitempty"`
	AutoMerge        *bool     `json:"auto_merge,omitempty"`
	RequiredContexts *[]string `json:"required_contexts,omitempty"`
	Payload          *string   `json:"payload,omitempty"`
	Environment      *string   `json:"environment,omitempty"`
	Description      *string   `json:"description,omitempty"`
}

DeploymentRequest represents a deployment request

type DeploymentStatus

type DeploymentStatus struct {
	ID          *int       `json:"id,omitempty"`
	State       *string    `json:"state,omitempty"`
	Creator     *User      `json:"creator,omitempty"`
	Description *string    `json:"description,omitempty"`
	TargetURL   *string    `json:"target_url,omitempty"`
	CreatedAt   *Timestamp `json:"created_at,omitempty"`
	UpdatedAt   *Timestamp `json:"pushed_at,omitempty"`
}

DeploymentStatus represents the status of a particular deployment.

type DeploymentStatusRequest

type DeploymentStatusRequest struct {
	State       *string `json:"state,omitempty"`
	TargetURL   *string `json:"target_url,omitempty"`
	Description *string `json:"description,omitempty"`
}

DeploymentStatusRequest represents a deployment request

type DeploymentsListOptions

type DeploymentsListOptions struct {
	// SHA of the Deployment.
	SHA string `url:"sha,omitempty"`

	// List deployments for a given ref.
	Ref string `url:"ref,omitempty"`

	// List deployments for a given task.
	Task string `url:"task,omitempty"`

	// List deployments for a given environment.
	Environment string `url:"environment,omitempty"`

	ListOptions
}

DeploymentsListOptions specifies the optional parameters to the RepositoriesService.ListDeployments method.

type Error

type Error struct {
	Resource string `json:"resource"` // resource on which the error occurred
	Field    string `json:"field"`    // field on which the error occurred
	Code     string `json:"code"`     // validation error code
}

An Error reports more details on an individual error in an ErrorResponse. These are the possible validation error codes:

missing:
    resource does not exist
missing_field:
    a required field on a resource has not been set
invalid:
    the formatting of a field is invalid
already_exists:
    another resource has the same valid as this field

GitHub API docs: http://developer.github.com/v3/#client-errors

func (*Error) Error

func (e *Error) Error() string

type ErrorResponse

type ErrorResponse struct {
	Response *http.Response // HTTP response that caused this error
	Message  string         `json:"message"` // error message
	Errors   []Error        `json:"errors"`  // more detail on individual errors
}

An ErrorResponse reports one or more errors caused by an API request.

GitHub API docs: http://developer.github.com/v3/#client-errors

func (*ErrorResponse) Error

func (r *ErrorResponse) Error() string

type Event

type Event struct {
	Type       *string          `json:"type,omitempty"`
	Public     *bool            `json:"public"`
	RawPayload *json.RawMessage `json:"payload,omitempty"`
	Repo       *Repository      `json:"repo,omitempty"`
	Actor      *User            `json:"actor,omitempty"`
	Org        *Organization    `json:"org,omitempty"`
	CreatedAt  *time.Time       `json:"created_at,omitempty"`
	ID         *string          `json:"id,omitempty"`
}

Event represents a GitHub event.

func (*Event) Payload

func (e *Event) Payload() (payload interface{})

Payload returns the parsed event payload. For recognized event types (PushEvent), a value of the corresponding struct type will be returned.

func (Event) String

func (e Event) String() string

type Gist

type Gist struct {
	ID          *string                   `json:"id,omitempty"`
	Description *string                   `json:"description,omitempty"`
	Public      *bool                     `json:"public,omitempty"`
	Owner       *User                     `json:"owner,omitempty"`
	Files       map[GistFilename]GistFile `json:"files,omitempty"`
	Comments    *int                      `json:"comments,omitempty"`
	HTMLURL     *string                   `json:"html_url,omitempty"`
	GitPullURL  *string                   `json:"git_pull_url,omitempty"`
	GitPushURL  *string                   `json:"git_push_url,omitempty"`
	CreatedAt   *time.Time                `json:"created_at,omitempty"`
	UpdatedAt   *time.Time                `json:"updated_at,omitempty"`
}

Gist represents a GitHub's gist.

func (Gist) String

func (g Gist) String() string

type GistComment

type GistComment struct {
	ID        *int       `json:"id,omitempty"`
	URL       *string    `json:"url,omitempty"`
	Body      *string    `json:"body,omitempty"`
	User      *User      `json:"user,omitempty"`
	CreatedAt *time.Time `json:"created_at,omitempty"`
}

GistComment represents a Gist comment.

func (GistComment) String

func (g GistComment) String() string

type GistFile

type GistFile struct {
	Size     *int    `json:"size,omitempty"`
	Filename *string `json:"filename,omitempty"`
	RawURL   *string `json:"raw_url,omitempty"`
	Content  *string `json:"content,omitempty"`
}

GistFile represents a file on a gist.

func (GistFile) String

func (g GistFile) String() string

type GistFilename

type GistFilename string

GistFilename represents filename on a gist.

type GistListOptions

type GistListOptions struct {
	// Since filters Gists by time.
	Since time.Time `url:"since,omitempty"`

	ListOptions
}

GistListOptions specifies the optional parameters to the GistsService.List, GistsService.ListAll, and GistsService.ListStarred methods.

type GistsService

type GistsService struct {
	// contains filtered or unexported fields
}

GistsService handles communication with the Gist related methods of the GitHub API.

GitHub API docs: http://developer.github.com/v3/gists/

func (*GistsService) Create

func (s *GistsService) Create(gist *Gist) (*Gist, *Response, error)

Create a gist for authenticated user.

GitHub API docs: http://developer.github.com/v3/gists/#create-a-gist

func (*GistsService) CreateComment

func (s *GistsService) CreateComment(gistID string, comment *GistComment) (*GistComment, *Response, error)

CreateComment creates a comment for a gist.

GitHub API docs: http://developer.github.com/v3/gists/comments/#create-a-comment

func (*GistsService) Delete

func (s *GistsService) Delete(id string) (*Response, error)

Delete a gist.

GitHub API docs: http://developer.github.com/v3/gists/#delete-a-gist

func (*GistsService) DeleteComment

func (s *GistsService) DeleteComment(gistID string, commentID int) (*Response, error)

DeleteComment deletes a gist comment.

GitHub API docs: http://developer.github.com/v3/gists/comments/#delete-a-comment

func (*GistsService) Edit

func (s *GistsService) Edit(id string, gist *Gist) (*Gist, *Response, error)

Edit a gist.

GitHub API docs: http://developer.github.com/v3/gists/#edit-a-gist

func (*GistsService) EditComment

func (s *GistsService) EditComment(gistID string, commentID int, comment *GistComment) (*GistComment, *Response, error)

EditComment edits an existing gist comment.

GitHub API docs: http://developer.github.com/v3/gists/comments/#edit-a-comment

func (*GistsService) Fork

func (s *GistsService) Fork(id string) (*Gist, *Response, error)

Fork a gist.

GitHub API docs: http://developer.github.com/v3/gists/#fork-a-gist

func (*GistsService) Get

func (s *GistsService) Get(id string) (*Gist, *Response, error)

Get a single gist.

GitHub API docs: http://developer.github.com/v3/gists/#get-a-single-gist

func (*GistsService) GetComment

func (s *GistsService) GetComment(gistID string, commentID int) (*GistComment, *Response, error)

GetComment retrieves a single comment from a gist.

GitHub API docs: http://developer.github.com/v3/gists/comments/#get-a-single-comment

func (*GistsService) GetRevision

func (s *GistsService) GetRevision(id, sha string) (*Gist, *Response, error)

Get a specific revision of a gist.

GitHub API docs: https://developer.github.com/v3/gists/#get-a-specific-revision-of-a-gist

func (*GistsService) IsStarred

func (s *GistsService) IsStarred(id string) (bool, *Response, error)

IsStarred checks if a gist is starred by authenticated user.

GitHub API docs: http://developer.github.com/v3/gists/#check-if-a-gist-is-starred

func (*GistsService) List

func (s *GistsService) List(user string, opt *GistListOptions) ([]Gist, *Response, error)

List gists for a user. Passing the empty string will list all public gists if called anonymously. However, if the call is authenticated, it will returns all gists for the authenticated user.

GitHub API docs: http://developer.github.com/v3/gists/#list-gists

func (*GistsService) ListAll

func (s *GistsService) ListAll(opt *GistListOptions) ([]Gist, *Response, error)

ListAll lists all public gists.

GitHub API docs: http://developer.github.com/v3/gists/#list-gists

func (*GistsService) ListComments

func (s *GistsService) ListComments(gistID string, opt *ListOptions) ([]GistComment, *Response, error)

ListComments lists all comments for a gist.

GitHub API docs: http://developer.github.com/v3/gists/comments/#list-comments-on-a-gist

func (*GistsService) ListStarred

func (s *GistsService) ListStarred(opt *GistListOptions) ([]Gist, *Response, error)

ListStarred lists starred gists of authenticated user.

GitHub API docs: http://developer.github.com/v3/gists/#list-gists

func (*GistsService) Star

func (s *GistsService) Star(id string) (*Response, error)

Star a gist on behalf of authenticated user.

GitHub API docs: http://developer.github.com/v3/gists/#star-a-gist

func (*GistsService) Unstar

func (s *GistsService) Unstar(id string) (*Response, error)

Unstar a gist on a behalf of authenticated user.

Github API docs: http://developer.github.com/v3/gists/#unstar-a-gist

type GitObject

type GitObject struct {
	Type *string `json:"type"`
	SHA  *string `json:"sha"`
	URL  *string `json:"url"`
}

GitObject represents a Git object.

func (GitObject) String

func (o GitObject) String() string

type GitService

type GitService struct {
	// contains filtered or unexported fields
}

GitService handles communication with the git data related methods of the GitHub API.

GitHub API docs: http://developer.github.com/v3/git/

func (*GitService) CreateBlob

func (s *GitService) CreateBlob(owner string, repo string, blob *Blob) (*Blob, *Response, error)

CreateBlob creates a blob object.

GitHub API docs: http://developer.github.com/v3/git/blobs/#create-a-blob

func (*GitService) CreateCommit

func (s *GitService) CreateCommit(owner string, repo string, commit *Commit) (*Commit, *Response, error)

CreateCommit creates a new commit in a repository.

The commit.Committer is optional and will be filled with the commit.Author data if omitted. If the commit.Author is omitted, it will be filled in with the authenticated user’s information and the current date.

GitHub API docs: http://developer.github.com/v3/git/commits/#create-a-commit

func (*GitService) CreateRef

func (s *GitService) CreateRef(owner string, repo string, ref *Reference) (*Reference, *Response, error)

CreateRef creates a new ref in a repository.

GitHub API docs: http://developer.github.com/v3/git/refs/#create-a-reference

func (*GitService) CreateTag

func (s *GitService) CreateTag(owner string, repo string, tag *Tag) (*Tag, *Response, error)

CreateTag creates a tag object.

GitHub API docs: http://developer.github.com/v3/git/tags/#create-a-tag-object

func (*GitService) CreateTree

func (s *GitService) CreateTree(owner string, repo string, baseTree string, entries []TreeEntry) (*Tree, *Response, error)

CreateTree creates a new tree in a repository. If both a tree and a nested path modifying that tree are specified, it will overwrite the contents of that tree with the new path contents and write a new tree out.

GitHub API docs: http://developer.github.com/v3/git/trees/#create-a-tree

func (*GitService) DeleteRef

func (s *GitService) DeleteRef(owner string, repo string, ref string) (*Response, error)

DeleteRef deletes a ref from a repository.

GitHub API docs: http://developer.github.com/v3/git/refs/#delete-a-reference

func (*GitService) GetBlob

func (s *GitService) GetBlob(owner string, repo string, sha string) (*Blob, *Response, error)

GetBlob fetchs a blob from a repo given a SHA.

GitHub API docs: http://developer.github.com/v3/git/blobs/#get-a-blob

func (*GitService) GetCommit

func (s *GitService) GetCommit(owner string, repo string, sha string) (*Commit, *Response, error)

GetCommit fetchs the Commit object for a given SHA.

GitHub API docs: http://developer.github.com/v3/git/commits/#get-a-commit

func (*GitService) GetRef

func (s *GitService) GetRef(owner string, repo string, ref string) (*Reference, *Response, error)

GetRef fetches the Reference object for a given Git ref.

GitHub API docs: http://developer.github.com/v3/git/refs/#get-a-reference

func (*GitService) GetTag

func (s *GitService) GetTag(owner string, repo string, sha string) (*Tag, *Response, error)

GetTag fetchs a tag from a repo given a SHA.

GitHub API docs: http://developer.github.com/v3/git/tags/#get-a-tag

func (*GitService) GetTree

func (s *GitService) GetTree(owner string, repo string, sha string, recursive bool) (*Tree, *Response, error)

GetTree fetches the Tree object for a given sha hash from a repository.

GitHub API docs: http://developer.github.com/v3/git/trees/#get-a-tree

func (*GitService) ListRefs

func (s *GitService) ListRefs(owner, repo string, opt *ReferenceListOptions) ([]Reference, *Response, error)

ListRefs lists all refs in a repository.

GitHub API docs: http://developer.github.com/v3/git/refs/#get-all-references

func (*GitService) UpdateRef

func (s *GitService) UpdateRef(owner string, repo string, ref *Reference, force bool) (*Reference, *Response, error)

UpdateRef updates an existing ref in a repository.

GitHub API docs: http://developer.github.com/v3/git/refs/#update-a-reference

type Gitignore

type Gitignore struct {
	Name   *string `json:"name,omitempty"`
	Source *string `json:"source,omitempty"`
}

Gitignore represents a .gitignore file as returned by the GitHub API.

func (Gitignore) String

func (g Gitignore) String() string

type GitignoresService

type GitignoresService struct {
	// contains filtered or unexported fields
}

GitignoresService provides access to the gitignore related functions in the GitHub API.

GitHub API docs: http://developer.github.com/v3/gitignore/

func (GitignoresService) Get

func (s GitignoresService) Get(name string) (*Gitignore, *Response, error)

Get a Gitignore by name.

http://developer.github.com/v3/gitignore/#get-a-single-template

func (GitignoresService) List

func (s GitignoresService) List() ([]string, *Response, error)

List all available Gitignore templates.

http://developer.github.com/v3/gitignore/#listing-available-templates

type Hook

type Hook struct {
	CreatedAt *time.Time             `json:"created_at,omitempty"`
	UpdatedAt *time.Time             `json:"updated_at,omitempty"`
	Name      *string                `json:"name,omitempty"`
	Events    []string               `json:"events,omitempty"`
	Active    *bool                  `json:"active,omitempty"`
	Config    map[string]interface{} `json:"config,omitempty"`
	ID        *int                   `json:"id,omitempty"`
}

Hook represents a GitHub (web and service) hook for a repository.

func (Hook) String

func (h Hook) String() string

type Issue

type Issue struct {
	Number           *int              `json:"number,omitempty"`
	State            *string           `json:"state,omitempty"`
	Title            *string           `json:"title,omitempty"`
	Body             *string           `json:"body,omitempty"`
	User             *User             `json:"user,omitempty"`
	Labels           []Label           `json:"labels,omitempty"`
	Assignee         *User             `json:"assignee,omitempty"`
	Comments         *int              `json:"comments,omitempty"`
	ClosedAt         *time.Time        `json:"closed_at,omitempty"`
	CreatedAt        *time.Time        `json:"created_at,omitempty"`
	UpdatedAt        *time.Time        `json:"updated_at,omitempty"`
	URL              *string           `json:"url,omitempty"`
	HTMLURL          *string           `json:"html_url,omitempty"`
	Milestone        *Milestone        `json:"milestone,omitempty"`
	PullRequestLinks *PullRequestLinks `json:"pull_request,omitempty"`

	// TextMatches is only populated from search results that request text matches
	// See: search.go and https://developer.github.com/v3/search/#text-match-metadata
	TextMatches []TextMatch `json:"text_matches,omitempty"`
}

Issue represents a GitHub issue on a repository.

func (Issue) String

func (i Issue) String() string

type IssueActivityEvent

type IssueActivityEvent struct {
	Action *string     `json:"action,omitempty"`
	Issue  *Issue      `json:"issue,omitempty"`
	Repo   *Repository `json:"repository,omitempty"`
	Sender *User       `json:"sender,omitempty"`
}

IssueActivityEvent represents the payload delivered by Issue webhook

type IssueComment

type IssueComment struct {
	ID        *int       `json:"id,omitempty"`
	Body      *string    `json:"body,omitempty"`
	User      *User      `json:"user,omitempty"`
	CreatedAt *time.Time `json:"created_at,omitempty"`
	UpdatedAt *time.Time `json:"updated_at,omitempty"`
	URL       *string    `json:"url,omitempty"`
	HTMLURL   *string    `json:"html_url,omitempty"`
	IssueURL  *string    `json:"issue_url,omitempty"`
}

IssueComment represents a comment left on an issue.

func (IssueComment) String

func (i IssueComment) String() string

type IssueCommentEvent

type IssueCommentEvent struct {
	Action  *string       `json:"action,omitempty"`
	Issue   *Issue        `json:"issue,omitempty"`
	Comment *IssueComment `json:"comment,omitempty"`
	Repo    *Repository   `json:"repository,omitempty"`
	Sender  *User         `json:"sender,omitempty"`
}

IssueCommentEvent represents the payload delivered by IssueComment webhook

This webhook also gets fired for comments on pull requests

type IssueEvent

type IssueEvent struct {
	ID  *int    `json:"id,omitempty"`
	URL *string `json:"url,omitempty"`

	// The User that generated this event.
	Actor *User `json:"actor,omitempty"`

	// Event identifies the actual type of Event that occurred.  Possible
	// values are:
	//
	//     closed
	//       The issue was closed by the actor. When the commit_id is
	//       present, it identifies the commit that closed the issue using
	//       “closes / fixes #NN” syntax.
	//
	//     reopened
	//       The issue was reopened by the actor.
	//
	//     subscribed
	//       The actor subscribed to receive notifications for an issue.
	//
	//     merged
	//       The issue was merged by the actor. The commit_id attribute is the SHA1 of the HEAD commit that was merged.
	//
	//     referenced
	//       The issue was referenced from a commit message. The commit_id attribute is the commit SHA1 of where that happened.
	//
	//     mentioned
	//       The actor was @mentioned in an issue body.
	//
	//     assigned
	//       The issue was assigned to the actor.
	//
	//     head_ref_deleted
	//       The pull request’s branch was deleted.
	//
	//     head_ref_restored
	//       The pull request’s branch was restored.
	Event *string `json:"event,omitempty"`

	// The SHA of the commit that referenced this commit, if applicable.
	CommitID *string `json:"commit_id,omitempty"`

	CreatedAt *time.Time `json:"created_at,omitempty"`
	Issue     *Issue     `json:"issue,omitempty"`
}

IssueEvent represents an event that occurred around an Issue or Pull Request.

type IssueListByRepoOptions

type IssueListByRepoOptions struct {
	// Milestone limits issues for the specified milestone.  Possible values are
	// a milestone number, "none" for issues with no milestone, "*" for issues
	// with any milestone.
	Milestone string `url:"milestone,omitempty"`

	// State filters issues based on their state.  Possible values are: open,
	// closed.  Default is "open".
	State string `url:"state,omitempty"`

	// Assignee filters issues based on their assignee.  Possible values are a
	// user name, "none" for issues that are not assigned, "*" for issues with
	// any assigned user.
	Assignee string `url:"assignee,omitempty"`

	// Assignee filters issues based on their creator.
	Creator string `url:"creator,omitempty"`

	// Assignee filters issues to those mentioned a specific user.
	Mentioned string `url:"mentioned,omitempty"`

	// Labels filters issues based on their label.
	Labels []string `url:"labels,omitempty,comma"`

	// Sort specifies how to sort issues.  Possible values are: created, updated,
	// and comments.  Default value is "assigned".
	Sort string `url:"sort,omitempty"`

	// Direction in which to sort issues.  Possible values are: asc, desc.
	// Default is "asc".
	Direction string `url:"direction,omitempty"`

	// Since filters issues by time.
	Since time.Time `url:"since,omitempty"`

	ListOptions
}

IssueListByRepoOptions specifies the optional parameters to the IssuesService.ListByRepo method.

type IssueListCommentsOptions

type IssueListCommentsOptions struct {
	// Sort specifies how to sort comments.  Possible values are: created, updated.
	Sort string `url:"sort,omitempty"`

	// Direction in which to sort comments.  Possible values are: asc, desc.
	Direction string `url:"direction,omitempty"`

	// Since filters comments by time.
	Since time.Time `url:"since,omitempty"`

	ListOptions
}

IssueListCommentsOptions specifies the optional parameters to the IssuesService.ListComments method.

type IssueListOptions

type IssueListOptions struct {
	// Filter specifies which issues to list.  Possible values are: assigned,
	// created, mentioned, subscribed, all.  Default is "assigned".
	Filter string `url:"filter,omitempty"`

	// State filters issues based on their state.  Possible values are: open,
	// closed.  Default is "open".
	State string `url:"state,omitempty"`

	// Labels filters issues based on their label.
	Labels []string `url:"labels,comma,omitempty"`

	// Sort specifies how to sort issues.  Possible values are: created, updated,
	// and comments.  Default value is "assigned".
	Sort string `url:"sort,omitempty"`

	// Direction in which to sort issues.  Possible values are: asc, desc.
	// Default is "asc".
	Direction string `url:"direction,omitempty"`

	// Since filters issues by time.
	Since time.Time `url:"since,omitempty"`

	ListOptions
}

IssueListOptions specifies the optional parameters to the IssuesService.List and IssuesService.ListByOrg methods.

type IssueRequest

type IssueRequest struct {
	Title     *string   `json:"title,omitempty"`
	Body      *string   `json:"body,omitempty"`
	Labels    *[]string `json:"labels,omitempty"`
	Assignee  *string   `json:"assignee,omitempty"`
	State     *string   `json:"state,omitempty"`
	Milestone *int      `json:"milestone,omitempty"`
}

IssueRequest represents a request to create/edit an issue. It is separate from Issue above because otherwise Labels and Assignee fail to serialize to the correct JSON.

type IssuesSearchResult

type IssuesSearchResult struct {
	Total  *int    `json:"total_count,omitempty"`
	Issues []Issue `json:"items,omitempty"`
}

IssuesSearchResult represents the result of an issues search.

type IssuesService

type IssuesService struct {
	// contains filtered or unexported fields
}

IssuesService handles communication with the issue related methods of the GitHub API.

GitHub API docs: http://developer.github.com/v3/issues/

func (*IssuesService) AddLabelsToIssue

func (s *IssuesService) AddLabelsToIssue(owner string, repo string, number int, labels []string) ([]Label, *Response, error)

AddLabelsToIssue adds labels to an issue.

GitHub API docs: http://developer.github.com/v3/issues/labels/#list-all-labels-for-this-repository

func (*IssuesService) Create

func (s *IssuesService) Create(owner string, repo string, issue *IssueRequest) (*Issue, *Response, error)

Create a new issue on the specified repository.

GitHub API docs: http://developer.github.com/v3/issues/#create-an-issue

func (*IssuesService) CreateComment

func (s *IssuesService) CreateComment(owner string, repo string, number int, comment *IssueComment) (*IssueComment, *Response, error)

CreateComment creates a new comment on the specified issue.

GitHub API docs: http://developer.github.com/v3/issues/comments/#create-a-comment

func (*IssuesService) CreateLabel

func (s *IssuesService) CreateLabel(owner string, repo string, label *Label) (*Label, *Response, error)

CreateLabel creates a new label on the specified repository.

GitHub API docs: http://developer.github.com/v3/issues/labels/#create-a-label

func (*IssuesService) CreateMilestone

func (s *IssuesService) CreateMilestone(owner string, repo string, milestone *Milestone) (*Milestone, *Response, error)

CreateMilestone creates a new milestone on the specified repository.

GitHub API docs: https://developer.github.com/v3/issues/milestones/#create-a-milestone

func (*IssuesService) DeleteComment

func (s *IssuesService) DeleteComment(owner string, repo string, id int) (*Response, error)

DeleteComment deletes an issue comment.

GitHub API docs: http://developer.github.com/v3/issues/comments/#delete-a-comment

func (*IssuesService) DeleteLabel

func (s *IssuesService) DeleteLabel(owner string, repo string, name string) (*Response, error)

DeleteLabel deletes a label.

GitHub API docs: http://developer.github.com/v3/issues/labels/#delete-a-label

func (*IssuesService) DeleteMilestone

func (s *IssuesService) DeleteMilestone(owner string, repo string, number int) (*Response, error)

DeleteMilestone deletes a milestone.

GitHub API docs: https://developer.github.com/v3/issues/milestones/#delete-a-milestone

func (*IssuesService) Edit

func (s *IssuesService) Edit(owner string, repo string, number int, issue *IssueRequest) (*Issue, *Response, error)

Edit an issue.

GitHub API docs: http://developer.github.com/v3/issues/#edit-an-issue

func (*IssuesService) EditComment

func (s *IssuesService) EditComment(owner string, repo string, id int, comment *IssueComment) (*IssueComment, *Response, error)

EditComment updates an issue comment.

GitHub API docs: http://developer.github.com/v3/issues/comments/#edit-a-comment

func (*IssuesService) EditLabel

func (s *IssuesService) EditLabel(owner string, repo string, name string, label *Label) (*Label, *Response, error)

EditLabel edits a label.

GitHub API docs: http://developer.github.com/v3/issues/labels/#update-a-label

func (*IssuesService) EditMilestone

func (s *IssuesService) EditMilestone(owner string, repo string, number int, milestone *Milestone) (*Milestone, *Response, error)

EditMilestone edits a milestone.

GitHub API docs: https://developer.github.com/v3/issues/milestones/#update-a-milestone

func (*IssuesService) Get

func (s *IssuesService) Get(owner string, repo string, number int) (*Issue, *Response, error)

Get a single issue.

GitHub API docs: http://developer.github.com/v3/issues/#get-a-single-issue

func (*IssuesService) GetComment

func (s *IssuesService) GetComment(owner string, repo string, id int) (*IssueComment, *Response, error)

GetComment fetches the specified issue comment.

GitHub API docs: http://developer.github.com/v3/issues/comments/#get-a-single-comment

func (*IssuesService) GetEvent

func (s *IssuesService) GetEvent(owner, repo string, id int) (*IssueEvent, *Response, error)

GetEvent returns the specified issue event.

GitHub API docs: https://developer.github.com/v3/issues/events/#get-a-single-event

func (*IssuesService) GetLabel

func (s *IssuesService) GetLabel(owner string, repo string, name string) (*Label, *Response, error)

GetLabel gets a single label.

GitHub API docs: http://developer.github.com/v3/issues/labels/#get-a-single-label

func (*IssuesService) GetMilestone

func (s *IssuesService) GetMilestone(owner string, repo string, number int) (*Milestone, *Response, error)

GetMilestone gets a single milestone.

GitHub API docs: https://developer.github.com/v3/issues/milestones/#get-a-single-milestone

func (*IssuesService) IsAssignee

func (s *IssuesService) IsAssignee(owner string, repo string, user string) (bool, *Response, error)

IsAssignee checks if a user is an assignee for the specified repository.

GitHub API docs: http://developer.github.com/v3/issues/assignees/#check-assignee

func (*IssuesService) List

func (s *IssuesService) List(all bool, opt *IssueListOptions) ([]Issue, *Response, error)

List the issues for the authenticated user. If all is true, list issues across all the user's visible repositories including owned, member, and organization repositories; if false, list only owned and member repositories.

GitHub API docs: http://developer.github.com/v3/issues/#list-issues

func (*IssuesService) ListAssignees

func (s *IssuesService) ListAssignees(owner string, repo string, opt *ListOptions) ([]User, *Response, error)

ListAssignees fetches all available assignees (owners and collaborators) to which issues may be assigned.

GitHub API docs: http://developer.github.com/v3/issues/assignees/#list-assignees

func (*IssuesService) ListByOrg

func (s *IssuesService) ListByOrg(org string, opt *IssueListOptions) ([]Issue, *Response, error)

ListByOrg fetches the issues in the specified organization for the authenticated user.

GitHub API docs: http://developer.github.com/v3/issues/#list-issues

func (*IssuesService) ListByRepo

func (s *IssuesService) ListByRepo(owner string, repo string, opt *IssueListByRepoOptions) ([]Issue, *Response, error)

ListByRepo lists the issues for the specified repository.

GitHub API docs: http://developer.github.com/v3/issues/#list-issues-for-a-repository

func (*IssuesService) ListComments

func (s *IssuesService) ListComments(owner string, repo string, number int, opt *IssueListCommentsOptions) ([]IssueComment, *Response, error)

ListComments lists all comments on the specified issue. Specifying an issue number of 0 will return all comments on all issues for the repository.

GitHub API docs: http://developer.github.com/v3/issues/comments/#list-comments-on-an-issue

func (*IssuesService) ListIssueEvents

func (s *IssuesService) ListIssueEvents(owner, repo string, number int, opt *ListOptions) ([]IssueEvent, *Response, error)

ListIssueEvents lists events for the specified issue.

GitHub API docs: https://developer.github.com/v3/issues/events/#list-events-for-an-issue

func (*IssuesService) ListLabels

func (s *IssuesService) ListLabels(owner string, repo string, opt *ListOptions) ([]Label, *Response, error)

ListLabels lists all labels for a repository.

GitHub API docs: http://developer.github.com/v3/issues/labels/#list-all-labels-for-this-repository

func (*IssuesService) ListLabelsByIssue

func (s *IssuesService) ListLabelsByIssue(owner string, repo string, number int, opt *ListOptions) ([]Label, *Response, error)

ListLabelsByIssue lists all labels for an issue.

GitHub API docs: http://developer.github.com/v3/issues/labels/#list-all-labels-for-this-repository

func (*IssuesService) ListLabelsForMilestone

func (s *IssuesService) ListLabelsForMilestone(owner string, repo string, number int, opt *ListOptions) ([]Label, *Response, error)

ListLabelsForMilestone lists labels for every issue in a milestone.

GitHub API docs: http://developer.github.com/v3/issues/labels/#get-labels-for-every-issue-in-a-milestone

func (*IssuesService) ListMilestones

func (s *IssuesService) ListMilestones(owner string, repo string, opt *MilestoneListOptions) ([]Milestone, *Response, error)

ListMilestones lists all milestones for a repository.

GitHub API docs: https://developer.github.com/v3/issues/milestones/#list-milestones-for-a-repository

func (*IssuesService) ListRepositoryEvents

func (s *IssuesService) ListRepositoryEvents(owner, repo string, opt *ListOptions) ([]IssueEvent, *Response, error)

ListRepositoryEvents lists events for the specified repository.

GitHub API docs: https://developer.github.com/v3/issues/events/#list-events-for-a-repository

func (*IssuesService) RemoveLabelForIssue

func (s *IssuesService) RemoveLabelForIssue(owner string, repo string, number int, label string) (*Response, error)

RemoveLabelForIssue removes a label for an issue.

GitHub API docs: http://developer.github.com/v3/issues/labels/#remove-a-label-from-an-issue

func (*IssuesService) RemoveLabelsForIssue

func (s *IssuesService) RemoveLabelsForIssue(owner string, repo string, number int) (*Response, error)

RemoveLabelsForIssue removes all labels for an issue.

GitHub API docs: http://developer.github.com/v3/issues/labels/#remove-all-labels-from-an-issue

func (*IssuesService) ReplaceLabelsForIssue

func (s *IssuesService) ReplaceLabelsForIssue(owner string, repo string, number int, labels []string) ([]Label, *Response, error)

ReplaceLabelsForIssue replaces all labels for an issue.

GitHub API docs: http://developer.github.com/v3/issues/labels/#replace-all-labels-for-an-issue

type Key

type Key struct {
	ID    *int    `json:"id,omitempty"`
	Key   *string `json:"key,omitempty"`
	URL   *string `json:"url,omitempty"`
	Title *string `json:"title,omitempty"`
}

Key represents a public SSH key used to authenticate a user or deploy script.

func (Key) String

func (k Key) String() string

type Label

type Label struct {
	URL   *string `json:"url,omitempty"`
	Name  *string `json:"name,omitempty"`
	Color *string `json:"color,omitempty"`
}

Label represents a GitHub label on an Issue

func (Label) String

func (l Label) String() string

type License

type License struct {
	Key  *string `json:"key,omitempty"`
	Name *string `json:"name,omitempty"`
	URL  *string `json:"url,omitempty"`

	HTMLURL        *string   `json:"html_url",omitempty`
	Featured       *bool     `json:"featured,omitempty"`
	Description    *string   `json:"description,omitempty"`
	Category       *string   `json:"category,omitempty"`
	Implementation *string   `json:"implementation,omitempty"`
	Required       *[]string `json:"required,omitempty"`
	Permitted      *[]string `json:"permitted,omitempty"`
	Forbidden      *[]string `json:"forbidden,omitempty"`
	Body           *string   `json:"body,omitempty"`
}

License represents an open source license.

func (License) String

func (l License) String() string

type LicensesService

type LicensesService struct {
	// contains filtered or unexported fields
}

LicensesService handles communication with the license related methods of the GitHub API.

GitHub API docs: http://developer.github.com/v3/pulls/

func (*LicensesService) Get

func (s *LicensesService) Get(licenseName string) (*License, *Response, error)

Fetch extended metadata for one license.

GitHub API docs: https://developer.github.com/v3/licenses/#get-an-individual-license

func (*LicensesService) List

func (s *LicensesService) List() ([]License, *Response, error)

List popular open source licenses.

GitHub API docs: https://developer.github.com/v3/licenses/#list-all-licenses

type ListContributorsOptions

type ListContributorsOptions struct {
	// Include anonymous contributors in results or not
	Anon string `url:"anon,omitempty"`

	ListOptions
}

ListContributorsOptions specifies the optional parameters to the RepositoriesService.ListContributors method.

type ListMembersOptions

type ListMembersOptions struct {
	// If true (or if the authenticated user is not an owner of the
	// organization), list only publicly visible members.
	PublicOnly bool `url:"-"`

	// Filter members returned in the list.  Possible values are:
	// 2fa_disabled, all.  Default is "all".
	Filter string `url:"filter,omitempty"`

	ListOptions
}

ListMembersOptions specifies optional parameters to the OrganizationsService.ListMembers method.

type ListOptions

type ListOptions struct {
	// For paginated result sets, page of results to retrieve.
	Page int `url:"page,omitempty"`

	// For paginated result sets, the number of results to include per page.
	PerPage int `url:"per_page,omitempty"`
}

ListOptions specifies the optional parameters to various List methods that support pagination.

type ListOrgMembershipsOptions

type ListOrgMembershipsOptions struct {
	// Filter memberships to include only those withe the specified state.
	// Possible values are: "active", "pending".
	State string `url:"state,omitempty"`

	ListOptions
}

ListOrgMembershipsOptions specifies optional parameters to the OrganizationsService.ListOrgMemberships method.

type MarkdownOptions

type MarkdownOptions struct {
	// Mode identifies the rendering mode.  Possible values are:
	//   markdown - render a document as plain Markdown, just like
	//   README files are rendered.
	//
	//   gfm - to render a document as user-content, e.g. like user
	//   comments or issues are rendered. In GFM mode, hard line breaks are
	//   always taken into account, and issue and user mentions are linked
	//   accordingly.
	//
	// Default is "markdown".
	Mode string

	// Context identifies the repository context.  Only taken into account
	// when rendering as "gfm".
	Context string
}

MarkdownOptions specifies optional parameters to the Markdown method.

type Match

type Match struct {
	Text    *string `json:"text,omitempty"`
	Indices []int   `json:"indices,omitempty"`
}

Match represents a single text match.

type Membership

type Membership struct {
	URL *string `json:"url,omitempty"`

	// State is the user's status within the organization or team.
	// Possible values are: "active", "pending"
	State *string `json:"state,omitempty"`

	// TODO(willnorris): add docs
	Role *string `json:"role,omitempty"`

	// For organization membership, the API URL of the organization.
	OrganizationURL *string `json:"organization_url,omitempty"`

	// For organization membership, the organization the membership is for.
	Organization *Organization `json:"organization,omitempty"`

	// For organization membership, the user the membership is for.
	User *User `json:"user,omitempty"`
}

Membership represents the status of a user's membership in an organization or team.

func (Membership) String

func (m Membership) String() string

type Milestone

type Milestone struct {
	URL          *string    `json:"url,omitempty"`
	Number       *int       `json:"number,omitempty"`
	State        *string    `json:"state,omitempty"`
	Title        *string    `json:"title,omitempty"`
	Description  *string    `json:"description,omitempty"`
	Creator      *User      `json:"creator,omitempty"`
	OpenIssues   *int       `json:"open_issues,omitempty"`
	ClosedIssues *int       `json:"closed_issues,omitempty"`
	CreatedAt    *time.Time `json:"created_at,omitempty"`
	UpdatedAt    *time.Time `json:"updated_at,omitempty"`
	DueOn        *time.Time `json:"due_on,omitempty"`
}

Milestone represents a Github repository milestone.

func (Milestone) String

func (m Milestone) String() string

type MilestoneListOptions

type MilestoneListOptions struct {
	// State filters milestones based on their state. Possible values are:
	// open, closed. Default is "open".
	State string `url:"state,omitempty"`

	// Sort specifies how to sort milestones. Possible values are: due_date, completeness.
	// Default value is "due_date".
	Sort string `url:"sort,omitempty"`

	// Direction in which to sort milestones. Possible values are: asc, desc.
	// Default is "asc".
	Direction string `url:"direction,omitempty"`
}

MilestoneListOptions specifies the optional parameters to the IssuesService.ListMilestones method.

type NewPullRequest

type NewPullRequest struct {
	Title *string `json:"title,omitempty"`
	Head  *string `json:"head,omitempty"`
	Base  *string `json:"base,omitempty"`
	Body  *string `json:"body,omitempty"`
	Issue *int    `json:"issue,omitempty"`
}

NewPullRequest represents a new pull request to be created.

type Notification

type Notification struct {
	ID         *string              `json:"id,omitempty"`
	Repository *Repository          `json:"repository,omitempty"`
	Subject    *NotificationSubject `json:"subject,omitempty"`

	// Reason identifies the event that triggered the notification.
	//
	// GitHub API Docs: https://developer.github.com/v3/activity/notifications/#notification-reasons
	Reason *string `json:"reason,omitempty"`

	Unread     *bool      `json:"unread,omitempty"`
	UpdatedAt  *time.Time `json:"updated_at,omitempty"`
	LastReadAt *time.Time `json:"last_read_at,omitempty"`
	URL        *string    `json:"url,omitempty"`
}

Notification identifies a GitHub notification for a user.

type NotificationListOptions

type NotificationListOptions struct {
	All           bool      `url:"all,omitempty"`
	Participating bool      `url:"participating,omitempty"`
	Since         time.Time `url:"since,omitempty"`
}

NotificationListOptions specifies the optional parameters to the ActivityService.ListNotifications method.

type NotificationSubject

type NotificationSubject struct {
	Title            *string `json:"title,omitempty"`
	URL              *string `json:"url,omitempty"`
	LatestCommentURL *string `json:"latest_comment_url,omitempty"`
	Type             *string `json:"type,omitempty"`
}

NotificationSubject identifies the subject of a notification.

type Organization

type Organization struct {
	Login             *string    `json:"login,omitempty"`
	ID                *int       `json:"id,omitempty"`
	AvatarURL         *string    `json:"avatar_url,omitempty"`
	HTMLURL           *string    `json:"html_url,omitempty"`
	Name              *string    `json:"name,omitempty"`
	Company           *string    `json:"company,omitempty"`
	Blog              *string    `json:"blog,omitempty"`
	Location          *string    `json:"location,omitempty"`
	Email             *string    `json:"email,omitempty"`
	PublicRepos       *int       `json:"public_repos,omitempty"`
	PublicGists       *int       `json:"public_gists,omitempty"`
	Followers         *int       `json:"followers,omitempty"`
	Following         *int       `json:"following,omitempty"`
	CreatedAt         *time.Time `json:"created_at,omitempty"`
	UpdatedAt         *time.Time `json:"updated_at,omitempty"`
	TotalPrivateRepos *int       `json:"total_private_repos,omitempty"`
	OwnedPrivateRepos *int       `json:"owned_private_repos,omitempty"`
	PrivateGists      *int       `json:"private_gists,omitempty"`
	DiskUsage         *int       `json:"disk_usage,omitempty"`
	Collaborators     *int       `json:"collaborators,omitempty"`
	BillingEmail      *string    `json:"billing_email,omitempty"`
	Type              *string    `json:"type,omitempty"`
	Plan              *Plan      `json:"plan,omitempty"`

	// API URLs
	URL              *string `json:"url,omitempty"`
	EventsURL        *string `json:"events_url,omitempty"`
	MembersURL       *string `json:"members_url,omitempty"`
	PublicMembersURL *string `json:"public_members_url,omitempty"`
	ReposURL         *string `json:"repos_url,omitempty"`
}

Organization represents a GitHub organization account.

func (Organization) String

func (o Organization) String() string

type OrganizationsService

type OrganizationsService struct {
	// contains filtered or unexported fields
}

OrganizationsService provides access to the organization related functions in the GitHub API.

GitHub API docs: http://developer.github.com/v3/orgs/

func (*OrganizationsService) AddTeamMembership

func (s *OrganizationsService) AddTeamMembership(team int, user string) (*Membership, *Response, error)

AddTeamMembership adds or invites a user to a team.

In order to add a membership between a user and a team, the authenticated user must have 'admin' permissions to the team or be an owner of the organization that the team is associated with.

If the user is already a part of the team's organization (meaning they're on at least one other team in the organization), this endpoint will add the user to the team.

If the user is completely unaffiliated with the team's organization (meaning they're on none of the organization's teams), this endpoint will send an invitation to the user via email. This newly-created membership will be in the "pending" state until the user accepts the invitation, at which point the membership will transition to the "active" state and the user will be added as a member of the team.

GitHub API docs: https://developer.github.com/v3/orgs/teams/#add-team-membership

func (*OrganizationsService) AddTeamRepo

func (s *OrganizationsService) AddTeamRepo(team int, owner string, repo string) (*Response, error)

AddTeamRepo adds a repository to be managed by the specified team. The specified repository must be owned by the organization to which the team belongs, or a direct fork of a repository owned by the organization.

GitHub API docs: http://developer.github.com/v3/orgs/teams/#add-team-repo

func (*OrganizationsService) ConcealMembership

func (s *OrganizationsService) ConcealMembership(org, user string) (*Response, error)

ConcealMembership conceals a user's membership in an organization.

GitHub API docs: http://developer.github.com/v3/orgs/members/#conceal-a-users-membership

func (*OrganizationsService) CreateHook

func (s *OrganizationsService) CreateHook(org string, hook *Hook) (*Hook, *Response, error)

CreateHook creates a Hook for the specified org. Name and Config are required fields.

GitHub API docs: https://developer.github.com/v3/orgs/hooks/#create-a-hook

func (*OrganizationsService) CreateTeam

func (s *OrganizationsService) CreateTeam(org string, team *Team) (*Team, *Response, error)

CreateTeam creates a new team within an organization.

GitHub API docs: http://developer.github.com/v3/orgs/teams/#create-team

func (*OrganizationsService) DeleteHook

func (s *OrganizationsService) DeleteHook(org string, id int) (*Response, error)

DeleteHook deletes a specified Hook.

GitHub API docs: https://developer.github.com/v3/orgs/hooks/#delete-a-hook

func (*OrganizationsService) DeleteTeam

func (s *OrganizationsService) DeleteTeam(team int) (*Response, error)

DeleteTeam deletes a team.

GitHub API docs: http://developer.github.com/v3/orgs/teams/#delete-team

func (*OrganizationsService) Edit

Edit an organization.

GitHub API docs: http://developer.github.com/v3/orgs/#edit-an-organization

func (*OrganizationsService) EditHook

func (s *OrganizationsService) EditHook(org string, id int, hook *Hook) (*Hook, *Response, error)

EditHook updates a specified Hook.

GitHub API docs: https://developer.github.com/v3/orgs/hooks/#edit-a-hook

func (*OrganizationsService) EditOrgMembership

func (s *OrganizationsService) EditOrgMembership(org string, membership *Membership) (*Membership, *Response, error)

EditOrgMembership edits the membership for the authenticated user for the specified organization.

GitHub API docs: https://developer.github.com/v3/orgs/members/#edit-your-organization-membership

func (*OrganizationsService) EditTeam

func (s *OrganizationsService) EditTeam(id int, team *Team) (*Team, *Response, error)

EditTeam edits a team.

GitHub API docs: http://developer.github.com/v3/orgs/teams/#edit-team

func (*OrganizationsService) Get

Get fetches an organization by name.

GitHub API docs: http://developer.github.com/v3/orgs/#get-an-organization

func (*OrganizationsService) GetHook

func (s *OrganizationsService) GetHook(org string, id int) (*Hook, *Response, error)

GetHook returns a single specified Hook.

GitHub API docs: https://developer.github.com/v3/orgs/hooks/#get-single-hook

func (*OrganizationsService) GetOrgMembership

func (s *OrganizationsService) GetOrgMembership(org string) (*Membership, *Response, error)

GetOrgMembership gets the membership for the authenticated user for the specified organization.

GitHub API docs: https://developer.github.com/v3/orgs/members/#get-your-organization-membership

func (*OrganizationsService) GetTeam

func (s *OrganizationsService) GetTeam(team int) (*Team, *Response, error)

GetTeam fetches a team by ID.

GitHub API docs: http://developer.github.com/v3/orgs/teams/#get-team

func (*OrganizationsService) GetTeamMembership

func (s *OrganizationsService) GetTeamMembership(team int, user string) (*Membership, *Response, error)

GetTeamMembership returns the membership status for a user in a team.

GitHub API docs: https://developer.github.com/v3/orgs/teams/#get-team-membership

func (*OrganizationsService) IsMember

func (s *OrganizationsService) IsMember(org, user string) (bool, *Response, error)

IsMember checks if a user is a member of an organization.

GitHub API docs: http://developer.github.com/v3/orgs/members/#check-membership

func (*OrganizationsService) IsPublicMember

func (s *OrganizationsService) IsPublicMember(org, user string) (bool, *Response, error)

IsPublicMember checks if a user is a public member of an organization.

GitHub API docs: http://developer.github.com/v3/orgs/members/#check-public-membership

func (*OrganizationsService) IsTeamMember

func (s *OrganizationsService) IsTeamMember(team int, user string) (bool, *Response, error)

IsTeamMember checks if a user is a member of the specified team.

GitHub API docs: http://developer.github.com/v3/orgs/teams/#get-team-member

func (*OrganizationsService) IsTeamRepo

func (s *OrganizationsService) IsTeamRepo(team int, owner string, repo string) (bool, *Response, error)

IsTeamRepo checks if a team manages the specified repository.

GitHub API docs: http://developer.github.com/v3/orgs/teams/#get-team-repo

func (*OrganizationsService) List

List the organizations for a user. Passing the empty string will list organizations for the authenticated user.

GitHub API docs: http://developer.github.com/v3/orgs/#list-user-organizations

func (*OrganizationsService) ListHooks

func (s *OrganizationsService) ListHooks(org string, opt *ListOptions) ([]Hook, *Response, error)

ListHooks lists all Hooks for the specified organization.

GitHub API docs: https://developer.github.com/v3/orgs/hooks/#list-hooks

func (*OrganizationsService) ListMembers

func (s *OrganizationsService) ListMembers(org string, opt *ListMembersOptions) ([]User, *Response, error)

ListMembers lists the members for an organization. If the authenticated user is an owner of the organization, this will return both concealed and public members, otherwise it will only return public members.

GitHub API docs: http://developer.github.com/v3/orgs/members/#members-list

func (*OrganizationsService) ListOrgMemberships

func (s *OrganizationsService) ListOrgMemberships(opt *ListOrgMembershipsOptions) ([]Membership, *Response, error)

ListOrgMemberships lists the organization memberships for the authenticated user.

GitHub API docs: https://developer.github.com/v3/orgs/members/#list-your-organization-memberships

func (*OrganizationsService) ListTeamMembers

func (s *OrganizationsService) ListTeamMembers(team int, opt *ListOptions) ([]User, *Response, error)

ListTeamMembers lists all of the users who are members of the specified team.

GitHub API docs: http://developer.github.com/v3/orgs/teams/#list-team-members

func (*OrganizationsService) ListTeamRepos

func (s *OrganizationsService) ListTeamRepos(team int, opt *ListOptions) ([]Repository, *Response, error)

ListTeamRepos lists the repositories that the specified team has access to.

GitHub API docs: http://developer.github.com/v3/orgs/teams/#list-team-repos

func (*OrganizationsService) ListTeams

func (s *OrganizationsService) ListTeams(org string, opt *ListOptions) ([]Team, *Response, error)

ListTeams lists all of the teams for an organization.

GitHub API docs: http://developer.github.com/v3/orgs/teams/#list-teams

func (*OrganizationsService) ListUserTeams

func (s *OrganizationsService) ListUserTeams(opt *ListOptions) ([]Team, *Response, error)

ListUserTeams lists a user's teams GitHub API docs: https://developer.github.com/v3/orgs/teams/#list-user-teams

func (*OrganizationsService) PingHook

func (s *OrganizationsService) PingHook(org string, id int) (*Response, error)

PingHook triggers a 'ping' event to be sent to the Hook.

GitHub API docs: https://developer.github.com/v3/orgs/hooks/#ping-a-hook

func (*OrganizationsService) PublicizeMembership

func (s *OrganizationsService) PublicizeMembership(org, user string) (*Response, error)

PublicizeMembership publicizes a user's membership in an organization.

GitHub API docs: http://developer.github.com/v3/orgs/members/#publicize-a-users-membership

func (*OrganizationsService) RemoveMember

func (s *OrganizationsService) RemoveMember(org, user string) (*Response, error)

RemoveMember removes a user from all teams of an organization.

GitHub API docs: http://developer.github.com/v3/orgs/members/#remove-a-member

func (*OrganizationsService) RemoveTeamMembership

func (s *OrganizationsService) RemoveTeamMembership(team int, user string) (*Response, error)

RemoveTeamMembership removes a user from a team.

GitHub API docs: https://developer.github.com/v3/orgs/teams/#remove-team-membership

func (*OrganizationsService) RemoveTeamRepo

func (s *OrganizationsService) RemoveTeamRepo(team int, owner string, repo string) (*Response, error)

RemoveTeamRepo removes a repository from being managed by the specified team. Note that this does not delete the repository, it just removes it from the team.

GitHub API docs: http://developer.github.com/v3/orgs/teams/#remove-team-repo

type Pages

type Pages struct {
	URL       *string `json:"url,omitempty"`
	Status    *string `json:"status,omitempty"`
	CNAME     *string `json:"cname,omitempty"`
	Custom404 *bool   `json:"custom_404,omitempty"`
}

Pages represents a GitHub Pages site configuration.

type PagesBuild

type PagesBuild struct {
	URL       *string     `json:"url,omitempty"`
	Status    *string     `json:"status,omitempty"`
	Error     *PagesError `json:"error,omitempty"`
	Pusher    *User       `json:"pusher,omitempty"`
	Commit    *string     `json:"commit,omitempty"`
	Duration  *int        `json:"duration,omitempty"`
	CreatedAt *Timestamp  `json:"created_at,omitempty"`
	UpdatedAt *Timestamp  `json:"created_at,omitempty"`
}

PagesBuild represents the build information for a GitHub Pages site.

type PagesError

type PagesError struct {
	Message *string `json:"message,omitempty"`
}

PagesError represents a build error for a GitHub Pages site.

type Plan

type Plan struct {
	Name          *string `json:"name,omitempty"`
	Space         *int    `json:"space,omitempty"`
	Collaborators *int    `json:"collaborators,omitempty"`
	PrivateRepos  *int    `json:"private_repos,omitempty"`
}

Plan represents the payment plan for an account. See plans at https://github.com/plans.

func (Plan) String

func (p Plan) String() string

type PullRequest

type PullRequest struct {
	Number       *int       `json:"number,omitempty"`
	State        *string    `json:"state,omitempty"`
	Title        *string    `json:"title,omitempty"`
	Body         *string    `json:"body,omitempty"`
	CreatedAt    *time.Time `json:"created_at,omitempty"`
	UpdatedAt    *time.Time `json:"updated_at,omitempty"`
	ClosedAt     *time.Time `json:"closed_at,omitempty"`
	MergedAt     *time.Time `json:"merged_at,omitempty"`
	User         *User      `json:"user,omitempty"`
	Merged       *bool      `json:"merged,omitempty"`
	Mergeable    *bool      `json:"mergeable,omitempty"`
	MergedBy     *User      `json:"merged_by,omitempty"`
	Comments     *int       `json:"comments,omitempty"`
	Commits      *int       `json:"commits,omitempty"`
	Additions    *int       `json:"additions,omitempty"`
	Deletions    *int       `json:"deletions,omitempty"`
	ChangedFiles *int       `json:"changed_files,omitempty"`
	URL          *string    `json:"url,omitempty"`
	HTMLURL      *string    `json:"html_url,omitempty"`
	IssueURL     *string    `json:"issue_url,omitempty"`
	StatusesURL  *string    `json:"statuses_url,omitempty"`
	DiffURL      *string    `json:"diff_url,omitempty"`
	PatchURL     *string    `json:"patch_url,omitempty"`

	Head *PullRequestBranch `json:"head,omitempty"`
	Base *PullRequestBranch `json:"base,omitempty"`
}

PullRequest represents a GitHub pull request on a repository.

func (PullRequest) String

func (p PullRequest) String() string

type PullRequestBranch

type PullRequestBranch struct {
	Label *string     `json:"label,omitempty"`
	Ref   *string     `json:"ref,omitempty"`
	SHA   *string     `json:"sha,omitempty"`
	Repo  *Repository `json:"repo,omitempty"`
	User  *User       `json:"user,omitempty"`
}

PullRequestBranch represents a base or head branch in a GitHub pull request.

type PullRequestComment

type PullRequestComment struct {
	ID        *int       `json:"id,omitempty"`
	Body      *string    `json:"body,omitempty"`
	Path      *string    `json:"path,omitempty"`
	Position  *int       `json:"position,omitempty"`
	CommitID  *string    `json:"commit_id,omitempty"`
	User      *User      `json:"user,omitempty"`
	CreatedAt *time.Time `json:"created_at,omitempty"`
	UpdatedAt *time.Time `json:"updated_at,omitempty"`
}

PullRequestComment represents a comment left on a pull request.

func (PullRequestComment) String

func (p PullRequestComment) String() string

type PullRequestEvent

type PullRequestEvent struct {
	Action      *string      `json:"action,omitempty"`
	Number      *int         `json:"number,omitempty"`
	PullRequest *PullRequest `json:"pull_request,omitempty"`
	Repo        *Repository  `json:"repository,omitempty"`
	Sender      *User        `json:"sender,omitempty"`
}

PullRequestEvent represents the payload delivered by PullRequestEvent webhook

type PullRequestLinks struct {
	URL      *string `json:"url,omitempty"`
	HTMLURL  *string `json:"html_url,omitempty"`
	DiffURL  *string `json:"diff_url,omitempty"`
	PatchURL *string `json:"patch_url,omitempty"`
}

PullRequestLinks object is added to the Issue object when it's an issue included in the IssueCommentEvent webhook payload, if the webhooks is fired by a comment on a PR

type PullRequestListCommentsOptions

type PullRequestListCommentsOptions struct {
	// Sort specifies how to sort comments.  Possible values are: created, updated.
	Sort string `url:"sort,omitempty"`

	// Direction in which to sort comments.  Possible values are: asc, desc.
	Direction string `url:"direction,omitempty"`

	// Since filters comments by time.
	Since time.Time `url:"since,omitempty"`

	ListOptions
}

PullRequestListCommentsOptions specifies the optional parameters to the PullRequestsService.ListComments method.

type PullRequestListOptions

type PullRequestListOptions struct {
	// State filters pull requests based on their state.  Possible values are:
	// open, closed.  Default is "open".
	State string `url:"state,omitempty"`

	// Head filters pull requests by head user and branch name in the format of:
	// "user:ref-name".
	Head string `url:"head,omitempty"`

	// Base filters pull requests by base branch name.
	Base string `url:"base,omitempty"`

	// Sort specifies how to sort pull requests. Possible values are: created,
	// updated, popularity, long-running. Default is "created".
	Sort string `url:"sort,omitempty"`

	// Direction in which to sort pull requests. Possible values are: asc, desc.
	// If Sort is "created" or not specified, Default is "desc", otherwise Default
	// is "asc"
	Direction string `url:"direction,omitempty"`

	ListOptions
}

PullRequestListOptions specifies the optional parameters to the PullRequestsService.List method.

type PullRequestMergeResult

type PullRequestMergeResult struct {
	SHA     *string `json:"sha,omitempty"`
	Merged  *bool   `json:"merged,omitempty"`
	Message *string `json:"message,omitempty"`
}

PullRequestMergeResult represents the result of merging a pull request.

type PullRequestsService

type PullRequestsService struct {
	// contains filtered or unexported fields
}

PullRequestsService handles communication with the pull request related methods of the GitHub API.

GitHub API docs: http://developer.github.com/v3/pulls/

func (*PullRequestsService) Create

func (s *PullRequestsService) Create(owner string, repo string, pull *NewPullRequest) (*PullRequest, *Response, error)

Create a new pull request on the specified repository.

GitHub API docs: https://developer.github.com/v3/pulls/#create-a-pull-request

func (*PullRequestsService) CreateComment

func (s *PullRequestsService) CreateComment(owner string, repo string, number int, comment *PullRequestComment) (*PullRequestComment, *Response, error)

CreateComment creates a new comment on the specified pull request.

GitHub API docs: https://developer.github.com/v3/pulls/comments/#get-a-single-comment

func (*PullRequestsService) DeleteComment

func (s *PullRequestsService) DeleteComment(owner string, repo string, number int) (*Response, error)

DeleteComment deletes a pull request comment.

GitHub API docs: https://developer.github.com/v3/pulls/comments/#delete-a-comment

func (*PullRequestsService) Edit

func (s *PullRequestsService) Edit(owner string, repo string, number int, pull *PullRequest) (*PullRequest, *Response, error)

Edit a pull request.

GitHub API docs: https://developer.github.com/v3/pulls/#update-a-pull-request

func (*PullRequestsService) EditComment

func (s *PullRequestsService) EditComment(owner string, repo string, number int, comment *PullRequestComment) (*PullRequestComment, *Response, error)

EditComment updates a pull request comment.

GitHub API docs: https://developer.github.com/v3/pulls/comments/#edit-a-comment

func (*PullRequestsService) Get

func (s *PullRequestsService) Get(owner string, repo string, number int) (*PullRequest, *Response, error)

Get a single pull request.

GitHub API docs: https://developer.github.com/v3/pulls/#get-a-single-pull-request

func (*PullRequestsService) GetComment

func (s *PullRequestsService) GetComment(owner string, repo string, number int) (*PullRequestComment, *Response, error)

GetComment fetches the specified pull request comment.

GitHub API docs: https://developer.github.com/v3/pulls/comments/#get-a-single-comment

func (*PullRequestsService) IsMerged

func (s *PullRequestsService) IsMerged(owner string, repo string, number int) (bool, *Response, error)

IsMerged checks if a pull request has been merged.

GitHub API docs: https://developer.github.com/v3/pulls/#get-if-a-pull-request-has-been-merged

func (*PullRequestsService) List

List the pull requests for the specified repository.

GitHub API docs: http://developer.github.com/v3/pulls/#list-pull-requests

func (*PullRequestsService) ListComments

func (s *PullRequestsService) ListComments(owner string, repo string, number int, opt *PullRequestListCommentsOptions) ([]PullRequestComment, *Response, error)

ListComments lists all comments on the specified pull request. Specifying a pull request number of 0 will return all comments on all pull requests for the repository.

GitHub API docs: https://developer.github.com/v3/pulls/comments/#list-comments-on-a-pull-request

func (*PullRequestsService) ListCommits

func (s *PullRequestsService) ListCommits(owner string, repo string, number int, opt *ListOptions) ([]RepositoryCommit, *Response, error)

ListCommits lists the commits in a pull request.

GitHub API docs: https://developer.github.com/v3/pulls/#list-commits-on-a-pull-request

func (*PullRequestsService) ListFiles

func (s *PullRequestsService) ListFiles(owner string, repo string, number int, opt *ListOptions) ([]CommitFile, *Response, error)

ListFiles lists the files in a pull request.

GitHub API docs: https://developer.github.com/v3/pulls/#list-pull-requests-files

func (*PullRequestsService) Merge

func (s *PullRequestsService) Merge(owner string, repo string, number int, commitMessage string) (*PullRequestMergeResult, *Response, error)

Merge a pull request (Merge Button™).

GitHub API docs: https://developer.github.com/v3/pulls/#merge-a-pull-request-merge-buttontrade

type PunchCard

type PunchCard struct {
	Day     *int // Day of the week (0-6: =Sunday - Saturday).
	Hour    *int // Hour of day (0-23).
	Commits *int // Number of commits.
}

PunchCard respresents the number of commits made during a given hour of a day of thew eek.

type PushEvent

type PushEvent struct {
	PushID  *int              `json:"push_id,omitempty"`
	Head    *string           `json:"head,omitempty"`
	Ref     *string           `json:"ref,omitempty"`
	Size    *int              `json:"size,omitempty"`
	Commits []PushEventCommit `json:"commits,omitempty"`
	Repo    *Repository       `json:"repository,omitempty"`
}

PushEvent represents a git push to a GitHub repository.

GitHub API docs: http://developer.github.com/v3/activity/events/types/#pushevent

func (PushEvent) String

func (p PushEvent) String() string

type PushEventCommit

type PushEventCommit struct {
	SHA      *string       `json:"sha,omitempty"`
	Message  *string       `json:"message,omitempty"`
	Author   *CommitAuthor `json:"author,omitempty"`
	URL      *string       `json:"url,omitempty"`
	Distinct *bool         `json:"distinct,omitempty"`
	Added    []string      `json:"added,omitempty"`
	Removed  []string      `json:"removed,omitempty"`
	Modified []string      `json:"modified,omitempty"`
}

PushEventCommit represents a git commit in a GitHub PushEvent.

func (PushEventCommit) String

func (p PushEventCommit) String() string

type Rate

type Rate struct {
	// The number of requests per hour the client is currently limited to.
	Limit int `json:"limit"`

	// The number of remaining requests the client can make this hour.
	Remaining int `json:"remaining"`

	// The time at which the current rate limit will reset.
	Reset Timestamp `json:"reset"`
}

Rate represents the rate limit for the current client.

func (Rate) String

func (r Rate) String() string

type RateLimits

type RateLimits struct {
	// The rate limit for non-search API requests.  Unauthenticated
	// requests are limited to 60 per hour.  Authenticated requests are
	// limited to 5,000 per hour.
	Core *Rate `json:"core"`

	// The rate limit for search API requests.  Unauthenticated requests
	// are limited to 5 requests per minutes.  Authenticated requests are
	// limited to 20 per minute.
	//
	// GitHub API docs: https://developer.github.com/v3/search/#rate-limit
	Search *Rate `json:"search"`
}

RateLimits represents the rate limits for the current client.

func (RateLimits) String

func (r RateLimits) String() string

type Reference

type Reference struct {
	Ref    *string    `json:"ref"`
	URL    *string    `json:"url"`
	Object *GitObject `json:"object"`
}

Reference represents a GitHub reference.

func (Reference) String

func (r Reference) String() string

type ReferenceListOptions

type ReferenceListOptions struct {
	Type string `url:"-"`

	ListOptions
}

ReferenceListOptions specifies optional parameters to the GitService.ListRefs method.

type ReleaseAsset

type ReleaseAsset struct {
	ID                 *int       `json:"id,omitempty"`
	URL                *string    `json:"url,omitempty"`
	Name               *string    `json:"name,omitempty"`
	Label              *string    `json:"label,omitempty"`
	State              *string    `json:"state,omitempty"`
	ContentType        *string    `json:"content_type,omitempty"`
	Size               *int       `json:"size,omitempty"`
	DownloadCount      *int       `json:"download_count,omitempty"`
	CreatedAt          *Timestamp `json:"created_at,omitempty"`
	UpdatedAt          *Timestamp `json:"updated_at,omitempty"`
	BrowserDownloadURL *string    `json:"browser_download_url,omitempty"`
	Uploader           *User      `json:"uploader,omitempty"`
}

ReleaseAsset represents a Github release asset in a repository.

func (ReleaseAsset) String

func (r ReleaseAsset) String() string

type RepoStatus

type RepoStatus struct {
	ID  *int    `json:"id,omitempty"`
	URL *string `json:"url,omitempty"`

	// State is the current state of the repository.  Possible values are:
	// pending, success, error, or failure.
	State *string `json:"state,omitempty"`

	// TargetURL is the URL of the page representing this status.  It will be
	// linked from the GitHub UI to allow users to see the source of the status.
	TargetURL *string `json:"target_url,omitempty"`

	// Description is a short high level summary of the status.
	Description *string `json:"description,omitempty"`

	// A string label to differentiate this status from the statuses of other systems.
	Context *string `json:"context,omitempty"`

	Creator   *User      `json:"creator,omitempty"`
	CreatedAt *time.Time `json:"created_at,omitempty"`
	UpdatedAt *time.Time `json:"updated_at,omitempty"`
}

RepoStatus represents the status of a repository at a particular reference.

func (RepoStatus) String

func (r RepoStatus) String() string

type RepositoriesSearchResult

type RepositoriesSearchResult struct {
	Total        *int         `json:"total_count,omitempty"`
	Repositories []Repository `json:"items,omitempty"`
}

RepositoriesSearchResult represents the result of a repositories search.

type RepositoriesService

type RepositoriesService struct {
	// contains filtered or unexported fields
}

RepositoriesService handles communication with the repository related methods of the GitHub API.

GitHub API docs: http://developer.github.com/v3/repos/

func (*RepositoriesService) AddCollaborator

func (s *RepositoriesService) AddCollaborator(owner, repo, user string) (*Response, error)

AddCollaborator adds the specified Github user as collaborator to the given repo.

GitHub API docs: http://developer.github.com/v3/repos/collaborators/#add-collaborator

func (*RepositoriesService) CompareCommits

func (s *RepositoriesService) CompareCommits(owner, repo string, base, head string) (*CommitsComparison, *Response, error)

CompareCommits compares a range of commits with each other. todo: support media formats - https://github.com/google/go-github/issues/6

GitHub API docs: http://developer.github.com/v3/repos/commits/index.html#compare-two-commits

func (*RepositoriesService) Create

func (s *RepositoriesService) Create(org string, repo *Repository) (*Repository, *Response, error)

Create a new repository. If an organization is specified, the new repository will be created under that org. If the empty string is specified, it will be created for the authenticated user.

GitHub API docs: http://developer.github.com/v3/repos/#create

func (*RepositoriesService) CreateComment

func (s *RepositoriesService) CreateComment(owner, repo, sha string, comment *RepositoryComment) (*RepositoryComment, *Response, error)

CreateComment creates a comment for the given commit. Note: GitHub allows for comments to be created for non-existing files and positions.

GitHub API docs: http://developer.github.com/v3/repos/comments/#create-a-commit-comment

func (*RepositoriesService) CreateDeployment

func (s *RepositoriesService) CreateDeployment(owner, repo string, request *DeploymentRequest) (*Deployment, *Response, error)

CreateDeployment creates a new deployment for a repository.

GitHub API docs: https://developer.github.com/v3/repos/deployments/#create-a-deployment

func (*RepositoriesService) CreateDeploymentStatus

func (s *RepositoriesService) CreateDeploymentStatus(owner, repo string, deployment int, request *DeploymentStatusRequest) (*DeploymentStatus, *Response, error)

CreateDeploymentStatus creates a new status for a deployment.

GitHub API docs: https://developer.github.com/v3/repos/deployments/#create-a-deployment-status

func (*RepositoriesService) CreateFile

CreateFile creates a new file in a repository at the given path and returns the commit and file metadata.

GitHub API docs: http://developer.github.com/v3/repos/contents/#create-a-file

func (*RepositoriesService) CreateFork

func (s *RepositoriesService) CreateFork(owner, repo string, opt *RepositoryCreateForkOptions) (*Repository, *Response, error)

CreateFork creates a fork of the specified repository.

GitHub API docs: http://developer.github.com/v3/repos/forks/#list-forks

func (*RepositoriesService) CreateHook

func (s *RepositoriesService) CreateHook(owner, repo string, hook *Hook) (*Hook, *Response, error)

CreateHook creates a Hook for the specified repository. Name and Config are required fields.

GitHub API docs: http://developer.github.com/v3/repos/hooks/#create-a-hook

func (*RepositoriesService) CreateKey

func (s *RepositoriesService) CreateKey(owner string, repo string, key *Key) (*Key, *Response, error)

CreateKey adds a deploy key for a repository.

GitHub API docs: http://developer.github.com/v3/repos/keys/#create

func (*RepositoriesService) CreateRelease

func (s *RepositoriesService) CreateRelease(owner, repo string, release *RepositoryRelease) (*RepositoryRelease, *Response, error)

CreateRelease adds a new release for a repository.

GitHub API docs : http://developer.github.com/v3/repos/releases/#create-a-release

func (*RepositoriesService) CreateStatus

func (s *RepositoriesService) CreateStatus(owner, repo, ref string, status *RepoStatus) (*RepoStatus, *Response, error)

CreateStatus creates a new status for a repository at the specified reference. Ref can be a SHA, a branch name, or a tag name.

GitHub API docs: http://developer.github.com/v3/repos/statuses/#create-a-status

func (*RepositoriesService) Delete

func (s *RepositoriesService) Delete(owner, repo string) (*Response, error)

Delete a repository.

GitHub API docs: https://developer.github.com/v3/repos/#delete-a-repository

func (*RepositoriesService) DeleteComment

func (s *RepositoriesService) DeleteComment(owner, repo string, id int) (*Response, error)

DeleteComment deletes a single comment from a repository.

GitHub API docs: http://developer.github.com/v3/repos/comments/#delete-a-commit-comment

func (*RepositoriesService) DeleteFile

DeleteFile deletes a file from a repository and returns the commit. Requires the blob SHA of the file to be deleted.

GitHub API docs: http://developer.github.com/v3/repos/contents/#delete-a-file

func (*RepositoriesService) DeleteHook

func (s *RepositoriesService) DeleteHook(owner, repo string, id int) (*Response, error)

DeleteHook deletes a specified Hook.

GitHub API docs: http://developer.github.com/v3/repos/hooks/#delete-a-hook

func (*RepositoriesService) DeleteKey

func (s *RepositoriesService) DeleteKey(owner string, repo string, id int) (*Response, error)

DeleteKey deletes a deploy key.

GitHub API docs: http://developer.github.com/v3/repos/keys/#delete

func (*RepositoriesService) DeleteRelease

func (s *RepositoriesService) DeleteRelease(owner, repo string, id int) (*Response, error)

DeleteRelease delete a single release from a repository.

GitHub API docs : http://developer.github.com/v3/repos/releases/#delete-a-release

func (*RepositoriesService) DeleteReleaseAsset

func (s *RepositoriesService) DeleteReleaseAsset(owner, repo string, id int) (*Response, error)

DeleteReleaseAsset delete a single release asset from a repository.

GitHub API docs : http://developer.github.com/v3/repos/releases/#delete-a-release-asset

func (*RepositoriesService) DownloadContents

func (s *RepositoriesService) DownloadContents(owner, repo, filepath string, opt *RepositoryContentGetOptions) (io.ReadCloser, error)

DownloadContents returns an io.ReadCloser that reads the contents of the specified file. This function will work with files of any size, as opposed to GetContents which is limited to 1 Mb files. It is the caller's responsibility to close the ReadCloser.

func (*RepositoriesService) Edit

func (s *RepositoriesService) Edit(owner, repo string, repository *Repository) (*Repository, *Response, error)

Edit updates a repository.

GitHub API docs: http://developer.github.com/v3/repos/#edit

func (*RepositoriesService) EditHook

func (s *RepositoriesService) EditHook(owner, repo string, id int, hook *Hook) (*Hook, *Response, error)

EditHook updates a specified Hook.

GitHub API docs: http://developer.github.com/v3/repos/hooks/#edit-a-hook

func (*RepositoriesService) EditKey

func (s *RepositoriesService) EditKey(owner string, repo string, id int, key *Key) (*Key, *Response, error)

EditKey edits a deploy key.

GitHub API docs: http://developer.github.com/v3/repos/keys/#edit

func (*RepositoriesService) EditRelease

func (s *RepositoriesService) EditRelease(owner, repo string, id int, release *RepositoryRelease) (*RepositoryRelease, *Response, error)

EditRelease edits a repository release.

GitHub API docs : http://developer.github.com/v3/repos/releases/#edit-a-release

func (*RepositoriesService) EditReleaseAsset

func (s *RepositoriesService) EditReleaseAsset(owner, repo string, id int, release *ReleaseAsset) (*ReleaseAsset, *Response, error)

EditReleaseAsset edits a repository release asset.

GitHub API docs : http://developer.github.com/v3/repos/releases/#edit-a-release-asset

func (*RepositoriesService) Get

func (s *RepositoriesService) Get(owner, repo string) (*Repository, *Response, error)

Get fetches a repository.

GitHub API docs: http://developer.github.com/v3/repos/#get

func (s *RepositoriesService) GetArchiveLink(owner, repo string, archiveformat archiveFormat, opt *RepositoryContentGetOptions) (*url.URL, *Response, error)

GetArchiveLink returns an URL to download a tarball or zipball archive for a repository. The archiveFormat can be specified by either the github.Tarball or github.Zipball constant.

GitHub API docs: http://developer.github.com/v3/repos/contents/#get-archive-link

func (*RepositoriesService) GetBranch

func (s *RepositoriesService) GetBranch(owner, repo, branch string) (*Branch, *Response, error)

GetBranch gets the specified branch for a repository.

GitHub API docs: https://developer.github.com/v3/repos/#get-branch

func (*RepositoriesService) GetCombinedStatus

func (s *RepositoriesService) GetCombinedStatus(owner, repo, ref string, opt *ListOptions) (*CombinedStatus, *Response, error)

GetCombinedStatus returns the combined status of a repository at the specified reference. ref can be a SHA, a branch name, or a tag name.

GitHub API docs: https://developer.github.com/v3/repos/statuses/#get-the-combined-status-for-a-specific-ref

func (*RepositoriesService) GetComment

func (s *RepositoriesService) GetComment(owner, repo string, id int) (*RepositoryComment, *Response, error)

GetComment gets a single comment from a repository.

GitHub API docs: http://developer.github.com/v3/repos/comments/#get-a-single-commit-comment

func (*RepositoriesService) GetCommit

func (s *RepositoriesService) GetCommit(owner, repo, sha string) (*RepositoryCommit, *Response, error)

GetCommit fetches the specified commit, including all details about it. todo: support media formats - https://github.com/google/go-github/issues/6

GitHub API docs: http://developer.github.com/v3/repos/commits/#get-a-single-commit See also: http://developer.github.com//v3/git/commits/#get-a-single-commit provides the same functionality

func (*RepositoriesService) GetContents

func (s *RepositoriesService) GetContents(owner, repo, path string, opt *RepositoryContentGetOptions) (fileContent *RepositoryContent,
	directoryContent []*RepositoryContent, resp *Response, err error)

GetContents can return either the metadata and content of a single file (when path references a file) or the metadata of all the files and/or subdirectories of a directory (when path references a directory). To make it easy to distinguish between both result types and to mimic the API as much as possible, both result types will be returned but only one will contain a value and the other will be nil.

GitHub API docs: http://developer.github.com/v3/repos/contents/#get-contents

func (*RepositoriesService) GetHook

func (s *RepositoriesService) GetHook(owner, repo string, id int) (*Hook, *Response, error)

GetHook returns a single specified Hook.

GitHub API docs: http://developer.github.com/v3/repos/hooks/#get-single-hook

func (*RepositoriesService) GetKey

func (s *RepositoriesService) GetKey(owner string, repo string, id int) (*Key, *Response, error)

GetKey fetches a single deploy key.

GitHub API docs: http://developer.github.com/v3/repos/keys/#get

func (*RepositoriesService) GetLatestPagesBuild

func (s *RepositoriesService) GetLatestPagesBuild(owner string, repo string) (*PagesBuild, *Response, error)

GetLatestPagesBuild fetches the latest build information for a GitHub pages site.

GitHub API docs: https://developer.github.com/v3/repos/pages/#list-latest-pages-build

func (*RepositoriesService) GetPagesInfo

func (s *RepositoriesService) GetPagesInfo(owner string, repo string) (*Pages, *Response, error)

GetPagesInfo fetches information about a GitHub Pages site.

GitHub API docs: https://developer.github.com/v3/repos/pages/#get-information-about-a-pages-site

func (*RepositoriesService) GetReadme

GetReadme gets the Readme file for the repository.

GitHub API docs: http://developer.github.com/v3/repos/contents/#get-the-readme

func (*RepositoriesService) GetRelease

func (s *RepositoriesService) GetRelease(owner, repo string, id int) (*RepositoryRelease, *Response, error)

GetRelease fetches a single release.

GitHub API docs: http://developer.github.com/v3/repos/releases/#get-a-single-release

func (*RepositoriesService) GetReleaseAsset

func (s *RepositoriesService) GetReleaseAsset(owner, repo string, id int) (*ReleaseAsset, *Response, error)

GetReleaseAsset fetches a single release asset.

GitHub API docs : http://developer.github.com/v3/repos/releases/#get-a-single-release-asset

func (*RepositoriesService) IsCollaborator

func (s *RepositoriesService) IsCollaborator(owner, repo, user string) (bool, *Response, error)

IsCollaborator checks whether the specified Github user has collaborator access to the given repo. Note: This will return false if the user is not a collaborator OR the user is not a GitHub user.

GitHub API docs: http://developer.github.com/v3/repos/collaborators/#get

func (*RepositoriesService) List

List the repositories for a user. Passing the empty string will list repositories for the authenticated user.

GitHub API docs: http://developer.github.com/v3/repos/#list-user-repositories

func (*RepositoriesService) ListAll

ListAll lists all GitHub repositories in the order that they were created.

GitHub API docs: http://developer.github.com/v3/repos/#list-all-public-repositories

func (*RepositoriesService) ListBranches

func (s *RepositoriesService) ListBranches(owner string, repo string, opt *ListOptions) ([]Branch, *Response, error)

ListBranches lists branches for the specified repository.

GitHub API docs: http://developer.github.com/v3/repos/#list-branches

func (*RepositoriesService) ListByOrg

ListByOrg lists the repositories for an organization.

GitHub API docs: http://developer.github.com/v3/repos/#list-organization-repositories

func (*RepositoriesService) ListCodeFrequency

func (s *RepositoriesService) ListCodeFrequency(owner, repo string) ([]WeeklyStats, *Response, error)

ListCodeFrequency returns a weekly aggregate of the number of additions and deletions pushed to a repository. Returned WeeklyStats will contain additiona and deletions, but not total commits.

GitHub API Docs: https://developer.github.com/v3/repos/statistics/#code-frequency

func (*RepositoriesService) ListCollaborators

func (s *RepositoriesService) ListCollaborators(owner, repo string, opt *ListOptions) ([]User, *Response, error)

ListCollaborators lists the Github users that have access to the repository.

GitHub API docs: http://developer.github.com/v3/repos/collaborators/#list

func (*RepositoriesService) ListComments

func (s *RepositoriesService) ListComments(owner, repo string, opt *ListOptions) ([]RepositoryComment, *Response, error)

ListComments lists all the comments for the repository.

GitHub API docs: http://developer.github.com/v3/repos/comments/#list-commit-comments-for-a-repository

func (*RepositoriesService) ListCommitActivity

func (s *RepositoriesService) ListCommitActivity(owner, repo string) ([]WeeklyCommitActivity, *Response, error)

ListCommitActivity returns the last year of commit activity grouped by week. The days array is a group of commits per day, starting on Sunday.

If this is the first time these statistics are requested for the given repository, this method will return a non-nil error and a status code of 202. This is because this is the status that github returns to signify that it is now computing the requested statistics. A follow up request, after a delay of a second or so, should result in a successful request.

GitHub API Docs: https://developer.github.com/v3/repos/statistics/#commit-activity

func (*RepositoriesService) ListCommitComments

func (s *RepositoriesService) ListCommitComments(owner, repo, sha string, opt *ListOptions) ([]RepositoryComment, *Response, error)

ListCommitComments lists all the comments for a given commit SHA.

GitHub API docs: http://developer.github.com/v3/repos/comments/#list-comments-for-a-single-commit

func (*RepositoriesService) ListCommits

func (s *RepositoriesService) ListCommits(owner, repo string, opt *CommitsListOptions) ([]RepositoryCommit, *Response, error)

ListCommits lists the commits of a repository.

GitHub API docs: http://developer.github.com/v3/repos/commits/#list

func (*RepositoriesService) ListContributors

func (s *RepositoriesService) ListContributors(owner string, repository string, opt *ListContributorsOptions) ([]Contributor, *Response, error)

ListContributors lists contributors for a repository.

GitHub API docs: http://developer.github.com/v3/repos/#list-contributors

func (*RepositoriesService) ListContributorsStats

func (s *RepositoriesService) ListContributorsStats(owner, repo string) ([]ContributorStats, *Response, error)

ListContributorsStats gets a repo's contributor list with additions, deletions and commit counts.

If this is the first time these statistics are requested for the given repository, this method will return a non-nil error and a status code of 202. This is because this is the status that github returns to signify that it is now computing the requested statistics. A follow up request, after a delay of a second or so, should result in a successful request.

GitHub API Docs: https://developer.github.com/v3/repos/statistics/#contributors

func (*RepositoriesService) ListDeploymentStatuses

func (s *RepositoriesService) ListDeploymentStatuses(owner, repo string, deployment int, opt *ListOptions) ([]DeploymentStatus, *Response, error)

ListDeploymentStatuses lists the statuses of a given deployment of a repository.

GitHub API docs: https://developer.github.com/v3/repos/deployments/#list-deployment-statuses

func (*RepositoriesService) ListDeployments

func (s *RepositoriesService) ListDeployments(owner, repo string, opt *DeploymentsListOptions) ([]Deployment, *Response, error)

ListDeployments lists the deployments of a repository.

GitHub API docs: https://developer.github.com/v3/repos/deployments/#list-deployments

func (*RepositoriesService) ListForks

func (s *RepositoriesService) ListForks(owner, repo string, opt *RepositoryListForksOptions) ([]Repository, *Response, error)

ListForks lists the forks of the specified repository.

GitHub API docs: http://developer.github.com/v3/repos/forks/#list-forks

func (*RepositoriesService) ListHooks

func (s *RepositoriesService) ListHooks(owner, repo string, opt *ListOptions) ([]Hook, *Response, error)

ListHooks lists all Hooks for the specified repository.

GitHub API docs: http://developer.github.com/v3/repos/hooks/#list

func (*RepositoriesService) ListKeys

func (s *RepositoriesService) ListKeys(owner string, repo string, opt *ListOptions) ([]Key, *Response, error)

ListKeys lists the deploy keys for a repository.

GitHub API docs: http://developer.github.com/v3/repos/keys/#list

func (*RepositoriesService) ListLanguages

func (s *RepositoriesService) ListLanguages(owner string, repo string) (map[string]int, *Response, error)

ListLanguages lists languages for the specified repository. The returned map specifies the languages and the number of bytes of code written in that language. For example:

{
  "C": 78769,
  "Python": 7769
}

GitHub API Docs: http://developer.github.com/v3/repos/#list-languages

func (*RepositoriesService) ListPagesBuilds

func (s *RepositoriesService) ListPagesBuilds(owner string, repo string) ([]PagesBuild, *Response, error)

ListPagesBuilds lists the builds for a GitHub Pages site.

GitHub API docs: https://developer.github.com/v3/repos/pages/#list-pages-builds

func (*RepositoriesService) ListParticipation

func (s *RepositoriesService) ListParticipation(owner, repo string) (*RepositoryParticipation, *Response, error)

ListParticipation returns the total commit counts for the 'owner' and total commit counts in 'all'. 'all' is everyone combined, including the 'owner' in the last 52 weeks. If you’d like to get the commit counts for non-owners, you can subtract 'all' from 'owner'.

The array order is oldest week (index 0) to most recent week.

If this is the first time these statistics are requested for the given repository, this method will return a non-nil error and a status code of 202. This is because this is the status that github returns to signify that it is now computing the requested statistics. A follow up request, after a delay of a second or so, should result in a successful request.

GitHub API Docs: https://developer.github.com/v3/repos/statistics/#participation

func (*RepositoriesService) ListPunchCard

func (s *RepositoriesService) ListPunchCard(owner, repo string) ([]PunchCard, *Response, error)

ListPunchCard returns the number of commits per hour in each day.

GitHub API Docs: https://developer.github.com/v3/repos/statistics/#punch-card

func (*RepositoriesService) ListReleaseAssets

func (s *RepositoriesService) ListReleaseAssets(owner, repo string, id int, opt *ListOptions) ([]ReleaseAsset, *Response, error)

ListReleaseAssets lists the release's assets.

GitHub API docs : http://developer.github.com/v3/repos/releases/#list-assets-for-a-release

func (*RepositoriesService) ListReleases

func (s *RepositoriesService) ListReleases(owner, repo string, opt *ListOptions) ([]RepositoryRelease, *Response, error)

ListReleases lists the releases for a repository.

GitHub API docs: http://developer.github.com/v3/repos/releases/#list-releases-for-a-repository

func (*RepositoriesService) ListServiceHooks

func (s *RepositoriesService) ListServiceHooks() ([]ServiceHook, *Response, error)

ListServiceHooks is deprecated. Use Client.ListServiceHooks instead.

func (*RepositoriesService) ListStatuses

func (s *RepositoriesService) ListStatuses(owner, repo, ref string, opt *ListOptions) ([]RepoStatus, *Response, error)

ListStatuses lists the statuses of a repository at the specified reference. ref can be a SHA, a branch name, or a tag name.

GitHub API docs: http://developer.github.com/v3/repos/statuses/#list-statuses-for-a-specific-ref

func (*RepositoriesService) ListTags

func (s *RepositoriesService) ListTags(owner string, repo string, opt *ListOptions) ([]RepositoryTag, *Response, error)

ListTags lists tags for the specified repository.

GitHub API docs: https://developer.github.com/v3/repos/#list-tags

func (*RepositoriesService) ListTeams

func (s *RepositoriesService) ListTeams(owner string, repo string, opt *ListOptions) ([]Team, *Response, error)

ListTeams lists the teams for the specified repository.

GitHub API docs: https://developer.github.com/v3/repos/#list-teams

func (*RepositoriesService) Merge

func (s *RepositoriesService) Merge(owner, repo string, request *RepositoryMergeRequest) (*RepositoryCommit, *Response, error)

Merge a branch in the specified repository.

GitHub API docs: https://developer.github.com/v3/repos/merging/#perform-a-merge

func (*RepositoriesService) PingHook

func (s *RepositoriesService) PingHook(owner, repo string, id int) (*Response, error)

PingHook triggers a 'ping' event to be sent to the Hook.

GitHub API docs: https://developer.github.com/v3/repos/hooks/#ping-a-hook

func (*RepositoriesService) RemoveCollaborator

func (s *RepositoriesService) RemoveCollaborator(owner, repo, user string) (*Response, error)

RemoveCollaborator removes the specified Github user as collaborator from the given repo. Note: Does not return error if a valid user that is not a collaborator is removed.

GitHub API docs: http://developer.github.com/v3/repos/collaborators/#remove-collaborator

func (*RepositoriesService) TestHook

func (s *RepositoriesService) TestHook(owner, repo string, id int) (*Response, error)

TestHook triggers a test Hook by github.

GitHub API docs: http://developer.github.com/v3/repos/hooks/#test-a-push-hook

func (*RepositoriesService) UpdateComment

func (s *RepositoriesService) UpdateComment(owner, repo string, id int, comment *RepositoryComment) (*RepositoryComment, *Response, error)

UpdateComment updates the body of a single comment.

GitHub API docs: http://developer.github.com/v3/repos/comments/#update-a-commit-comment

func (*RepositoriesService) UpdateFile

UpdateFile updates a file in a repository at the given path and returns the commit and file metadata. Requires the blob SHA of the file being updated.

GitHub API docs: http://developer.github.com/v3/repos/contents/#update-a-file

func (*RepositoriesService) UploadReleaseAsset

func (s *RepositoriesService) UploadReleaseAsset(owner, repo string, id int, opt *UploadOptions, file *os.File) (*ReleaseAsset, *Response, error)

UploadReleaseAsset creates an asset by uploading a file into a release repository. To upload assets that cannot be represented by an os.File, call NewUploadRequest directly.

GitHub API docs : http://developer.github.com/v3/repos/releases/#upload-a-release-asset

type Repository

type Repository struct {
	ID               *int             `json:"id,omitempty"`
	Owner            *User            `json:"owner,omitempty"`
	Name             *string          `json:"name,omitempty"`
	FullName         *string          `json:"full_name,omitempty"`
	Description      *string          `json:"description,omitempty"`
	Homepage         *string          `json:"homepage,omitempty"`
	DefaultBranch    *string          `json:"default_branch,omitempty"`
	MasterBranch     *string          `json:"master_branch,omitempty"`
	CreatedAt        *Timestamp       `json:"created_at,omitempty"`
	PushedAt         *Timestamp       `json:"pushed_at,omitempty"`
	UpdatedAt        *Timestamp       `json:"updated_at,omitempty"`
	HTMLURL          *string          `json:"html_url,omitempty"`
	CloneURL         *string          `json:"clone_url,omitempty"`
	GitURL           *string          `json:"git_url,omitempty"`
	MirrorURL        *string          `json:"mirror_url,omitempty"`
	SSHURL           *string          `json:"ssh_url,omitempty"`
	SVNURL           *string          `json:"svn_url,omitempty"`
	Language         *string          `json:"language,omitempty"`
	Fork             *bool            `json:"fork"`
	ForksCount       *int             `json:"forks_count,omitempty"`
	NetworkCount     *int             `json:"network_count,omitempty"`
	OpenIssuesCount  *int             `json:"open_issues_count,omitempty"`
	StargazersCount  *int             `json:"stargazers_count,omitempty"`
	SubscribersCount *int             `json:"subscribers_count,omitempty"`
	WatchersCount    *int             `json:"watchers_count,omitempty"`
	Size             *int             `json:"size,omitempty"`
	AutoInit         *bool            `json:"auto_init,omitempty"`
	Parent           *Repository      `json:"parent,omitempty"`
	Source           *Repository      `json:"source,omitempty"`
	Organization     *Organization    `json:"organization,omitempty"`
	Permissions      *map[string]bool `json:"permissions,omitempty"`

	// Only provided when using RepositoriesService.Get while in preview
	License *License `json:"license,omitempty"`

	// Additional mutable fields when creating and editing a repository
	Private      *bool `json:"private"`
	HasIssues    *bool `json:"has_issues"`
	HasWiki      *bool `json:"has_wiki"`
	HasDownloads *bool `json:"has_downloads"`
	// Creating an organization repository. Required for non-owners.
	TeamID *int `json:"team_id"`

	// API URLs
	URL              *string `json:"url,omitempty"`
	ArchiveURL       *string `json:"archive_url,omitempty"`
	AssigneesURL     *string `json:"assignees_url,omitempty"`
	BlobsURL         *string `json:"blobs_url,omitempty"`
	BranchesURL      *string `json:"branches_url,omitempty"`
	CollaboratorsURL *string `json:"collaborators_url,omitempty"`
	CommentsURL      *string `json:"comments_url,omitempty"`
	CommitsURL       *string `json:"commits_url,omitempty"`
	CompareURL       *string `json:"compare_url,omitempty"`
	ContentsURL      *string `json:"contents_url,omitempty"`
	ContributorsURL  *string `json:"contributors_url,omitempty"`
	DownloadsURL     *string `json:"downloads_url,omitempty"`
	EventsURL        *string `json:"events_url,omitempty"`
	ForksURL         *string `json:"forks_url,omitempty"`
	GitCommitsURL    *string `json:"git_commits_url,omitempty"`
	GitRefsURL       *string `json:"git_refs_url,omitempty"`
	GitTagsURL       *string `json:"git_tags_url,omitempty"`
	HooksURL         *string `json:"hooks_url,omitempty"`
	IssueCommentURL  *string `json:"issue_comment_url,omitempty"`
	IssueEventsURL   *string `json:"issue_events_url,omitempty"`
	IssuesURL        *string `json:"issues_url,omitempty"`
	KeysURL          *string `json:"keys_url,omitempty"`
	LabelsURL        *string `json:"labels_url,omitempty"`
	LanguagesURL     *string `json:"languages_url,omitempty"`
	MergesURL        *string `json:"merges_url,omitempty"`
	MilestonesURL    *string `json:"milestones_url,omitempty"`
	NotificationsURL *string `json:"notifications_url,omitempty"`
	PullsURL         *string `json:"pulls_url,omitempty"`
	ReleasesURL      *string `json:"releases_url,omitempty"`
	StargazersURL    *string `json:"stargazers_url,omitempty"`
	StatusesURL      *string `json:"statuses_url,omitempty"`
	SubscribersURL   *string `json:"subscribers_url,omitempty"`
	SubscriptionURL  *string `json:"subscription_url,omitempty"`
	TagsURL          *string `json:"tags_url,omitempty"`
	TreesURL         *string `json:"trees_url,omitempty"`
	TeamsURL         *string `json:"teams_url,omitempty"`

	// TextMatches is only populated from search results that request text matches
	// See: search.go and https://developer.github.com/v3/search/#text-match-metadata
	TextMatches []TextMatch `json:"text_matches,omitempty"`
}

Repository represents a GitHub repository.

func (Repository) String

func (r Repository) String() string

type RepositoryComment

type RepositoryComment struct {
	HTMLURL   *string    `json:"html_url,omitempty"`
	URL       *string    `json:"url,omitempty"`
	ID        *int       `json:"id,omitempty"`
	CommitID  *string    `json:"commit_id,omitempty"`
	User      *User      `json:"user,omitempty"`
	CreatedAt *time.Time `json:"created_at,omitempty"`
	UpdatedAt *time.Time `json:"updated_at,omitempty"`

	// User-mutable fields
	Body *string `json:"body"`
	// User-initialized fields
	Path     *string `json:"path,omitempty"`
	Position *int    `json:"position,omitempty"`
}

RepositoryComment represents a comment for a commit, file, or line in a repository.

func (RepositoryComment) String

func (r RepositoryComment) String() string

type RepositoryCommit

type RepositoryCommit struct {
	SHA       *string  `json:"sha,omitempty"`
	Commit    *Commit  `json:"commit,omitempty"`
	Author    *User    `json:"author,omitempty"`
	Committer *User    `json:"committer,omitempty"`
	Parents   []Commit `json:"parents,omitempty"`
	Message   *string  `json:"message,omitempty"`
	HTMLURL   *string  `json:"html_url,omitempty"`

	// Details about how many changes were made in this commit. Only filled in during GetCommit!
	Stats *CommitStats `json:"stats,omitempty"`
	// Details about which files, and how this commit touched. Only filled in during GetCommit!
	Files []CommitFile `json:"files,omitempty"`
}

RepositoryCommit represents a commit in a repo. Note that it's wrapping a Commit, so author/committer information is in two places, but contain different details about them: in RepositoryCommit "github details", in Commit - "git details".

func (RepositoryCommit) String

func (r RepositoryCommit) String() string

type RepositoryContent

type RepositoryContent struct {
	Type        *string `json:"type,omitempty"`
	Encoding    *string `json:"encoding,omitempty"`
	Size        *int    `json:"size,omitempty"`
	Name        *string `json:"name,omitempty"`
	Path        *string `json:"path,omitempty"`
	Content     *string `json:"content,omitempty"`
	SHA         *string `json:"sha,omitempty"`
	URL         *string `json:"url,omitempty"`
	GitURL      *string `json:"git_url,omitempty"`
	HTMLURL     *string `json:"html_url,omitempty"`
	DownloadURL *string `json:"download_url,omitempty"`
}

RepositoryContent represents a file or directory in a github repository.

func (*RepositoryContent) Decode

func (r *RepositoryContent) Decode() ([]byte, error)

Decode decodes the file content if it is base64 encoded.

func (RepositoryContent) String

func (r RepositoryContent) String() string

type RepositoryContentFileOptions

type RepositoryContentFileOptions struct {
	Message   *string       `json:"message,omitempty"`
	Content   []byte        `json:"content,omitempty"`
	SHA       *string       `json:"sha,omitempty"`
	Branch    *string       `json:"branch,omitempty"`
	Author    *CommitAuthor `json:"author,omitempty"`
	Committer *CommitAuthor `json:"committer,omitempty"`
}

RepositoryContentFileOptions specifies optional parameters for CreateFile, UpdateFile, and DeleteFile.

type RepositoryContentGetOptions

type RepositoryContentGetOptions struct {
	Ref string `url:"ref,omitempty"`
}

RepositoryContentGetOptions represents an optional ref parameter, which can be a SHA, branch, or tag

type RepositoryContentResponse

type RepositoryContentResponse struct {
	Content *RepositoryContent `json:"content,omitempty"`
	Commit  `json:"commit,omitempty"`
}

RepositoryContentResponse holds the parsed response from CreateFile, UpdateFile, and DeleteFile.

type RepositoryCreateForkOptions

type RepositoryCreateForkOptions struct {
	// The organization to fork the repository into.
	Organization string `url:"organization,omitempty"`
}

RepositoryCreateForkOptions specifies the optional parameters to the RepositoriesService.CreateFork method.

type RepositoryListAllOptions

type RepositoryListAllOptions struct {
	// ID of the last repository seen
	Since int `url:"since,omitempty"`

	ListOptions
}

RepositoryListAllOptions specifies the optional parameters to the RepositoriesService.ListAll method.

type RepositoryListByOrgOptions

type RepositoryListByOrgOptions struct {
	// Type of repositories to list.  Possible values are: all, public, private,
	// forks, sources, member.  Default is "all".
	Type string `url:"type,omitempty"`

	ListOptions
}

RepositoryListByOrgOptions specifies the optional parameters to the RepositoriesService.ListByOrg method.

type RepositoryListForksOptions

type RepositoryListForksOptions struct {
	// How to sort the forks list.  Possible values are: newest, oldest,
	// watchers.  Default is "newest".
	Sort string `url:"sort,omitempty"`

	ListOptions
}

RepositoryListForksOptions specifies the optional parameters to the RepositoriesService.ListForks method.

type RepositoryListOptions

type RepositoryListOptions struct {
	// Type of repositories to list.  Possible values are: all, owner, public,
	// private, member.  Default is "all".
	Type string `url:"type,omitempty"`

	// How to sort the repository list.  Possible values are: created, updated,
	// pushed, full_name.  Default is "full_name".
	Sort string `url:"sort,omitempty"`

	// Direction in which to sort repositories.  Possible values are: asc, desc.
	// Default is "asc" when sort is "full_name", otherwise default is "desc".
	Direction string `url:"direction,omitempty"`

	ListOptions
}

RepositoryListOptions specifies the optional parameters to the RepositoriesService.List method.

type RepositoryMergeRequest

type RepositoryMergeRequest struct {
	Base          *string `json:"base,omitempty"`
	Head          *string `json:"head,omitempty"`
	CommitMessage *string `json:"commit_message,omitempty"`
}

RepositoryMergeRequest represents a request to merge a branch in a repository.

type RepositoryParticipation

type RepositoryParticipation struct {
	All   []int `json:"all,omitempty"`
	Owner []int `json:"owner,omitempty"`
}

RepositoryParticipation is the number of commits by everyone who has contributed to the repository (including the owner) as well as the number of commits by the owner themself.

func (RepositoryParticipation) String

func (r RepositoryParticipation) String() string

type RepositoryRelease

type RepositoryRelease struct {
	ID              *int           `json:"id,omitempty"`
	TagName         *string        `json:"tag_name,omitempty"`
	TargetCommitish *string        `json:"target_commitish,omitempty"`
	Name            *string        `json:"name,omitempty"`
	Body            *string        `json:"body,omitempty"`
	Draft           *bool          `json:"draft,omitempty"`
	Prerelease      *bool          `json:"prerelease,omitempty"`
	CreatedAt       *Timestamp     `json:"created_at,omitempty"`
	PublishedAt     *Timestamp     `json:"published_at,omitempty"`
	URL             *string        `json:"url,omitempty"`
	HTMLURL         *string        `json:"html_url,omitempty"`
	AssetsURL       *string        `json:"assets_url,omitempty"`
	Assets          []ReleaseAsset `json:"assets,omitempty"`
	UploadURL       *string        `json:"upload_url,omitempty"`
	ZipballURL      *string        `json:"zipball_url,omitempty"`
	TarballURL      *string        `json:"tarball_url,omitempty"`
}

RepositoryRelease represents a GitHub release in a repository.

func (RepositoryRelease) String

func (r RepositoryRelease) String() string

type RepositoryTag

type RepositoryTag struct {
	Name       *string `json:"name,omitempty"`
	Commit     *Commit `json:"commit,omitempty"`
	ZipballURL *string `json:"zipball_url,omitempty"`
	TarballURL *string `json:"tarball_url,omitempty"`
}

RepositoryTag represents a repository tag.

type Response

type Response struct {
	*http.Response

	NextPage  int
	PrevPage  int
	FirstPage int
	LastPage  int

	Rate
}

Response is a GitHub API response. This wraps the standard http.Response returned from GitHub and provides convenient access to things like pagination links.

type SearchOptions

type SearchOptions struct {
	// How to sort the search results.  Possible values are:
	//   - for repositories: stars, fork, updated
	//   - for code: indexed
	//   - for issues: comments, created, updated
	//   - for users: followers, repositories, joined
	//
	// Default is to sort by best match.
	Sort string `url:"sort,omitempty"`

	// Sort order if sort parameter is provided. Possible values are: asc,
	// desc. Default is desc.
	Order string `url:"order,omitempty"`

	// Whether to retrieve text match metadata with a query
	TextMatch bool `url:"-"`

	ListOptions
}

SearchOptions specifies optional parameters to the SearchService methods.

type SearchService

type SearchService struct {
	// contains filtered or unexported fields
}

SearchService provides access to the search related functions in the GitHub API.

GitHub API docs: http://developer.github.com/v3/search/

func (*SearchService) Code

func (s *SearchService) Code(query string, opt *SearchOptions) (*CodeSearchResult, *Response, error)

Code searches code via various criteria.

GitHub API docs: http://developer.github.com/v3/search/#search-code

func (*SearchService) Issues

func (s *SearchService) Issues(query string, opt *SearchOptions) (*IssuesSearchResult, *Response, error)

Issues searches issues via various criteria.

GitHub API docs: http://developer.github.com/v3/search/#search-issues

func (*SearchService) Repositories

func (s *SearchService) Repositories(query string, opt *SearchOptions) (*RepositoriesSearchResult, *Response, error)

Repositories searches repositories via various criteria.

GitHub API docs: http://developer.github.com/v3/search/#search-repositories

func (*SearchService) Users

func (s *SearchService) Users(query string, opt *SearchOptions) (*UsersSearchResult, *Response, error)

Users searches users via various criteria.

GitHub API docs: http://developer.github.com/v3/search/#search-users

type ServiceHook

type ServiceHook struct {
	Name            *string    `json:"name,omitempty"`
	Events          []string   `json:"events,omitempty"`
	SupportedEvents []string   `json:"supported_events,omitempty"`
	Schema          [][]string `json:"schema,omitempty"`
}

ServiceHook represents a hook that has configuration settings, a list of available events, and default events.

func (*ServiceHook) String

func (s *ServiceHook) String() string

type Subscription

type Subscription struct {
	Subscribed *bool      `json:"subscribed,omitempty"`
	Ignored    *bool      `json:"ignored,omitempty"`
	Reason     *string    `json:"reason,omitempty"`
	CreatedAt  *Timestamp `json:"created_at,omitempty"`
	URL        *string    `json:"url,omitempty"`

	// only populated for repository subscriptions
	RepositoryURL *string `json:"repository_url,omitempty"`

	// only populated for thread subscriptions
	ThreadURL *string `json:"thread_url,omitempty"`
}

Subscription identifies a repository or thread subscription.

type Tag

type Tag struct {
	Tag     *string       `json:"tag,omitempty"`
	SHA     *string       `json:"sha,omitempty"`
	URL     *string       `json:"url,omitempty"`
	Message *string       `json:"message,omitempty"`
	Tagger  *CommitAuthor `json:"tagger,omitempty"`
	Object  *GitObject    `json:"object,omitempty"`
}

Tag represents a tag object.

type Team

type Team struct {
	ID           *int          `json:"id,omitempty"`
	Name         *string       `json:"name,omitempty"`
	URL          *string       `json:"url,omitempty"`
	Slug         *string       `json:"slug,omitempty"`
	Permission   *string       `json:"permission,omitempty"`
	MembersCount *int          `json:"members_count,omitempty"`
	ReposCount   *int          `json:"repos_count,omitempty"`
	Organization *Organization `json:"organization,omitempty"`
}

Team represents a team within a GitHub organization. Teams are used to manage access to an organization's repositories.

func (Team) String

func (t Team) String() string

type TextMatch

type TextMatch struct {
	ObjectURL  *string `json:"object_url,omitempty"`
	ObjectType *string `json:"object_type,omitempty"`
	Property   *string `json:"property,omitempty"`
	Fragment   *string `json:"fragment,omitempty"`
	Matches    []Match `json:"matches,omitempty"`
}

TextMatch represents a text match for a SearchResult

func (TextMatch) String

func (tm TextMatch) String() string

type Timestamp

type Timestamp struct {
	time.Time
}

Timestamp represents a time that can be unmarshalled from a JSON string formatted as either an RFC3339 or Unix timestamp. This is necessary for some fields since the GitHub API is inconsistent in how it represents times. All exported methods of time.Time can be called on Timestamp.

func (Timestamp) Equal

func (t Timestamp) Equal(u Timestamp) bool

Equal reports whether t and u are equal based on time.Equal

func (Timestamp) String

func (t Timestamp) String() string

func (*Timestamp) UnmarshalJSON

func (t *Timestamp) UnmarshalJSON(data []byte) (err error)

UnmarshalJSON implements the json.Unmarshaler interface. Time is expected in RFC3339 or Unix format.

type Tree

type Tree struct {
	SHA     *string     `json:"sha,omitempty"`
	Entries []TreeEntry `json:"tree,omitempty"`
}

Tree represents a GitHub tree.

func (Tree) String

func (t Tree) String() string

type TreeEntry

type TreeEntry struct {
	SHA     *string `json:"sha,omitempty"`
	Path    *string `json:"path,omitempty"`
	Mode    *string `json:"mode,omitempty"`
	Type    *string `json:"type,omitempty"`
	Size    *int    `json:"size,omitempty"`
	Content *string `json:"content,omitempty"`
}

TreeEntry represents the contents of a tree structure. TreeEntry can represent either a blob, a commit (in the case of a submodule), or another tree.

func (TreeEntry) String

func (t TreeEntry) String() string

type UnauthenticatedRateLimitedTransport

type UnauthenticatedRateLimitedTransport struct {
	// ClientID is the GitHub OAuth client ID of the current application, which
	// can be found by selecting its entry in the list at
	// https://github.com/settings/applications.
	ClientID string

	// ClientSecret is the GitHub OAuth client secret of the current
	// application.
	ClientSecret string

	// Transport is the underlying HTTP transport to use when making requests.
	// It will default to http.DefaultTransport if nil.
	Transport http.RoundTripper
}

UnauthenticatedRateLimitedTransport allows you to make unauthenticated calls that need to use a higher rate limit associated with your OAuth application.

t := &github.UnauthenticatedRateLimitedTransport{
	ClientID:     "your app's client ID",
	ClientSecret: "your app's client secret",
}
client := github.NewClient(t.Client())

This will append the querystring params client_id=xxx&client_secret=yyy to all requests.

See http://developer.github.com/v3/#unauthenticated-rate-limited-requests for more information.

func (*UnauthenticatedRateLimitedTransport) Client

Client returns an *http.Client that makes requests which are subject to the rate limit of your OAuth application.

func (*UnauthenticatedRateLimitedTransport) RoundTrip

RoundTrip implements the RoundTripper interface.

type UploadOptions

type UploadOptions struct {
	Name string `url:"name,omitempty"`
}

UploadOptions specifies the parameters to methods that support uploads.

type User

type User struct {
	Login             *string    `json:"login,omitempty"`
	ID                *int       `json:"id,omitempty"`
	AvatarURL         *string    `json:"avatar_url,omitempty"`
	HTMLURL           *string    `json:"html_url,omitempty"`
	GravatarID        *string    `json:"gravatar_id,omitempty"`
	Name              *string    `json:"name,omitempty"`
	Company           *string    `json:"company,omitempty"`
	Blog              *string    `json:"blog,omitempty"`
	Location          *string    `json:"location,omitempty"`
	Email             *string    `json:"email,omitempty"`
	Hireable          *bool      `json:"hireable,omitempty"`
	Bio               *string    `json:"bio,omitempty"`
	PublicRepos       *int       `json:"public_repos,omitempty"`
	PublicGists       *int       `json:"public_gists,omitempty"`
	Followers         *int       `json:"followers,omitempty"`
	Following         *int       `json:"following,omitempty"`
	CreatedAt         *Timestamp `json:"created_at,omitempty"`
	UpdatedAt         *Timestamp `json:"updated_at,omitempty"`
	Type              *string    `json:"type,omitempty"`
	SiteAdmin         *bool      `json:"site_admin,omitempty"`
	TotalPrivateRepos *int       `json:"total_private_repos,omitempty"`
	OwnedPrivateRepos *int       `json:"owned_private_repos,omitempty"`
	PrivateGists      *int       `json:"private_gists,omitempty"`
	DiskUsage         *int       `json:"disk_usage,omitempty"`
	Collaborators     *int       `json:"collaborators,omitempty"`
	Plan              *Plan      `json:"plan,omitempty"`

	// API URLs
	URL               *string `json:"url,omitempty"`
	EventsURL         *string `json:"events_url,omitempty"`
	FollowingURL      *string `json:"following_url,omitempty"`
	FollowersURL      *string `json:"followers_url,omitempty"`
	GistsURL          *string `json:"gists_url,omitempty"`
	OrganizationsURL  *string `json:"organizations_url,omitempty"`
	ReceivedEventsURL *string `json:"received_events_url,omitempty"`
	ReposURL          *string `json:"repos_url,omitempty"`
	StarredURL        *string `json:"starred_url,omitempty"`
	SubscriptionsURL  *string `json:"subscriptions_url,omitempty"`

	// TextMatches is only populated from search results that request text matches
	// See: search.go and https://developer.github.com/v3/search/#text-match-metadata
	TextMatches []TextMatch `json:"text_matches,omitempty"`
}

User represents a GitHub user.

func (User) String

func (u User) String() string

type UserEmail

type UserEmail struct {
	Email    *string `json:"email,omitempty"`
	Primary  *bool   `json:"primary,omitempty"`
	Verified *bool   `json:"verified,omitempty"`
}

UserEmail represents user's email address

type UserListOptions

type UserListOptions struct {
	// ID of the last user seen
	Since int `url:"since,omitempty"`
}

UserListOptions specifies optional parameters to the UsersService.List method.

type UsersSearchResult

type UsersSearchResult struct {
	Total *int   `json:"total_count,omitempty"`
	Users []User `json:"items,omitempty"`
}

UsersSearchResult represents the result of an issues search.

type UsersService

type UsersService struct {
	// contains filtered or unexported fields
}

UsersService handles communication with the user related methods of the GitHub API.

GitHub API docs: http://developer.github.com/v3/users/

func (*UsersService) AddEmails

func (s *UsersService) AddEmails(emails []string) ([]UserEmail, *Response, error)

AddEmails adds email addresses of the authenticated user.

GitHub API docs: http://developer.github.com/v3/users/emails/#add-email-addresses

func (*UsersService) CreateKey

func (s *UsersService) CreateKey(key *Key) (*Key, *Response, error)

CreateKey adds a public key for the authenticated user.

GitHub API docs: http://developer.github.com/v3/users/keys/#create-a-public-key

func (*UsersService) DeleteEmails

func (s *UsersService) DeleteEmails(emails []string) (*Response, error)

DeleteEmails deletes email addresses from authenticated user.

GitHub API docs: http://developer.github.com/v3/users/emails/#delete-email-addresses

func (*UsersService) DeleteKey

func (s *UsersService) DeleteKey(id int) (*Response, error)

DeleteKey deletes a public key.

GitHub API docs: http://developer.github.com/v3/users/keys/#delete-a-public-key

func (*UsersService) DemoteSiteAdmin

func (s *UsersService) DemoteSiteAdmin(user string) (*Response, error)

DemoteSiteAdmin demotes a user from site administrator of a GitHub Enterprise instance.

GitHub API docs: https://developer.github.com/v3/users/administration/#demote-a-site-administrator-to-an-ordinary-user

func (*UsersService) Edit

func (s *UsersService) Edit(user *User) (*User, *Response, error)

Edit the authenticated user.

GitHub API docs: http://developer.github.com/v3/users/#update-the-authenticated-user

func (*UsersService) Follow

func (s *UsersService) Follow(user string) (*Response, error)

Follow will cause the authenticated user to follow the specified user.

GitHub API docs: http://developer.github.com/v3/users/followers/#follow-a-user

func (*UsersService) Get

func (s *UsersService) Get(user string) (*User, *Response, error)

Get fetches a user. Passing the empty string will fetch the authenticated user.

GitHub API docs: http://developer.github.com/v3/users/#get-a-single-user

func (*UsersService) GetKey

func (s *UsersService) GetKey(id int) (*Key, *Response, error)

GetKey fetches a single public key.

GitHub API docs: http://developer.github.com/v3/users/keys/#get-a-single-public-key

func (*UsersService) IsFollowing

func (s *UsersService) IsFollowing(user, target string) (bool, *Response, error)

IsFollowing checks if "user" is following "target". Passing the empty string for "user" will check if the authenticated user is following "target".

GitHub API docs: http://developer.github.com/v3/users/followers/#check-if-you-are-following-a-user

func (*UsersService) ListAll

func (s *UsersService) ListAll(opt *UserListOptions) ([]User, *Response, error)

ListAll lists all GitHub users.

GitHub API docs: http://developer.github.com/v3/users/#get-all-users

func (*UsersService) ListEmails

func (s *UsersService) ListEmails(opt *ListOptions) ([]UserEmail, *Response, error)

ListEmails lists all email addresses for the authenticated user.

GitHub API docs: http://developer.github.com/v3/users/emails/#list-email-addresses-for-a-user

func (*UsersService) ListFollowers

func (s *UsersService) ListFollowers(user string, opt *ListOptions) ([]User, *Response, error)

ListFollowers lists the followers for a user. Passing the empty string will fetch followers for the authenticated user.

GitHub API docs: http://developer.github.com/v3/users/followers/#list-followers-of-a-user

func (*UsersService) ListFollowing

func (s *UsersService) ListFollowing(user string, opt *ListOptions) ([]User, *Response, error)

ListFollowing lists the people that a user is following. Passing the empty string will list people the authenticated user is following.

GitHub API docs: http://developer.github.com/v3/users/followers/#list-users-followed-by-another-user

func (*UsersService) ListKeys

func (s *UsersService) ListKeys(user string, opt *ListOptions) ([]Key, *Response, error)

ListKeys lists the verified public keys for a user. Passing the empty string will fetch keys for the authenticated user.

GitHub API docs: http://developer.github.com/v3/users/keys/#list-public-keys-for-a-user

func (*UsersService) PromoteSiteAdmin

func (s *UsersService) PromoteSiteAdmin(user string) (*Response, error)

PromoteSiteAdmin promotes a user to a site administrator of a GitHub Enterprise instance.

GitHub API docs: https://developer.github.com/v3/users/administration/#promote-an-ordinary-user-to-a-site-administrator

func (*UsersService) Suspend

func (s *UsersService) Suspend(user string) (*Response, error)

Suspend a user on a GitHub Enterprise instance.

GitHub API docs: https://developer.github.com/v3/users/administration/#suspend-a-user

func (*UsersService) Unfollow

func (s *UsersService) Unfollow(user string) (*Response, error)

Unfollow will cause the authenticated user to unfollow the specified user.

GitHub API docs: http://developer.github.com/v3/users/followers/#unfollow-a-user

func (*UsersService) Unsuspend

func (s *UsersService) Unsuspend(user string) (*Response, error)

Unsuspend a user on a GitHub Enterprise instance.

GitHub API docs: https://developer.github.com/v3/users/administration/#unsuspend-a-user

type WebHookAuthor

type WebHookAuthor struct {
	Email    *string `json:"email,omitempty"`
	Name     *string `json:"name,omitempty"`
	Username *string `json:"username,omitempty"`
}

WebHookAuthor represents the author or committer of a commit, as specified in a WebHookCommit. The commit author may not correspond to a GitHub User.

func (WebHookAuthor) String

func (w WebHookAuthor) String() string

type WebHookCommit

type WebHookCommit struct {
	Added     []string       `json:"added,omitempty"`
	Author    *WebHookAuthor `json:"author,omitempty"`
	Committer *WebHookAuthor `json:"committer,omitempty"`
	Distinct  *bool          `json:"distinct,omitempty"`
	ID        *string        `json:"id,omitempty"`
	Message   *string        `json:"message,omitempty"`
	Modified  []string       `json:"modified,omitempty"`
	Removed   []string       `json:"removed,omitempty"`
	Timestamp *time.Time     `json:"timestamp,omitempty"`
}

WebHookCommit represents the commit variant we receive from GitHub in a WebHookPayload.

func (WebHookCommit) String

func (w WebHookCommit) String() string

type WebHookPayload

type WebHookPayload struct {
	After      *string         `json:"after,omitempty"`
	Before     *string         `json:"before,omitempty"`
	Commits    []WebHookCommit `json:"commits,omitempty"`
	Compare    *string         `json:"compare,omitempty"`
	Created    *bool           `json:"created,omitempty"`
	Deleted    *bool           `json:"deleted,omitempty"`
	Forced     *bool           `json:"forced,omitempty"`
	HeadCommit *WebHookCommit  `json:"head_commit,omitempty"`
	Pusher     *User           `json:"pusher,omitempty"`
	Ref        *string         `json:"ref,omitempty"`
	Repo       *Repository     `json:"repository,omitempty"`
}

WebHookPayload represents the data that is received from GitHub when a push event hook is triggered. The format of these payloads pre-date most of the GitHub v3 API, so there are lots of minor incompatibilities with the types defined in the rest of the API. Therefore, several types are duplicated here to account for these differences.

GitHub API docs: https://help.github.com/articles/post-receive-hooks

func (WebHookPayload) String

func (w WebHookPayload) String() string

type WeeklyCommitActivity

type WeeklyCommitActivity struct {
	Days  []int      `json:"days,omitempty"`
	Total *int       `json:"total,omitempty"`
	Week  *Timestamp `json:"week,omitempty"`
}

WeeklyCommitActivity represents the weekly commit activity for a repository. The days array is a group of commits per day, starting on Sunday.

func (WeeklyCommitActivity) String

func (w WeeklyCommitActivity) String() string

type WeeklyStats

type WeeklyStats struct {
	Week      *Timestamp `json:"w,omitempty"`
	Additions *int       `json:"a,omitempty"`
	Deletions *int       `json:"d,omitempty"`
	Commits   *int       `json:"c,omitempty"`
}

WeeklyStats represents the number of additions, deletions and commits a Contributor made in a given week.

func (WeeklyStats) String

func (w WeeklyStats) String() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL