const ( // Tarball specifies an archive in gzipped tar format. Tarball archiveFormat = "tarball" // Zipball specifies an archive in zip format. Zipball archiveFormat = "zipball" )
const ( // StatusUnprocessableEntity is the status code returned when sending a request with invalid fields. StatusUnprocessableEntity = 422 )
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(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.
The error type will be *RateLimitError for rate limit exceeded errors, and *TwoFactorAuthError for two-factor authentication errors.
func Int(v int) *int
Int is a helper routine that allocates a new int value to store v and returns a pointer to it.
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(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.
func ValidatePayload(r *http.Request, secretKey []byte) (payload []byte, err error)
ValidatePayload validates an incoming GitHub Webhook event request and returns the (JSON) payload. secretKey is the GitHub Webhook secret message.
Example usage:
func (s *GitHubEventMonitor) ServeHTTP(w http.ResponseWriter, r *http.Request) { payload, err := github.ValidatePayload(r, s.webhookSecretKey) if err != nil { ... } // Process payload... }
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"` // An array of IP addresses in CIDR format specifying the addresses // which serve GitHub Pages websites. Pages []string `json:"pages,omitempty"` }
APIMeta represents metadata about the GitHub API.
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 service
ActivityService handles communication with the activity related methods of the GitHub API.
GitHub API docs: http://developer.github.com/v3/activity/
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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (s *ActivityService) ListEventsReceivedByUser(user string, publicOnly bool, opt *ListOptions) ([]*Event, *Response, error)
ListEventsReceivedByUser lists the events received 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 (s *ActivityService) ListFeeds() (*Feeds, *Response, error)
ListFeeds lists all the feeds available to the authenticated user.
GitHub provides several timeline resources in Atom format:
Timeline: The GitHub global public timeline User: The public timeline for any user, using URI template Current user public: The public timeline for the authenticated user Current user: The private timeline for the authenticated user Current user actor: The private timeline for activity created by the authenticated user Current user organizations: The private timeline for the organizations the authenticated user is a member of.
Note: Private feeds are only returned when authenticating via Basic Auth since current feed URIs use the older, non revocable auth tokens.
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 (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 (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 (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 (s *ActivityService) ListStargazers(owner, repo string, opt *ListOptions) ([]*Stargazer, *Response, error)
ListStargazers lists people who have starred the specified repo.
GitHub API Docs: https://developer.github.com/v3/activity/starring/#list-stargazers
func (s *ActivityService) ListStarred(user string, opt *ActivityListStarredOptions) ([]*StarredRepository, *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 (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 (s *ActivityService) ListWatched(user string, opt *ListOptions) ([]*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 (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 (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 (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 (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 (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 (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 (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 (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 Authorization struct { ID *int `json:"id,omitempty"` URL *string `json:"url,omitempty"` Scopes []Scope `json:"scopes,omitempty"` Token *string `json:"token,omitempty"` TokenLastEight *string `json:"token_last_eight,omitempty"` HashedToken *string `json:"hashed_token,omitempty"` App *AuthorizationApp `json:"app,omitempty"` Note *string `json:"note,omitempty"` NoteURL *string `json:"note_url,omitempty"` UpdateAt *Timestamp `json:"updated_at,omitempty"` CreatedAt *Timestamp `json:"created_at,omitempty"` Fingerprint *string `json:"fingerprint,omitempty"` // User is only populated by the Check and Reset methods. User *User `json:"user,omitempty"` }
Authorization represents an individual GitHub authorization.
func (a Authorization) String() string
type AuthorizationApp struct { URL *string `json:"url,omitempty"` Name *string `json:"name,omitempty"` ClientID *string `json:"client_id,omitempty"` }
AuthorizationApp represents an individual GitHub app (in the context of authorization).
func (a AuthorizationApp) String() string
type AuthorizationRequest struct { Scopes []Scope `json:"scopes,omitempty"` Note *string `json:"note,omitempty"` NoteURL *string `json:"note_url,omitempty"` ClientID *string `json:"client_id,omitempty"` ClientSecret *string `json:"client_secret,omitempty"` Fingerprint *string `json:"fingerprint,omitempty"` }
AuthorizationRequest represents a request to create an authorization.
func (a AuthorizationRequest) String() string
type AuthorizationUpdateRequest struct { Scopes []string `json:"scopes,omitempty"` AddScopes []string `json:"add_scopes,omitempty"` RemoveScopes []string `json:"remove_scopes,omitempty"` Note *string `json:"note,omitempty"` NoteURL *string `json:"note_url,omitempty"` Fingerprint *string `json:"fingerprint,omitempty"` }
AuthorizationUpdateRequest represents a request to update an authorization.
Note that for any one update, you must only provide one of the "scopes" fields. That is, you may provide only one of "Scopes", or "AddScopes", or "RemoveScopes".
GitHub API docs: https://developer.github.com/v3/oauth_authorizations/#update-an-existing-authorization
func (a AuthorizationUpdateRequest) String() string
type AuthorizationsService service
AuthorizationsService handles communication with the authorization related methods of the GitHub API.
This service requires HTTP Basic Authentication; it cannot be accessed using an OAuth token.
GitHub API docs: https://developer.github.com/v3/oauth_authorizations/
func (s *AuthorizationsService) Check(clientID string, token string) (*Authorization, *Response, error)
Check if an OAuth token is valid for a specific app.
Note that this operation requires the use of BasicAuth, but where the username is the OAuth application clientID, and the password is its clientSecret. Invalid tokens will return a 404 Not Found.
The returned Authorization.User field will be populated.
GitHub API docs: https://developer.github.com/v3/oauth_authorizations/#check-an-authorization
func (s *AuthorizationsService) Create(auth *AuthorizationRequest) (*Authorization, *Response, error)
Create a new authorization for the specified OAuth application.
GitHub API docs: https://developer.github.com/v3/oauth_authorizations/#create-a-new-authorization
func (s *AuthorizationsService) CreateImpersonation(username string, authReq *AuthorizationRequest) (*Authorization, *Response, error)
Create an impersonation OAuth token.
This requires admin permissions. With the returned Authorization.Token you can e.g. create or delete a user's public SSH key. NOTE: creating a new token automatically revokes an existing one.
GitHub API docs: https://developer.github.com/enterprise/2.5/v3/users/administration/#create-an-impersonation-oauth-token
func (s *AuthorizationsService) Delete(id int) (*Response, error)
Delete a single authorization.
GitHub API docs: https://developer.github.com/v3/oauth_authorizations/#delete-an-authorization
func (s *AuthorizationsService) DeleteGrant(id int) (*Response, error)
DeleteGrant deletes an OAuth application grant. Deleting an application's grant will also delete all OAuth tokens associated with the application for the user.
GitHub API docs: https://developer.github.com/v3/oauth_authorizations/#delete-a-grant
func (s *AuthorizationsService) DeleteImpersonation(username string) (*Response, error)
Delete an impersonation OAuth token.
NOTE: there can be only one at a time.
GitHub API docs: https://developer.github.com/enterprise/2.5/v3/users/administration/#delete-an-impersonation-oauth-token
func (s *AuthorizationsService) Edit(id int, auth *AuthorizationUpdateRequest) (*Authorization, *Response, error)
Edit a single authorization.
GitHub API docs: https://developer.github.com/v3/oauth_authorizations/#update-an-existing-authorization
func (s *AuthorizationsService) Get(id int) (*Authorization, *Response, error)
Get a single authorization.
GitHub API docs: https://developer.github.com/v3/oauth_authorizations/#get-a-single-authorization
func (s *AuthorizationsService) GetGrant(id int) (*Grant, *Response, error)
GetGrant gets a single OAuth application grant.
GitHub API docs: https://developer.github.com/v3/oauth_authorizations/#get-a-single-grant
func (s *AuthorizationsService) GetOrCreateForApp(clientID string, auth *AuthorizationRequest) (*Authorization, *Response, error)
GetOrCreateForApp creates a new authorization for the specified OAuth application, only if an authorization for that application doesn’t already exist for the user.
If a new token is created, the HTTP status code will be "201 Created", and the returned Authorization.Token field will be populated. If an existing token is returned, the status code will be "200 OK" and the Authorization.Token field will be empty.
clientID is the OAuth Client ID with which to create the token.
GitHub API docs: - https://developer.github.com/v3/oauth_authorizations/#get-or-create-an-authorization-for-a-specific-app - https://developer.github.com/v3/oauth_authorizations/#get-or-create-an-authorization-for-a-specific-app-and-fingerprint
func (s *AuthorizationsService) List(opt *ListOptions) ([]*Authorization, *Response, error)
List the authorizations for the authenticated user.
GitHub API docs: https://developer.github.com/v3/oauth_authorizations/#list-your-authorizations
func (s *AuthorizationsService) ListGrants() ([]*Grant, *Response, error)
ListGrants lists the set of OAuth applications that have been granted access to a user's account. This will return one entry for each application that has been granted access to the account, regardless of the number of tokens an application has generated for the user.
GitHub API docs: https://developer.github.com/v3/oauth_authorizations/#list-your-grants
func (s *AuthorizationsService) Reset(clientID string, token string) (*Authorization, *Response, error)
Reset is used to reset a valid OAuth token without end user involvement. Applications must save the "token" property in the response, because changes take effect immediately.
Note that this operation requires the use of BasicAuth, but where the username is the OAuth application clientID, and the password is its clientSecret. Invalid tokens will return a 404 Not Found.
The returned Authorization.User field will be populated.
GitHub API docs: https://developer.github.com/v3/oauth_authorizations/#reset-an-authorization
func (s *AuthorizationsService) Revoke(clientID string, token string) (*Response, error)
Revoke an authorization for an application.
Note that this operation requires the use of BasicAuth, but where the username is the OAuth application clientID, and the password is its clientSecret. Invalid tokens will return a 404 Not Found.
GitHub API docs: https://developer.github.com/v3/oauth_authorizations/#revoke-an-authorization-for-an-application
type BasicAuthTransport struct { Username string // GitHub username Password string // GitHub password OTP string // one-time password for users with two-factor auth enabled // Transport is the underlying HTTP transport to use when making requests. // It will default to http.DefaultTransport if nil. Transport http.RoundTripper }
BasicAuthTransport is an http.RoundTripper that authenticates all requests using HTTP Basic Authentication with the provided username and password. It additionally supports users who have two-factor authentication enabled on their GitHub account.
func (t *BasicAuthTransport) Client() *http.Client
Client returns an *http.Client that makes requests that are authenticated using HTTP Basic Authentication.
func (t *BasicAuthTransport) RoundTrip(req *http.Request) (*http.Response, error)
RoundTrip implements the RoundTripper interface.
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 struct { Name *string `json:"name,omitempty"` Commit *Commit `json:"commit,omitempty"` Protection *Protection `json:"protection,omitempty"` }
Branch represents a repository branch
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 // Services used for talking to different parts of the GitHub API. Activity *ActivityService Authorizations *AuthorizationsService Gists *GistsService Git *GitService Gitignores *GitignoresService Issues *IssuesService Organizations *OrganizationsService PullRequests *PullRequestsService Repositories *RepositoriesService Search *SearchService Users *UsersService Licenses *LicensesService Migrations *MigrationService Reactions *ReactionsService // contains filtered or unexported fields }
A Client manages communication with the GitHub API.
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 (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 (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. If rate limit is exceeded and reset time is in the future, Do returns *RateLimitError immediately without making a network API call.
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 (c *Client) ListServiceHooks() ([]*ServiceHook, *Response, error)
ListServiceHooks lists all of the available service hooks.
GitHub API docs: https://developer.github.com/webhooks/#services
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/
▹ Example
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 (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 (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 (c *Client) Rate() Rate
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.
Deprecated: Use the Response.Rate returned from most recent API call instead. Call RateLimits() to check the current rate.
func (c *Client) RateLimit() (*Rate, *Response, error)
Deprecated: RateLimit is deprecated, use RateLimits instead.
func (c *Client) RateLimits() (*RateLimits, *Response, error)
RateLimits returns the rate limits for the current client.
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 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 (c CodeResult) String() string
type CodeSearchResult struct { Total *int `json:"total_count,omitempty"` CodeResults []CodeResult `json:"items,omitempty"` }
CodeSearchResult represents the result of an code search.
type CombinedStatus struct { // State is the combined state of the repository. Possible values are: // failure, 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 (s CombinedStatus) String() string
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"` Verification *SignatureVerification `json:"verification,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 (c Commit) String() string
type CommitAuthor struct { Date *time.Time `json:"date,omitempty"` Name *string `json:"name,omitempty"` Email *string `json:"email,omitempty"` // The following fields are only populated by Webhook events. Login *string `json:"username,omitempty"` // Renamed for go-github consistency. }
CommitAuthor represents the author or committer of a commit. The commit author may not correspond to a GitHub User.
func (c CommitAuthor) String() string
type CommitCommentEvent struct { Comment *RepositoryComment `json:"comment,omitempty"` // The following fields are only populated by Webhook events. Action *string `json:"action,omitempty"` Repo *Repository `json:"repository,omitempty"` Sender *User `json:"sender,omitempty"` }
CommitCommentEvent is triggered when a commit comment is created. The Webhook event name is "commit_comment".
GitHub docs: https://developer.github.com/v3/activity/events/types/#commitcommentevent
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 (c CommitFile) String() string
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 or GistCommit.
func (c CommitStats) String() string
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 (c CommitsComparison) String() string
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 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 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 (c ContributorStats) String() string
type CreateEvent struct { Ref *string `json:"ref,omitempty"` // RefType is the object that was created. Possible values are: "repository", "branch", "tag". RefType *string `json:"ref_type,omitempty"` MasterBranch *string `json:"master_branch,omitempty"` Description *string `json:"description,omitempty"` // The following fields are only populated by Webhook events. PusherType *string `json:"pusher_type,omitempty"` Repo *Repository `json:"repository,omitempty"` Sender *User `json:"sender,omitempty"` }
CreateEvent represents a created repository, branch, or tag. The Webhook event name is "create".
Note: webhooks will not receive this event for created repositories. Additionally, webhooks will not receive this event for tags if more than three tags are pushed at once.
GitHub docs: https://developer.github.com/v3/activity/events/types/#createevent
type DeleteEvent struct { Ref *string `json:"ref,omitempty"` // RefType is the object that was deleted. Possible values are: "branch", "tag". RefType *string `json:"ref_type,omitempty"` // The following fields are only populated by Webhook events. PusherType *string `json:"pusher_type,omitempty"` Repo *Repository `json:"repository,omitempty"` Sender *User `json:"sender,omitempty"` }
DeleteEvent represents a deleted branch or tag. The Webhook event name is "delete".
Note: webhooks will not receive this event for tags if more than three tags are deleted at once.
GitHub docs: https://developer.github.com/v3/activity/events/types/#deleteevent
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"` StatusesURL *string `json:"statuses_url,omitempty"` RepositoryURL *string `json:"repository_url,omitempty"` }
Deployment represents a deployment in a repo
type DeploymentEvent struct { Deployment *Deployment `json:"deployment,omitempty"` Repo *Repository `json:"repository,omitempty"` // The following fields are only populated by Webhook events. Sender *User `json:"sender,omitempty"` }
DeploymentEvent represents a deployment. The Webhook event name is "deployment".
Events of this type are not visible in timelines, they are only used to trigger hooks.
GitHub docs: https://developer.github.com/v3/activity/events/types/#deploymentevent
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"` TransientEnvironment *bool `json:"transient_environment,omitempty"` ProductionEnvironment *bool `json:"production_environment,omitempty"` }
DeploymentRequest represents a deployment request
type DeploymentStatus struct { ID *int `json:"id,omitempty"` // State is the deployment state. // Possible values are: "pending", "success", "failure", "error", "inactive". 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"` DeploymentURL *string `json:"deployment_url,omitempty"` RepositoryURL *string `json:"repository_url,omitempty"` }
DeploymentStatus represents the status of a particular deployment.
type DeploymentStatusEvent struct { Deployment *Deployment `json:"deployment,omitempty"` DeploymentStatus *DeploymentStatus `json:"deployment_status,omitempty"` Repo *Repository `json:"repository,omitempty"` // The following fields are only populated by Webhook events. Sender *User `json:"sender,omitempty"` }
DeploymentStatusEvent represents a deployment status. The Webhook event name is "deployment_status".
Events of this type are not visible in timelines, they are only used to trigger hooks.
GitHub docs: https://developer.github.com/v3/activity/events/types/#deploymentstatusevent
type DeploymentStatusRequest struct { State *string `json:"state,omitempty"` TargetURL *string `json:"target_url,omitempty"` // Deprecated. Use LogURL instead. LogURL *string `json:"log_url,omitempty"` Description *string `json:"description,omitempty"` EnvironmentURL *string `json:"environment_url,omitempty"` AutoInactive *bool `json:"auto_inactive,omitempty"` }
DeploymentStatusRequest represents a deployment request
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 EditChange struct { Title *struct { From *string `json:"from,omitempty"` } `json:"title,omitempty"` Body *struct { From *string `json:"from,omitempty"` } `json:"body,omitempty"` }
EditChange represents the changes when an issue, pull request, or comment has been edited.
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 Message string `json:"message"` // Message describing the error. Errors with Code == "custom" will always have this set. }
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 custom: some resources return this (e.g. github.User.CreateKey()), additional information is set in the Message field of the Error
GitHub API docs: http://developer.github.com/v3/#client-errors
func (e *Error) Error() string
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 // Block is only populated on certain types of errors such as code 451. // See https://developer.github.com/changes/2016-03-17-the-451-status-code-is-now-supported/ // for more information. Block *struct { Reason string `json:"reason,omitempty"` CreatedAt *Timestamp `json:"created_at,omitempty"` } `json:"block,omitempty"` // Most errors will also include a documentation_url field pointing // to some content that might help you resolve the error, see // https://developer.github.com/v3/#client-errors DocumentationURL string `json:"documentation_url,omitempty"` }
An ErrorResponse reports one or more errors caused by an API request.
GitHub API docs: http://developer.github.com/v3/#client-errors
func (r *ErrorResponse) Error() string
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 (e *Event) Payload() (payload interface{})
Payload returns the parsed event payload. For recognized event types, a value of the corresponding struct type will be returned.
func (e Event) String() string
type FeedLink struct { HRef *string `json:"href,omitempty"` Type *string `json:"type,omitempty"` }
FeedLink represents a link to a related resource.
type Feeds struct { TimelineURL *string `json:"timeline_url,omitempty"` UserURL *string `json:"user_url,omitempty"` CurrentUserPublicURL *string `json:"current_user_public_url,omitempty"` CurrentUserURL *string `json:"current_user_url,omitempty"` CurrentUserActorURL *string `json:"current_user_actor_url,omitempty"` CurrentUserOrganizationURL *string `json:"current_user_organization_url,omitempty"` CurrentUserOrganizationURLs []string `json:"current_user_organization_urls,omitempty"` Links *struct { Timeline *FeedLink `json:"timeline,omitempty"` User *FeedLink `json:"user,omitempty"` CurrentUserPublic *FeedLink `json:"current_user_public,omitempty"` CurrentUser *FeedLink `json:"current_user,omitempty"` CurrentUserActor *FeedLink `json:"current_user_actor,omitempty"` CurrentUserOrganization *FeedLink `json:"current_user_organization,omitempty"` CurrentUserOrganizations []FeedLink `json:"current_user_organizations,omitempty"` } `json:"_links,omitempty"` }
Feeds represents timeline resources in Atom format.
type ForkEvent struct { // Forkee is the created repository. Forkee *Repository `json:"forkee,omitempty"` // The following fields are only populated by Webhook events. Repo *Repository `json:"repository,omitempty"` Sender *User `json:"sender,omitempty"` }
ForkEvent is triggered when a user forks a repository. The Webhook event name is "fork".
GitHub docs: https://developer.github.com/v3/activity/events/types/#forkevent
type GPGEmail struct { Email *string `json:"email,omitempty"` Verified *bool `json:"verified,omitempty"` }
GPGEmail represents an email address associated to a GPG key.
type GPGKey struct { ID *int `json:"id,omitempty"` PrimaryKeyID *int `json:"primary_key_id,omitempty"` KeyID *string `json:"key_id,omitempty"` PublicKey *string `json:"public_key,omitempty"` Emails []GPGEmail `json:"emails,omitempty"` Subkeys []GPGKey `json:"subkeys,omitempty"` CanSign *bool `json:"can_sign,omitempty"` CanEncryptComms *bool `json:"can_encrypt_comms,omitempty"` CanEncryptStorage *bool `json:"can_encrypt_storage,omitempty"` CanCertify *bool `json:"can_certify,omitempty"` CreatedAt *time.Time `json:"created_at,omitempty"` ExpiresAt *time.Time `json:"expires_at,omitempty"` }
GPGKey represents a GitHub user's public GPG key used to verify GPG signed commits and tags.
https://developer.github.com/changes/2016-04-04-git-signing-api-preview/
func (k GPGKey) String() string
String stringifies a GPGKey.
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 (g Gist) String() string
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 (g GistComment) String() string
type GistCommit struct { URL *string `json:"url,omitempty"` Version *string `json:"version,omitempty"` User *User `json:"user,omitempty"` ChangeStatus *CommitStats `json:"change_status,omitempty"` CommitedAt *Timestamp `json:"commited_at,omitempty"` }
GistCommit represents a commit on a gist.
func (gc GistCommit) String() string
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 (g GistFile) String() string
type GistFilename string
GistFilename represents filename on a gist.
type GistFork struct { URL *string `json:"url,omitempty"` User *User `json:"user,omitempty"` ID *string `json:"id,omitempty"` CreatedAt *Timestamp `json:"created_at,omitempty"` UpdatedAt *Timestamp `json:"updated_at,omitempty"` }
GistFork represents a fork of a gist.
func (gf GistFork) String() string
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 service
GistsService handles communication with the Gist related methods of the GitHub API.
GitHub API docs: http://developer.github.com/v3/gists/
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 (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 (s *GistsService) Delete(id string) (*Response, error)
Delete a gist.
GitHub API docs: http://developer.github.com/v3/gists/#delete-a-gist
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 (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 (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 (s *GistsService) Fork(id string) (*Gist, *Response, error)
Fork a gist.
GitHub API docs: http://developer.github.com/v3/gists/#fork-a-gist
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 (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 (s *GistsService) GetRevision(id, sha string) (*Gist, *Response, error)
GetRevision gets a specific revision of a gist.
GitHub API docs: https://developer.github.com/v3/gists/#get-a-specific-revision-of-a-gist
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 (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 (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 (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 (s *GistsService) ListCommits(id string) ([]*GistCommit, *Response, error)
ListCommits lists commits of a gist.
Github API docs: https://developer.github.com/v3/gists/#list-gist-commits
func (s *GistsService) ListForks(id string) ([]*GistFork, *Response, error)
ListForks lists forks of a gist.
Github API docs: https://developer.github.com/v3/gists/#list-gist-forks
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 (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 (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 struct { Type *string `json:"type"` SHA *string `json:"sha"` URL *string `json:"url"` }
GitObject represents a Git object.
func (o GitObject) String() string
type GitService service
GitService handles communication with the git data related methods of the GitHub API.
GitHub API docs: http://developer.github.com/v3/git/
func (s *GitService) CreateBlob(owner string, repo string, blob *Blob) (*Blob, *Response, error)
CreateBlob creates a blob object.
GitHub API docs: https://developer.github.com/v3/git/blobs/#create-a-blob
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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 struct { Name *string `json:"name,omitempty"` Source *string `json:"source,omitempty"` }
Gitignore represents a .gitignore file as returned by the GitHub API.
func (g Gitignore) String() string
type GitignoresService service
GitignoresService provides access to the gitignore related functions in the GitHub API.
GitHub API docs: http://developer.github.com/v3/gitignore/
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 (s GitignoresService) List() ([]string, *Response, error)
List all available Gitignore templates.
http://developer.github.com/v3/gitignore/#listing-available-templates
type GollumEvent struct { Pages []*Page `json:"pages,omitempty"` // The following fields are only populated by Webhook events. Repo *Repository `json:"repository,omitempty"` Sender *User `json:"sender,omitempty"` }
GollumEvent is triggered when a Wiki page is created or updated. The Webhook event name is "gollum".
GitHub docs: https://developer.github.com/v3/activity/events/types/#gollumevent
type Grant struct { ID *int `json:"id,omitempty"` URL *string `json:"url,omitempty"` App *AuthorizationApp `json:"app,omitempty"` CreatedAt *Timestamp `json:"created_at,omitempty"` UpdatedAt *Timestamp `json:"updated_at,omitempty"` Scopes []string `json:"scopes,omitempty"` }
Grant represents an OAuth application that has been granted access to an account.
func (g Grant) String() string
type Hook struct { CreatedAt *time.Time `json:"created_at,omitempty"` UpdatedAt *time.Time `json:"updated_at,omitempty"` Name *string `json:"name,omitempty"` URL *string `json:"url,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 (h Hook) String() string
type Import struct { // The URL of the originating repository. VCSURL *string `json:"vcs_url,omitempty"` // The originating VCS type. Can be one of 'subversion', 'git', // 'mercurial', or 'tfvc'. Without this parameter, the import job will // take additional time to detect the VCS type before beginning the // import. This detection step will be reflected in the response. VCS *string `json:"vcs,omitempty"` // VCSUsername and VCSPassword are only used for StartImport calls that // are importing a password-protected repository. VCSUsername *string `json:"vcs_username,omitempty"` VCSPassword *string `json:"vcs_password,omitempty"` // For a tfvc import, the name of the project that is being imported. TFVCProject *string `json:"tfvc_project,omitempty"` // Describes whether the import has been opted in or out of using Git // LFS. The value can be 'opt_in', 'opt_out', or 'undecided' if no // action has been taken. UseLFS *string `json:"use_lfs,omitempty"` // Describes whether files larger than 100MB were found during the // importing step. HasLargeFiles *bool `json:"has_large_files,omitempty"` // The total size in gigabytes of files larger than 100MB found in the // originating repository. LargeFilesSize *int `json:"large_files_size,omitempty"` // The total number of files larger than 100MB found in the originating // repository. To see a list of these files, call LargeFiles. LargeFilesCount *int `json:"large_files_count,omitempty"` // Identifies the current status of an import. An import that does not // have errors will progress through these steps: // // detecting - the "detection" step of the import is in progress // because the request did not include a VCS parameter. The // import is identifying the type of source control present at // the URL. // importing - the "raw" step of the import is in progress. This is // where commit data is fetched from the original repository. // The import progress response will include CommitCount (the // total number of raw commits that will be imported) and // Percent (0 - 100, the current progress through the import). // mapping - the "rewrite" step of the import is in progress. This // is where SVN branches are converted to Git branches, and // where author updates are applied. The import progress // response does not include progress information. // pushing - the "push" step of the import is in progress. This is // where the importer updates the repository on GitHub. The // import progress response will include PushPercent, which is // the percent value reported by git push when it is "Writing // objects". // complete - the import is complete, and the repository is ready // on GitHub. // // If there are problems, you will see one of these in the status field: // // auth_failed - the import requires authentication in order to // connect to the original repository. Make an UpdateImport // request, and include VCSUsername and VCSPassword. // error - the import encountered an error. The import progress // response will include the FailedStep and an error message. // Contact GitHub support for more information. // detection_needs_auth - the importer requires authentication for // the originating repository to continue detection. Make an // UpdatImport request, and include VCSUsername and // VCSPassword. // detection_found_nothing - the importer didn't recognize any // source control at the URL. // detection_found_multiple - the importer found several projects // or repositories at the provided URL. When this is the case, // the Import Progress response will also include a // ProjectChoices field with the possible project choices as // values. Make an UpdateImport request, and include VCS and // (if applicable) TFVCProject. Status *string `json:"status,omitempty"` CommitCount *int `json:"commit_count,omitempty"` StatusText *string `json:"status_text,omitempty"` AuthorsCount *int `json:"authors_count,omitempty"` Percent *int `json:"percent,omitempty"` PushPercent *int `json:"push_percent,omitempty"` URL *string `json:"url,omitempty"` HTMLURL *string `json:"html_url,omitempty"` AuthorsURL *string `json:"authors_url,omitempty"` RepositoryURL *string `json:"repository_url,omitempty"` Message *string `json:"message,omitempty"` FailedStep *string `json:"failed_step,omitempty"` // Human readable display name, provided when the Import appears as // part of ProjectChoices. HumanName *string `json:"human_name,omitempty"` // When the importer finds several projects or repositories at the // provided URLs, this will identify the available choices. Call // UpdateImport with the selected Import value. ProjectChoices []Import `json:"project_choices,omitempty"` }
Import represents a repository import request.
func (i Import) String() string
type Issue struct { ID *int `json:"id,omitempty"` 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"` Repository *Repository `json:"repository,omitempty"` Reactions *Reactions `json:"reactions,omitempty"` Assignees []*User `json:"assignees,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 (i Issue) String() string
type IssueActivityEvent struct { Action *string `json:"action,omitempty"` Issue *Issue `json:"issue,omitempty"` // The following fields are only populated by Webhook events. Repo *Repository `json:"repository,omitempty"` Sender *User `json:"sender,omitempty"` }
DEPRECATED: IssueActivityEvent represents the payload delivered by Issue webhook Use IssuesEvent instead.
type IssueComment struct { ID *int `json:"id,omitempty"` Body *string `json:"body,omitempty"` User *User `json:"user,omitempty"` Reactions *Reactions `json:"reactions,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 (i IssueComment) String() string
type IssueCommentEvent struct { // Action is the action that was performed on the comment. // Possible values are: "created", "edited", "deleted". Action *string `json:"action,omitempty"` Issue *Issue `json:"issue,omitempty"` Comment *IssueComment `json:"comment,omitempty"` // The following fields are only populated by Webhook events. Changes *EditChange `json:"changes,omitempty"` Repo *Repository `json:"repository,omitempty"` Sender *User `json:"sender,omitempty"` }
IssueCommentEvent is triggered when an issue comment is created on an issue or pull request. The Webhook event name is "issue_comment".
GitHub docs: https://developer.github.com/v3/activity/events/types/#issuecommentevent
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 Actor closed the issue. // If the issue was closed by commit message, CommitID holds the SHA1 hash of the commit. // // merged // The Actor merged into master a branch containing a commit mentioning the issue. // CommitID holds the SHA1 of the merge commit. // // referenced // The Actor committed to master a commit mentioning the issue in its commit message. // CommitID holds the SHA1 of the commit. // // reopened, locked, unlocked // The Actor did that to the issue. // // renamed // The Actor changed the issue title from Rename.From to Rename.To. // // mentioned // Someone unspecified @mentioned the Actor [sic] in an issue comment body. // // assigned, unassigned // The Actor assigned the issue to or removed the assignment from the Assignee. // // labeled, unlabeled // The Actor added or removed the Label from the issue. // // milestoned, demilestoned // The Actor added or removed the issue from the Milestone. // // subscribed, unsubscribed // The Actor subscribed to or unsubscribed from notifications for an issue. // // head_ref_deleted, head_ref_restored // The pull request’s branch was deleted or restored. // Event *string `json:"event,omitempty"` CreatedAt *time.Time `json:"created_at,omitempty"` Issue *Issue `json:"issue,omitempty"` // Only present on certain events; see above. Assignee *User `json:"assignee,omitempty"` CommitID *string `json:"commit_id,omitempty"` Milestone *Milestone `json:"milestone,omitempty"` Label *Label `json:"label,omitempty"` Rename *Rename `json:"rename,omitempty"` }
IssueEvent represents an event that occurred around an Issue or Pull Request.
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, all. 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"` // Creator filters issues based on their creator. Creator string `url:"creator,omitempty"` // Mentioned 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 "created". Sort string `url:"sort,omitempty"` // Direction in which to sort issues. Possible values are: asc, desc. // Default is "desc". 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 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 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, all. 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 "created". Sort string `url:"sort,omitempty"` // Direction in which to sort issues. Possible values are: asc, desc. // Default is "desc". 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 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"` Assignees *[]string `json:"assignees,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 IssuesEvent struct { // Action is the action that was performed. Possible values are: "assigned", // "unassigned", "labeled", "unlabeled", "opened", "closed", "reopened", "edited". Action *string `json:"action,omitempty"` Issue *Issue `json:"issue,omitempty"` Assignee *User `json:"assignee,omitempty"` Label *Label `json:"label,omitempty"` // The following fields are only populated by Webhook events. Changes *EditChange `json:"changes,omitempty"` Repo *Repository `json:"repository,omitempty"` Sender *User `json:"sender,omitempty"` }
IssuesEvent is triggered when an issue is assigned, unassigned, labeled, unlabeled, opened, closed, or reopened. The Webhook event name is "issues".
GitHub docs: https://developer.github.com/v3/activity/events/types/#issuesevent
type IssuesSearchResult struct { Total *int `json:"total_count,omitempty"` Issues []Issue `json:"items,omitempty"` }
IssuesSearchResult represents the result of an issues search.
type IssuesService service
IssuesService handles communication with the issue related methods of the GitHub API.
GitHub API docs: http://developer.github.com/v3/issues/
func (s *IssuesService) AddAssignees(owner, repo string, number int, assignees []string) (*Issue, *Response, error)
AddAssignees adds the provided GitHub users as assignees to the issue.
GitHub API docs: https://developer.github.com/v3/issues/assignees/#add-assignees-to-an-issue
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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (s *IssuesService) IsAssignee(owner, repo, 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 (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 (s *IssuesService) ListAssignees(owner, 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 (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 (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 (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 (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 (s *IssuesService) ListIssueTimeline(owner, repo string, number int, opt *ListOptions) ([]*Timeline, *Response, error)
ListIssueTimeline lists events for the specified issue.
GitHub API docs: https://developer.github.com/v3/issues/timeline/#list-events-for-an-issue
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 (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 (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 (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 (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 (s *IssuesService) Lock(owner string, repo string, number int) (*Response, error)
Lock an issue's conversation.
GitHub API docs: https://developer.github.com/v3/issues/#lock-an-issue
func (s *IssuesService) RemoveAssignees(owner, repo string, number int, assignees []string) (*Issue, *Response, error)
RemoveAssignees removes the provided GitHub users as assignees from the issue.
GitHub API docs: https://developer.github.com/v3/issues/assignees/#remove-assignees-from-an-issue
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 (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 (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
func (s *IssuesService) Unlock(owner string, repo string, number int) (*Response, error)
Unlock an issue's conversation.
GitHub API docs: https://developer.github.com/v3/issues/#unlock-an-issue
type Key struct { ID *int `json:"id,omitempty"` Key *string `json:"key,omitempty"` URL *string `json:"url,omitempty"` Title *string `json:"title,omitempty"` ReadOnly *bool `json:"read_only,omitempty"` }
Key represents a public SSH key used to authenticate a user or deploy script.
func (k Key) String() string
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 (l Label) String() string
type LargeFile struct { RefName *string `json:"ref_name,omitempty"` Path *string `json:"path,omitempty"` OID *string `json:"oid,omitempty"` Size *int `json:"size,omitempty"` }
LargeFile identifies a file larger than 100MB found during a repository import.
GitHub API docs: https://developer.github.com/v3/migration/source_imports/#get-large-files
func (f LargeFile) String() string
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 (l License) String() string
type LicensesService service
LicensesService handles communication with the license related methods of the GitHub API.
GitHub API docs: http://developer.github.com/v3/pulls/
func (s *LicensesService) Get(licenseName string) (*License, *Response, error)
Get extended metadata for one license.
GitHub API docs: https://developer.github.com/v3/licenses/#get-an-individual-license
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 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 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"` // Role filters members returned by their role in the organization. // Possible values are: // all - all members of the organization, regardless of role // admin - organization owners // member - non-organization members // // Default is "all". Role string `url:"role,omitempty"` ListOptions }
ListMembersOptions specifies optional parameters to the OrganizationsService.ListMembers method.
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 struct { // Filter memberships to include only those with 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 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 struct { Text *string `json:"text,omitempty"` Indices []int `json:"indices,omitempty"` }
Match represents a single text match.
type MemberEvent struct { // Action is the action that was performed. Possible value is: "added". Action *string `json:"action,omitempty"` Member *User `json:"member,omitempty"` // The following fields are only populated by Webhook events. Repo *Repository `json:"repository,omitempty"` Sender *User `json:"sender,omitempty"` }
MemberEvent is triggered when a user is added as a collaborator to a repository. The Webhook event name is "member".
GitHub docs: https://developer.github.com/v3/activity/events/types/#memberevent
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"` // Role identifies the user's role within the organization or team. // Possible values for organization membership: // member - non-owner organization member // admin - organization owner // // Possible values for team membership are: // member - a normal member of the team // maintainer - a team maintainer. Able to add/remove other team // members, promote other team members to team // maintainer, and edit the team’s name and description 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 (m Membership) String() string
type MembershipEvent struct { // Action is the action that was performed. Possible values are: "added", "removed". Action *string `json:"action,omitempty"` // Scope is the scope of the membership. Possible value is: "team". Scope *string `json:"scope,omitempty"` Member *User `json:"member,omitempty"` Team *Team `json:"team,omitempty"` // The following fields are only populated by Webhook events. Org *Organization `json:"organization,omitempty"` Sender *User `json:"sender,omitempty"` }
MembershipEvent is triggered when a user is added or removed from a team. The Webhook event name is "membership".
Events of this type are not visible in timelines, they are only used to trigger organization webhooks.
GitHub docs: https://developer.github.com/v3/activity/events/types/#membershipevent
type Migration struct { ID *int `json:"id,omitempty"` GUID *string `json:"guid,omitempty"` // State is the current state of a migration. // Possible values are: // "pending" which means the migration hasn't started yet, // "exporting" which means the migration is in progress, // "exported" which means the migration finished successfully, or // "failed" which means the migration failed. State *string `json:"state,omitempty"` // LockRepositories indicates whether repositories are locked (to prevent // manipulation) while migrating data. LockRepositories *bool `json:"lock_repositories,omitempty"` // ExcludeAttachments indicates whether attachments should be excluded from // the migration (to reduce migration archive file size). ExcludeAttachments *bool `json:"exclude_attachments,omitempty"` URL *string `json:"url,omitempty"` CreatedAt *string `json:"created_at,omitempty"` UpdatedAt *string `json:"updated_at,omitempty"` Repositories []*Repository `json:"repositories,omitempty"` }
Migration represents a GitHub migration (archival).
func (m Migration) String() string
type MigrationOptions struct { // LockRepositories indicates whether repositories should be locked (to prevent // manipulation) while migrating data. LockRepositories bool // ExcludeAttachments indicates whether attachments should be excluded from // the migration (to reduce migration archive file size). ExcludeAttachments bool }
MigrationOptions specifies the optional parameters to Migration methods.
type MigrationService service
MigrationService provides access to the migration related functions in the GitHub API.
GitHub API docs: https://developer.github.com/v3/migration/
func (s *MigrationService) CancelImport(owner, repo string) (*Response, error)
CancelImport stops an import for a repository.
GitHub API docs: https://developer.github.com/v3/migration/source_imports/#cancel-an-import
func (s *MigrationService) CommitAuthors(owner, repo string) ([]*SourceImportAuthor, *Response, error)
CommitAuthors gets the authors mapped from the original repository.
Each type of source control system represents authors in a different way. For example, a Git commit author has a display name and an email address, but a Subversion commit author just has a username. The GitHub Importer will make the author information valid, but the author might not be correct. For example, it will change the bare Subversion username "hubot" into something like "hubot <hubot@12341234-abab-fefe-8787-fedcba987654>".
This method and MapCommitAuthor allow you to provide correct Git author information.
GitHub API docs: https://developer.github.com/v3/migration/source_imports/#get-commit-authors
func (s *MigrationService) DeleteMigration(org string, id int) (*Response, error)
DeleteMigration deletes a previous migration archive. id is the migration ID.
GitHub API docs: https://developer.github.com/v3/migration/migrations/#delete-a-migration-archive
func (s *MigrationService) ImportProgress(owner, repo string) (*Import, *Response, error)
QueryImport queries for the status and progress of an ongoing repository import.
GitHub API docs: https://developer.github.com/v3/migration/source_imports/#get-import-progress
func (s *MigrationService) LargeFiles(owner, repo string) ([]*LargeFile, *Response, error)
LargeFiles lists files larger than 100MB found during the import.
GitHub API docs: https://developer.github.com/v3/migration/source_imports/#get-large-files
func (s *MigrationService) ListMigrations(org string) ([]*Migration, *Response, error)
ListMigrations lists the most recent migrations.
GitHub API docs: https://developer.github.com/v3/migration/migrations/#get-a-list-of-migrations
func (s *MigrationService) MapCommitAuthor(owner, repo string, id int, author *SourceImportAuthor) (*SourceImportAuthor, *Response, error)
MapCommitAuthor updates an author's identity for the import. Your application can continue updating authors any time before you push new commits to the repository.
GitHub API docs: https://developer.github.com/v3/migration/source_imports/#map-a-commit-author
func (s *MigrationService) MigrationArchiveURL(org string, id int) (url string, err error)
MigrationArchiveURL fetches a migration archive URL. id is the migration ID.
GitHub API docs: https://developer.github.com/v3/migration/migrations/#download-a-migration-archive
func (s *MigrationService) MigrationStatus(org string, id int) (*Migration, *Response, error)
MigrationStatus gets the status of a specific migration archive. id is the migration ID.
GitHub API docs: https://developer.github.com/v3/migration/migrations/#get-the-status-of-a-migration
func (s *MigrationService) SetLFSPreference(owner, repo string, in *Import) (*Import, *Response, error)
SetLFSPreference sets whether imported repositories should use Git LFS for files larger than 100MB. Only the UseLFS field on the provided Import is used.
GitHub API docs: https://developer.github.com/v3/migration/source_imports/#set-git-lfs-preference
func (s *MigrationService) StartImport(owner, repo string, in *Import) (*Import, *Response, error)
StartImport initiates a repository import.
GitHub API docs: https://developer.github.com/v3/migration/source_imports/#start-an-import
func (s *MigrationService) StartMigration(org string, repos []string, opt *MigrationOptions) (*Migration, *Response, error)
StartMigration starts the generation of a migration archive. repos is a slice of repository names to migrate.
GitHub API docs: https://developer.github.com/v3/migration/migrations/#start-a-migration
func (s *MigrationService) UnlockRepo(org string, id int, repo string) (*Response, error)
UnlockRepo unlocks a repository that was locked for migration. id is the migration ID. You should unlock each migrated repository and delete them when the migration is complete and you no longer need the source data.
GitHub API docs: https://developer.github.com/v3/migration/migrations/#unlock-a-repository
func (s *MigrationService) UpdateImport(owner, repo string, in *Import) (*Import, *Response, error)
UpdateImport initiates a repository import.
GitHub API docs: https://developer.github.com/v3/migration/source_imports/#update-existing-import
type Milestone struct { URL *string `json:"url,omitempty"` HTMLURL *string `json:"html_url,omitempty"` LabelsURL *string `json:"labels_url,omitempty"` ID *int `json:"id,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"` ClosedAt *time.Time `json:"closed_at,omitempty"` DueOn *time.Time `json:"due_on,omitempty"` }
Milestone represents a Github repository milestone.
func (m Milestone) String() string
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"` ListOptions }
MilestoneListOptions specifies the optional parameters to the IssuesService.ListMilestones method.
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 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 struct { All bool `url:"all,omitempty"` Participating bool `url:"participating,omitempty"` Since time.Time `url:"since,omitempty"` Before time.Time `url:"before,omitempty"` ListOptions }
NotificationListOptions specifies the optional parameters to the ActivityService.ListNotifications method.
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 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 (o Organization) String() string
type OrganizationAddTeamMembershipOptions struct { // Role specifies the role the user should have in the team. Possible // values are: // member - a normal member of the team // maintainer - a team maintainer. Able to add/remove other team // members, promote other team members to team // maintainer, and edit the team’s name and description // // Default value is "member". Role string `json:"role,omitempty"` }
OrganizationAddTeamMembershipOptions does stuff specifies the optional parameters to the OrganizationsService.AddTeamMembership method.
type OrganizationAddTeamRepoOptions struct { // Permission specifies the permission to grant the team on this repository. // Possible values are: // pull - team members can pull, but not push to or administer this repository // push - team members can pull and push, but not administer this repository // admin - team members can pull, push and administer this repository // // If not specified, the team's permission attribute will be used. Permission string `json:"permission,omitempty"` }
OrganizationAddTeamRepoOptions specifies the optional parameters to the OrganizationsService.AddTeamRepo method.
type OrganizationListTeamMembersOptions struct { // Role filters members returned by their role in the team. Possible // values are "all", "member", "maintainer". Default is "all". Role string `url:"role,omitempty"` ListOptions }
OrganizationListTeamMembersOptions specifies the optional parameters to the OrganizationsService.ListTeamMembers method.
type OrganizationsListOptions struct { // Since filters Organizations by ID. Since int `url:"since,omitempty"` ListOptions }
OrganizationsListOptions specifies the optional parameters to the OrganizationsService.ListAll method.
type OrganizationsService service
OrganizationsService provides access to the organization related functions in the GitHub API.
GitHub API docs: http://developer.github.com/v3/orgs/
func (s *OrganizationsService) AddTeamMembership(team int, user string, opt *OrganizationAddTeamMembershipOptions) (*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 (s *OrganizationsService) AddTeamRepo(team int, owner string, repo string, opt *OrganizationAddTeamRepoOptions) (*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 (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 (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 (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 (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 (s *OrganizationsService) DeleteTeam(team int) (*Response, error)
DeleteTeam deletes a team.
GitHub API docs: http://developer.github.com/v3/orgs/teams/#delete-team
func (s *OrganizationsService) Edit(name string, org *Organization) (*Organization, *Response, error)
Edit an organization.
GitHub API docs: http://developer.github.com/v3/orgs/#edit-an-organization
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 (s *OrganizationsService) EditOrgMembership(user, org string, membership *Membership) (*Membership, *Response, error)
EditOrgMembership edits the membership for user in specified organization. Passing an empty string for user will edit the membership for the authenticated user.
GitHub API docs: https://developer.github.com/v3/orgs/members/#add-or-update-organization-membership GitHub API docs: https://developer.github.com/v3/orgs/members/#edit-your-organization-membership
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 (s *OrganizationsService) Get(org string) (*Organization, *Response, error)
Get fetches an organization by name.
GitHub API docs: http://developer.github.com/v3/orgs/#get-an-organization
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 (s *OrganizationsService) GetOrgMembership(user, org string) (*Membership, *Response, error)
GetOrgMembership gets the membership for a user in a specified organization. Passing an empty string for user will get the membership for the authenticated user.
GitHub API docs: https://developer.github.com/v3/orgs/members/#get-organization-membership GitHub API docs: https://developer.github.com/v3/orgs/members/#get-your-organization-membership
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 (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 (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 (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 (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 (s *OrganizationsService) IsTeamRepo(team int, owner string, repo string) (*Repository, *Response, error)
IsTeamRepo checks if a team manages the specified repository. If the repository is managed by team, a Repository is returned which includes the permissions team has for that repo.
GitHub API docs: https://developer.github.com/v3/orgs/teams/#check-if-a-team-manages-a-repository
func (s *OrganizationsService) List(user string, opt *ListOptions) ([]*Organization, *Response, error)
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 (s *OrganizationsService) ListAll(opt *OrganizationsListOptions) ([]*Organization, *Response, error)
ListAll lists all organizations, in the order that they were created on GitHub.
Note: Pagination is powered exclusively by the since parameter. To continue listing the next set of organizations, use the ID of the last-returned organization as the opts.Since parameter for the next call.
GitHub API docs: https://developer.github.com/v3/orgs/#list-all-organizations
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 (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 (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 (s *OrganizationsService) ListTeamMembers(team int, opt *OrganizationListTeamMembersOptions) ([]*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 (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 (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 (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 (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 (s *OrganizationsService) PublicizeMembership(org, user string) (*Response, error)
PublicizeMembership publicizes a user's membership in an organization. (A user cannot publicize the membership for another user.)
GitHub API docs: http://developer.github.com/v3/orgs/members/#publicize-a-users-membership
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 (s *OrganizationsService) RemoveOrgMembership(user, org string) (*Response, error)
RemoveOrgMembership removes user from the specified organization. If the user has been invited to the organization, this will cancel their invitation.
GitHub API docs: https://developer.github.com/v3/orgs/members/#remove-organization-membership
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 (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 Page struct { PageName *string `json:"page_name,omitempty"` Title *string `json:"title,omitempty"` Summary *string `json:"summary,omitempty"` Action *string `json:"action,omitempty"` SHA *string `json:"sha,omitempty"` HTMLURL *string `json:"html_url,omitempty"` }
Page represents a single Wiki page.
type PageBuildEvent struct { Build *PagesBuild `json:"build,omitempty"` // The following fields are only populated by Webhook events. ID *int `json:"id,omitempty"` Repo *Repository `json:"repository,omitempty"` Sender *User `json:"sender,omitempty"` }
PageBuildEvent represents an attempted build of a GitHub Pages site, whether successful or not. The Webhook event name is "page_build".
This event is triggered on push to a GitHub Pages enabled branch (gh-pages for project pages, master for user and organization pages).
Events of this type are not visible in timelines, they are only used to trigger hooks.
GitHub docs: https://developer.github.com/v3/activity/events/types/#pagebuildevent
type Pages struct { URL *string `json:"url,omitempty"` Status *string `json:"status,omitempty"` CNAME *string `json:"cname,omitempty"` Custom404 *bool `json:"custom_404,omitempty"` HTMLURL *string `json:"html_url,omitempty"` }
Pages represents a GitHub Pages site configuration.
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 struct { Message *string `json:"message,omitempty"` }
PagesError represents a build error for a GitHub Pages site.
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 (p Plan) String() string
type Protection struct { Enabled *bool `json:"enabled,omitempty"` RequiredStatusChecks *RequiredStatusChecks `json:"required_status_checks,omitempty"` }
Protection represents a repository branch's protection
type PublicEvent struct { // The following fields are only populated by Webhook events. Repo *Repository `json:"repository,omitempty"` Sender *User `json:"sender,omitempty"` }
PublicEvent is triggered when a private repository is open sourced. According to GitHub: "Without a doubt: the best GitHub event." The Webhook event name is "public".
GitHub docs: https://developer.github.com/v3/activity/events/types/#publicevent
type PullRequest struct { ID *int `json:"id,omitempty"` 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"` Assignee *User `json:"assignee,omitempty"` // probably only in webhooks Head *PullRequestBranch `json:"head,omitempty"` Base *PullRequestBranch `json:"base,omitempty"` }
PullRequest represents a GitHub pull request on a repository.
func (p PullRequest) String() string
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 struct { ID *int `json:"id,omitempty"` InReplyTo *int `json:"in_reply_to,omitempty"` Body *string `json:"body,omitempty"` Path *string `json:"path,omitempty"` DiffHunk *string `json:"diff_hunk,omitempty"` Position *int `json:"position,omitempty"` OriginalPosition *int `json:"original_position,omitempty"` CommitID *string `json:"commit_id,omitempty"` OriginalCommitID *string `json:"original_commit_id,omitempty"` User *User `json:"user,omitempty"` Reactions *Reactions `json:"reactions,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"` PullRequestURL *string `json:"pull_request_url,omitempty"` }
PullRequestComment represents a comment left on a pull request.
func (p PullRequestComment) String() string
type PullRequestEvent struct { // Action is the action that was performed. Possible values are: "assigned", // "unassigned", "labeled", "unlabeled", "opened", "closed", or "reopened", // "synchronize", "edited". If the action is "closed" and the merged key is false, // the pull request was closed with unmerged commits. If the action is "closed" // and the merged key is true, the pull request was merged. Action *string `json:"action,omitempty"` Number *int `json:"number,omitempty"` PullRequest *PullRequest `json:"pull_request,omitempty"` // The following fields are only populated by Webhook events. Changes *EditChange `json:"changes,omitempty"` Repo *Repository `json:"repository,omitempty"` Sender *User `json:"sender,omitempty"` }
PullRequestEvent is triggered when a pull request is assigned, unassigned, labeled, unlabeled, opened, closed, reopened, or synchronized. The Webhook event name is "pull_request".
GitHub docs: https://developer.github.com/v3/activity/events/types/#pullrequestevent
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 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 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 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 PullRequestOptions struct { Squash bool }
PullRequestOptions lets you define how a pull request will be merged.
type PullRequestReviewCommentEvent struct { // Action is the action that was performed on the comment. // Possible values are: "created", "edited", "deleted". Action *string `json:"action,omitempty"` PullRequest *PullRequest `json:"pull_request,omitempty"` Comment *PullRequestComment `json:"comment,omitempty"` // The following fields are only populated by Webhook events. Changes *EditChange `json:"changes,omitempty"` Repo *Repository `json:"repository,omitempty"` Sender *User `json:"sender,omitempty"` }
PullRequestReviewCommentEvent is triggered when a comment is created on a portion of the unified diff of a pull request. The Webhook event name is "pull_request_review_comment".
GitHub docs: https://developer.github.com/v3/activity/events/types/#pullrequestreviewcommentevent
type PullRequestsService service
PullRequestsService handles communication with the pull request related methods of the GitHub API.
GitHub API docs: http://developer.github.com/v3/pulls/
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 (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/#create-a-comment
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 (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 (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 (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 (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 (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 (s *PullRequestsService) List(owner string, repo string, opt *PullRequestListOptions) ([]*PullRequest, *Response, error)
List the pull requests for the specified repository.
GitHub API docs: http://developer.github.com/v3/pulls/#list-pull-requests
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 (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 (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 (s *PullRequestsService) Merge(owner string, repo string, number int, commitMessage string, options *PullRequestOptions) (*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 struct { Day *int // Day of the week (0-6: =Sunday - Saturday). Hour *int // Hour of day (0-23). Commits *int // Number of commits. }
PunchCard represents the number of commits made during a given hour of a day of thew eek.
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 *PushEventRepository `json:"repository,omitempty"` Before *string `json:"before,omitempty"` DistinctSize *int `json:"distinct_size,omitempty"` // The following fields are only populated by Webhook events. After *string `json:"after,omitempty"` Created *bool `json:"created,omitempty"` Deleted *bool `json:"deleted,omitempty"` Forced *bool `json:"forced,omitempty"` BaseRef *string `json:"base_ref,omitempty"` Compare *string `json:"compare,omitempty"` HeadCommit *PushEventCommit `json:"head_commit,omitempty"` Pusher *User `json:"pusher,omitempty"` Sender *User `json:"sender,omitempty"` }
PushEvent represents a git push to a GitHub repository.
GitHub API docs: http://developer.github.com/v3/activity/events/types/#pushevent
func (p PushEvent) String() string
type PushEventCommit struct { Message *string `json:"message,omitempty"` Author *CommitAuthor `json:"author,omitempty"` URL *string `json:"url,omitempty"` Distinct *bool `json:"distinct,omitempty"` // The following fields are only populated by Events API. SHA *string `json:"sha,omitempty"` // The following fields are only populated by Webhook events. ID *string `json:"id,omitempty"` TreeID *string `json:"tree_id,omitempty"` Timestamp *Timestamp `json:"timestamp,omitempty"` Committer *CommitAuthor `json:"committer,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 (p PushEventCommit) String() string
type PushEventRepoOwner struct { Name *string `json:"name,omitempty"` Email *string `json:"email,omitempty"` }
PushEventRepoOwner is a basic reporesntation of user/org in a PushEvent payload
type PushEventRepository struct { ID *int `json:"id,omitempty"` Name *string `json:"name,omitempty"` FullName *string `json:"full_name,omitempty"` Owner *PushEventRepoOwner `json:"owner,omitempty"` Private *bool `json:"private,omitempty"` Description *string `json:"description,omitempty"` Fork *bool `json:"fork,omitempty"` CreatedAt *Timestamp `json:"created_at,omitempty"` PushedAt *Timestamp `json:"pushed_at,omitempty"` UpdatedAt *Timestamp `json:"updated_at,omitempty"` Homepage *string `json:"homepage,omitempty"` Size *int `json:"size,omitempty"` StargazersCount *int `json:"stargazers_count,omitempty"` WatchersCount *int `json:"watchers_count,omitempty"` Language *string `json:"language,omitempty"` HasIssues *bool `json:"has_issues,omitempty"` HasDownloads *bool `json:"has_downloads,omitempty"` HasWiki *bool `json:"has_wiki,omitempty"` HasPages *bool `json:"has_pages,omitempty"` ForksCount *int `json:"forks_count,omitempty"` OpenIssuesCount *int `json:"open_issues_count,omitempty"` DefaultBranch *string `json:"default_branch,omitempty"` MasterBranch *string `json:"master_branch,omitempty"` Organization *string `json:"organization,omitempty"` // The following fields are only populated by Webhook events. URL *string `json:"url,omitempty"` HTMLURL *string `json:"html_url,omitempty"` }
PushEventRepository represents the repo object in a PushEvent payload
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 (r Rate) String() string
type RateLimitError struct { Rate Rate // Rate specifies last known rate limit for the client Response *http.Response // HTTP response that caused this error Message string `json:"message"` // error message }
RateLimitError occurs when GitHub returns 403 Forbidden response with a rate limit remaining value of 0, and error message starts with "API rate limit exceeded for ".
func (r *RateLimitError) Error() string
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. // // GitHub API docs: https://developer.github.com/v3/#rate-limiting 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 (r RateLimits) String() string
type Reaction struct { // ID is the Reaction ID. ID *int `json:"id,omitempty"` User *User `json:"user,omitempty"` // Content is the type of reaction. // Possible values are: // "+1", "-1", "laugh", "confused", "heart", "hooray". Content *string `json:"content,omitempty"` }
Reaction represents a GitHub reaction.
func (r Reaction) String() string
type Reactions struct { TotalCount *int `json:"total_count,omitempty"` PlusOne *int `json:"+1,omitempty"` MinusOne *int `json:"-1,omitempty"` Laugh *int `json:"laugh,omitempty"` Confused *int `json:"confused,omitempty"` Heart *int `json:"heart,omitempty"` Hooray *int `json:"hooray,omitempty"` URL *string `json:"url,omitempty"` }
Reactions represents a summary of GitHub reactions.
type ReactionsService service
ReactionsService provides access to the reactions-related functions in the GitHub API.
GitHub API docs: https://developer.github.com/v3/reactions/
func (s ReactionsService) CreateCommentReaction(owner, repo string, id int, content string) (*Reaction, *Response, error)
CreateCommentReaction creates a reaction for a commit comment. Note that if you have already created a reaction of type content, the previously created reaction will be returned with Status: 200 OK.
GitHub API docs: https://developer.github.com/v3/reactions/#create-reaction-for-a-commit-comment
func (s ReactionsService) CreateIssueCommentReaction(owner, repo string, id int, content string) (*Reaction, *Response, error)
CreateIssueCommentReaction creates a reaction for an issue comment. Note that if you have already created a reaction of type content, the previously created reaction will be returned with Status: 200 OK.
GitHub API docs: https://developer.github.com/v3/reactions/#create-reaction-for-an-issue-comment
func (s ReactionsService) CreateIssueReaction(owner, repo string, number int, content string) (*Reaction, *Response, error)
CreateIssueReaction creates a reaction for an issue. Note that if you have already created a reaction of type content, the previously created reaction will be returned with Status: 200 OK.
GitHub API docs: https://developer.github.com/v3/reactions/#create-reaction-for-an-issue
func (s ReactionsService) CreatePullRequestCommentReaction(owner, repo string, id int, content string) (*Reaction, *Response, error)
CreatePullRequestCommentReaction creates a reaction for a pull request review comment. Note that if you have already created a reaction of type content, the previously created reaction will be returned with Status: 200 OK.
GitHub API docs: https://developer.github.com/v3/reactions/#create-reaction-for-an-issue-comment
func (s *ReactionsService) DeleteReaction(id int) (*Response, error)
DeleteReaction deletes a reaction.
GitHub API docs: https://developer.github.com/v3/reaction/reactions/#delete-a-reaction-archive
func (s *ReactionsService) ListCommentReactions(owner, repo string, id int, opt *ListOptions) ([]*Reaction, *Response, error)
ListCommentReactions lists the reactions for a commit comment.
GitHub API docs: https://developer.github.com/v3/reactions/#list-reactions-for-a-commit-comment
func (s *ReactionsService) ListIssueCommentReactions(owner, repo string, id int, opt *ListOptions) ([]*Reaction, *Response, error)
ListIssueCommentReactions lists the reactions for an issue comment.
GitHub API docs: https://developer.github.com/v3/reactions/#list-reactions-for-an-issue-comment
func (s *ReactionsService) ListIssueReactions(owner, repo string, number int, opt *ListOptions) ([]*Reaction, *Response, error)
ListIssueReactions lists the reactions for an issue.
GitHub API docs: https://developer.github.com/v3/reactions/#list-reactions-for-an-issue
func (s *ReactionsService) ListPullRequestCommentReactions(owner, repo string, id int, opt *ListOptions) ([]*Reaction, *Response, error)
ListPullRequestCommentReactions lists the reactions for a pull request review comment.
GitHub API docs: https://developer.github.com/v3/reactions/#list-reactions-for-an-issue-comment
type Reference struct { Ref *string `json:"ref"` URL *string `json:"url"` Object *GitObject `json:"object"` }
Reference represents a GitHub reference.
func (r Reference) String() string
type ReferenceListOptions struct { Type string `url:"-"` ListOptions }
ReferenceListOptions specifies optional parameters to the GitService.ListRefs method.
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 (r ReleaseAsset) String() string
type ReleaseEvent struct { // Action is the action that was performed. Possible value is: "published". Action *string `json:"action,omitempty"` Release *RepositoryRelease `json:"release,omitempty"` // The following fields are only populated by Webhook events. Repo *Repository `json:"repository,omitempty"` Sender *User `json:"sender,omitempty"` }
ReleaseEvent is triggered when a release is published. The Webhook event name is "release".
GitHub docs: https://developer.github.com/v3/activity/events/types/#releaseevent
type Rename struct { From *string `json:"from,omitempty"` To *string `json:"to,omitempty"` }
Rename contains details for 'renamed' events.
func (r Rename) String() string
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 (r RepoStatus) String() string
type RepositoriesSearchResult struct { Total *int `json:"total_count,omitempty"` Repositories []Repository `json:"items,omitempty"` }
RepositoriesSearchResult represents the result of a repositories search.
type RepositoriesService service
RepositoriesService handles communication with the repository related methods of the GitHub API.
GitHub API docs: http://developer.github.com/v3/repos/
func (s *RepositoriesService) AddCollaborator(owner, repo, user string, opt *RepositoryAddCollaboratorOptions) (*Response, error)
AddCollaborator adds the specified Github user as collaborator to the given repo.
GitHub API docs: https://developer.github.com/v3/repos/collaborators/#add-user-as-a-collaborator
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 (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 (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 (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 (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 (s *RepositoriesService) CreateFile(owner, repo, path string, opt *RepositoryContentFileOptions) (*RepositoryContentResponse, *Response, error)
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 (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 (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 (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 (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 (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 (s *RepositoriesService) Delete(owner, repo string) (*Response, error)
Delete a repository.
GitHub API docs: https://developer.github.com/v3/repos/#delete-a-repository
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 (s *RepositoriesService) DeleteFile(owner, repo, path string, opt *RepositoryContentFileOptions) (*RepositoryContentResponse, *Response, error)
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 (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 (s *RepositoriesService) DeleteInvitation(repoID, invitationID int) (*Response, error)
DeleteInvitation deletes a repository invitation.
GitHub API docs: https://developer.github.com/v3/repos/invitations/#delete-a-repository-invitation
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 (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 (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 (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 (s *RepositoriesService) DownloadReleaseAsset(owner, repo string, id int) (rc io.ReadCloser, redirectURL string, err error)
DownloadReleaseAsset downloads a release asset or returns a redirect URL.
DownloadReleaseAsset returns an io.ReadCloser that reads the contents of the specified release asset. It is the caller's responsibility to close the ReadCloser. If a redirect is returned, the redirect URL will be returned as a string instead of the io.ReadCloser. Exactly one of rc and redirectURL will be zero.
GitHub API docs : http://developer.github.com/v3/repos/releases/#get-a-single-release-asset
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 (s *RepositoriesService) EditBranch(owner, repo, branchName string, branch *Branch) (*Branch, *Response, error)
EditBranch edits the branch (currently only Branch Protection)
GitHub API docs: https://developer.github.com/v3/repos/#enabling-and-disabling-branch-protection
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 (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 (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 (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 (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 (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 (s *RepositoriesService) GetByID(id int) (*Repository, *Response, error)
GetByID fetches a repository.
Note: GetByID uses the undocumented GitHub API endpoint /repositories/:id.
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 (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 (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 (s *RepositoriesService) GetCommitSHA1(owner, repo, ref, lastSHA string) (string, *Response, error)
GetCommitSHA1 gets the SHA-1 of a commit reference. If a last-known SHA1 is supplied and no new commits have occurred, a 304 Unmodified response is returned.
GitHub API docs: https://developer.github.com/v3/repos/commits/#get-the-sha-1-of-a-commit-reference
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 (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 (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 (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 (s *RepositoriesService) GetLatestRelease(owner, repo string) (*RepositoryRelease, *Response, error)
GetLatestRelease fetches the latest published release for the repository.
GitHub API docs: https://developer.github.com/v3/repos/releases/#get-the-latest-release
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 (s *RepositoriesService) GetReadme(owner, repo string, opt *RepositoryContentGetOptions) (*RepositoryContent, *Response, error)
GetReadme gets the Readme file for the repository.
GitHub API docs: http://developer.github.com/v3/repos/contents/#get-the-readme
▹ Example
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 (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 (s *RepositoriesService) GetReleaseByTag(owner, repo, tag string) (*RepositoryRelease, *Response, error)
GetReleaseByTag fetches a release with the specified tag.
GitHub API docs: https://developer.github.com/v3/repos/releases/#get-a-release-by-tag-name
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 (s *RepositoriesService) License(owner, repo string) (*License, *Response, error)
License gets the contents of a repository's license if one is detected.
GitHub API docs: https://developer.github.com/v3/licenses/#get-the-contents-of-a-repositorys-license
func (s *RepositoriesService) List(user string, opt *RepositoryListOptions) ([]*Repository, *Response, error)
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
▹ Example
func (s *RepositoriesService) ListAll(opt *RepositoryListAllOptions) ([]*Repository, *Response, error)
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 (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 (s *RepositoriesService) ListByOrg(org string, opt *RepositoryListByOrgOptions) ([]*Repository, *Response, error)
ListByOrg lists the repositories for an organization.
GitHub API docs: http://developer.github.com/v3/repos/#list-organization-repositories
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 additions and deletions, but not total commits.
GitHub API Docs: https://developer.github.com/v3/repos/statistics/#code-frequency
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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (s *RepositoriesService) ListInvitations(repoID int, opt *ListOptions) ([]*RepositoryInvitation, *Response, error)
ListInvitations lists all currently-open repository invitations.
GitHub API docs: https://developer.github.com/v3/repos/invitations/#list-invitations-for-a-repository
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 (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 (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 (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 (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 (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 (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 (s *RepositoriesService) ListServiceHooks() ([]*ServiceHook, *Response, error)
ListServiceHooks is deprecated. Use Client.ListServiceHooks instead.
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 (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 (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 (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 (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 (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 (s *RepositoriesService) RequestPageBuild(owner string, repo string) (*PagesBuild, *Response, error)
RequestPageBuild requests a build of a GitHub Pages site without needing to push new commit.
GitHub API docs: https://developer.github.com/v3/repos/pages/#request-a-page-build
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 (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 (s *RepositoriesService) UpdateFile(owner, repo, path string, opt *RepositoryContentFileOptions) (*RepositoryContentResponse, *Response, error)
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 (s *RepositoriesService) UpdateInvitation(repoID, invitationID int, permissions string) (*RepositoryInvitation, *Response, error)
UpdateInvitation updates the permissions associated with a repository invitation.
permissions represents the permissions that the associated user will have on the repository. Possible values are: "read", "write", "admin".
GitHub API docs: https://developer.github.com/v3/repos/invitations/#update-a-repository-invitation
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 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 (r Repository) String() string
type RepositoryAddCollaboratorOptions struct { // Permission specifies the permission to grant the user on this repository. // Possible values are: // pull - team members can pull, but not push to or administer this repository // push - team members can pull and push, but not administer this repository // admin - team members can pull, push and administer this repository // // Default value is "push". This option is only valid for organization-owned repositories. Permission string `json:"permission,omitempty"` }
RepositoryAddCollaboratorOptions specifies the optional parameters to the RepositoriesService.AddCollaborator method.
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"` Reactions *Reactions `json:"reactions,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 (r RepositoryComment) String() string
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 (r RepositoryCommit) String() string
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 contains the actual file content, which may be encoded. // Callers should call GetContent which will decode the content if // necessary. 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 (r *RepositoryContent) Decode() ([]byte, error)
Decode decodes the file content if it is base64 encoded.
Deprecated: Use GetContent instead.
func (r *RepositoryContent) GetContent() (string, error)
GetContent returns the content of r, decoding it if necessary.
func (r RepositoryContent) String() string
String converts RepositoryContent to a string. It's primarily for testing.
type RepositoryContentFileOptions struct { Message *string `json:"message,omitempty"` Content []byte `json:"content,omitempty"` // unencoded 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 struct { Ref string `url:"ref,omitempty"` }
RepositoryContentGetOptions represents an optional ref parameter, which can be a SHA, branch, or tag
type RepositoryContentResponse struct { Content *RepositoryContent `json:"content,omitempty"` Commit `json:"commit,omitempty"` }
RepositoryContentResponse holds the parsed response from CreateFile, UpdateFile, and DeleteFile.
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 RepositoryEvent struct { // Action is the action that was performed. Possible values are: "created", "deleted", // "publicized", "privatized". Action *string `json:"action,omitempty"` Repo *Repository `json:"repository,omitempty"` // The following fields are only populated by Webhook events. Org *Organization `json:"organization,omitempty"` Sender *User `json:"sender,omitempty"` }
RepositoryEvent is triggered when a repository is created. The Webhook event name is "repository".
Events of this type are not visible in timelines, they are only used to trigger organization webhooks.
GitHub docs: https://developer.github.com/v3/activity/events/types/#repositoryevent
type RepositoryInvitation struct { ID *int `json:"id,omitempty"` Repo *Repository `json:"repository,omitempty"` Invitee *User `json:"invitee,omitempty"` Inviter *User `json:"inviter,omitempty"` // Permissions represents the permissions that the associated user will have // on the repository. Possible values are: "read", "write", "admin". Permissions *string `json:"permissions,omitempty"` CreatedAt *Timestamp `json:"created_at,omitempty"` URL *string `json:"url,omitempty"` HTMLURL *string `json:"html_url,omitempty"` }
RepositoryInvitation represents an invitation to collaborate on a repo.
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 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 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 struct { // Visibility of repositories to list. Can be one of all, public, or private. // Default: all Visibility string `url:"visibility,omitempty"` // List repos of given affiliation[s]. // Comma-separated list of values. Can include: // * owner: Repositories that are owned by the authenticated user. // * collaborator: Repositories that the user has been added to as a // collaborator. // * organization_member: Repositories that the user has access to through // being a member of an organization. This includes every repository on // every team that the user is on. // Default: owner,collaborator,organization_member Affiliation string `url:"affiliation,omitempty"` // Type of repositories to list. // Can be one of all, owner, public, private, member. Default: all // Will cause a 422 error if used in the same request as visibility or // affiliation. Type string `url:"type,omitempty"` // How to sort the repository list. Can be one of created, updated, pushed, // full_name. Default: full_name Sort string `url:"sort,omitempty"` // Direction in which to sort repositories. Can be one of asc or desc. // Default: when using full_name: asc; otherwise desc Direction string `url:"direction,omitempty"` ListOptions }
RepositoryListOptions specifies the optional parameters to the RepositoriesService.List method.
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 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 (r RepositoryParticipation) String() string
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"` Author *CommitAuthor `json:"author,omitempty"` }
RepositoryRelease represents a GitHub release in a repository.
func (r RepositoryRelease) String() string
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 RequiredStatusChecks struct { // Who required status checks apply to. // Possible values are: // off // non_admins // everyone EnforcementLevel *string `json:"enforcement_level,omitempty"` // The list of status checks which are required Contexts *[]string `json:"contexts,omitempty"` }
RequiredStatusChecks represents the protection status of a individual branch
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 Scope string
Scope models a GitHub authorization scope.
GitHub API docs:https://developer.github.com/v3/oauth/#scopes
const ( ScopeNone Scope = "(no scope)" // REVISIT: is this actually returned, or just a documentation artifact? ScopeUser Scope = "user" ScopeUserEmail Scope = "user:email" ScopeUserFollow Scope = "user:follow" ScopePublicRepo Scope = "public_repo" ScopeRepo Scope = "repo" ScopeRepoDeployment Scope = "repo_deployment" ScopeRepoStatus Scope = "repo:status" ScopeDeleteRepo Scope = "delete_repo" ScopeNotifications Scope = "notifications" ScopeGist Scope = "gist" ScopeReadRepoHook Scope = "read:repo_hook" ScopeWriteRepoHook Scope = "write:repo_hook" ScopeAdminRepoHook Scope = "admin:repo_hook" ScopeAdminOrgHook Scope = "admin:org_hook" ScopeReadOrg Scope = "read:org" ScopeWriteOrg Scope = "write:org" ScopeAdminOrg Scope = "admin:org" ScopeReadPublicKey Scope = "read:public_key" ScopeWritePublicKey Scope = "write:public_key" ScopeAdminPublicKey Scope = "admin:public_key" ScopeReadGPGKey Scope = "read:gpg_key" ScopeWriteGPGKey Scope = "write:gpg_key" ScopeAdminGPGKey Scope = "admin:gpg_key" )
This is the set of scopes for GitHub API V3
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 service
SearchService provides access to the search related functions in the GitHub API.
GitHub API docs: http://developer.github.com/v3/search/
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 (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 (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 (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 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 (s *ServiceHook) String() string
type SignatureVerification struct { Verified *bool `json:"verified,omitempty"` Reason *string `json:"reason,omitempty"` Signature *string `json:"signature,omitempty"` Payload *string `json:"payload,omitempty"` }
SignatureVerification represents GPG signature verification.
type Source struct { ID *int `json:"id,omitempty"` URL *string `json:"url,omitempty"` Actor *User `json:"actor,omitempty"` }
Source represents a reference's source.
type SourceImportAuthor struct { ID *int `json:"id,omitempty"` RemoteID *string `json:"remote_id,omitempty"` RemoteName *string `json:"remote_name,omitempty"` Email *string `json:"email,omitempty"` Name *string `json:"name,omitempty"` URL *string `json:"url,omitempty"` ImportURL *string `json:"import_url,omitempty"` }
SourceImportAuthor identifies an author imported from a source repository.
GitHub API docs: https://developer.github.com/v3/migration/source_imports/#get-commit-authors
func (a SourceImportAuthor) String() string
type Stargazer struct { StarredAt *Timestamp `json:"starred_at,omitempty"` User *User `json:"user,omitempty"` }
Stargazer represents a user that has starred a repository.
type StarredRepository struct { StarredAt *Timestamp `json:"starred_at,omitempty"` Repository *Repository `json:"repo,omitempty"` }
StarredRepository is returned by ListStarred.
type StatusEvent struct { SHA *string `json:"sha,omitempty"` // State is the new state. Possible values are: "pending", "success", "failure", "error". State *string `json:"state,omitempty"` Description *string `json:"description,omitempty"` TargetURL *string `json:"target_url,omitempty"` Branches []*Branch `json:"branches,omitempty"` // The following fields are only populated by Webhook events. ID *int `json:"id,omitempty"` Name *string `json:"name,omitempty"` Context *string `json:"context,omitempty"` Commit *PushEventCommit `json:"commit,omitempty"` CreatedAt *Timestamp `json:"created_at,omitempty"` UpdatedAt *Timestamp `json:"updated_at,omitempty"` Repo *Repository `json:"repository,omitempty"` Sender *User `json:"sender,omitempty"` }
StatusEvent is triggered when the status of a Git commit changes. The Webhook event name is "status".
Events of this type are not visible in timelines, they are only used to trigger hooks.
GitHub docs: https://developer.github.com/v3/activity/events/types/#statusevent
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 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"` Verification *SignatureVerification `json:"verification,omitempty"` }
Tag represents a tag object.
type Team struct { ID *int `json:"id,omitempty"` Name *string `json:"name,omitempty"` Description *string `json:"description,omitempty"` URL *string `json:"url,omitempty"` Slug *string `json:"slug,omitempty"` // Permission is deprecated when creating or editing a team in an org // using the new GitHub permission model. It no longer identifies the // permission a team has on its repos, but only specifies the default // permission a repo is initially added with. Avoid confusion by // specifying a permission value when calling AddTeamRepo. Permission *string `json:"permission,omitempty"` // Privacy identifies the level of privacy this team should have. // Possible values are: // secret - only visible to organization owners and members of this team // closed - visible to all members of this organization // Default is "secret". Privacy *string `json:"privacy,omitempty"` MembersCount *int `json:"members_count,omitempty"` ReposCount *int `json:"repos_count,omitempty"` Organization *Organization `json:"organization,omitempty"` MembersURL *string `json:"members_url,omitempty"` RepositoriesURL *string `json:"repositories_url,omitempty"` }
Team represents a team within a GitHub organization. Teams are used to manage access to an organization's repositories.
func (t Team) String() string
type TeamAddEvent struct { Team *Team `json:"team,omitempty"` Repo *Repository `json:"repository,omitempty"` // The following fields are only populated by Webhook events. Org *Organization `json:"organization,omitempty"` Sender *User `json:"sender,omitempty"` }
TeamAddEvent is triggered when a repository is added to a team. The Webhook event name is "team_add".
Events of this type are not visible in timelines. These events are only used to trigger hooks.
GitHub docs: https://developer.github.com/v3/activity/events/types/#teamaddevent
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 (tm TextMatch) String() string
type Timeline struct { ID *int `json:"id,omitempty"` URL *string `json:"url,omitempty"` CommitURL *string `json:"commit_url,omitempty"` // The User object that generated the event. Actor *User `json:"actor,omitempty"` // Event identifies the actual type of Event that occurred. Possible values // are: // // assigned // The issue was assigned to the assignee. // // 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. // // commented // A comment was added to the issue. // // committed // A commit was added to the pull request's 'HEAD' branch. Only provided // for pull requests. // // cross-referenced // The issue was referenced from another issue. The 'source' attribute // contains the 'id', 'actor', and 'url' of the reference's source. // // demilestoned // The issue was removed from a milestone. // // head_ref_deleted // The pull request's branch was deleted. // // head_ref_restored // The pull request's branch was restored. // // labeled // A label was added to the issue. // // locked // The issue was locked by the actor. // // mentioned // The actor was @mentioned in an issue body. // // merged // The issue was merged by the actor. The 'commit_id' attribute is the // SHA1 of the HEAD commit that was merged. // // milestoned // The issue was added to a milestone. // // referenced // The issue was referenced from a commit message. The 'commit_id' // attribute is the commit SHA1 of where that happened. // // renamed // The issue title was changed. // // reopened // The issue was reopened by the actor. // // subscribed // The actor subscribed to receive notifications for an issue. // // unassigned // The assignee was unassigned from the issue. // // unlabeled // A label was removed from the issue. // // unlocked // The issue was unlocked by the actor. // // unsubscribed // The actor unsubscribed to stop receiving notifications for an issue. // Event *string `json:"event,omitempty"` // The string SHA of a commit that referenced this Issue or Pull Request. CommitID *string `json:"commit_id,omitempty"` // The timestamp indicating when the event occurred. CreatedAt *time.Time `json:"created_at,omitempty"` // The Label object including `name` and `color` attributes. Only provided for // 'labeled' and 'unlabeled' events. Label *Label `json:"label,omitempty"` // The User object which was assigned to (or unassigned from) this Issue or // Pull Request. Only provided for 'assigned' and 'unassigned' events. Assignee *User `json:"assignee,omitempty"` // The Milestone object including a 'title' attribute. // Only provided for 'milestoned' and 'demilestoned' events. Milestone *Milestone `json:"milestone,omitempty"` // The 'id', 'actor', and 'url' for the source of a reference from another issue. // Only provided for 'cross-referenced' events. Source *Source `json:"source,omitempty"` // An object containing rename details including 'from' and 'to' attributes. // Only provided for 'renamed' events. Rename *Rename `json:"rename,omitempty"` }
Timeline represents an event that occurred around an Issue or Pull Request.
It is similar to an IssueEvent but may contain more information. GitHub API docs: https://developer.github.com/v3/issues/timeline/
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 (t Timestamp) Equal(u Timestamp) bool
Equal reports whether t and u are equal based on time.Equal
func (t Timestamp) String() string
func (t *Timestamp) UnmarshalJSON(data []byte) (err error)
UnmarshalJSON implements the json.Unmarshaler interface. Time is expected in RFC3339 or Unix format.
type Tree struct { SHA *string `json:"sha,omitempty"` Entries []TreeEntry `json:"tree,omitempty"` }
Tree represents a GitHub tree.
func (t Tree) String() string
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 (t TreeEntry) String() string
type TwoFactorAuthError ErrorResponse
TwoFactorAuthError occurs when using HTTP Basic Authentication for a user that has two-factor authentication enabled. The request can be reattempted by providing a one-time password in the request.
func (r *TwoFactorAuthError) Error() string
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 (t *UnauthenticatedRateLimitedTransport) Client() *http.Client
Client returns an *http.Client that makes requests which are subject to the rate limit of your OAuth application.
func (t *UnauthenticatedRateLimitedTransport) RoundTrip(req *http.Request) (*http.Response, error)
RoundTrip implements the RoundTripper interface.
type UploadOptions struct { Name string `url:"name,omitempty"` }
UploadOptions specifies the parameters to methods that support uploads.
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"` SuspendedAt *Timestamp `json:"suspended_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"` // Permissions identifies the permissions that a user has on a given // repository. This is only populated when calling Repositories.ListCollaborators. Permissions *map[string]bool `json:"permissions,omitempty"` }
User represents a GitHub user.
func (u User) String() string
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 struct { // ID of the last user seen Since int `url:"since,omitempty"` ListOptions }
UserListOptions specifies optional parameters to the UsersService.ListAll method.
type UsersSearchResult struct { Total *int `json:"total_count,omitempty"` Users []User `json:"items,omitempty"` }
UsersSearchResult represents the result of an issues search.
type UsersService service
UsersService handles communication with the user related methods of the GitHub API.
GitHub API docs: http://developer.github.com/v3/users/
func (s *UsersService) AcceptInvitation(invitationID int) (*Response, error)
AcceptInvitation accepts the currently-open repository invitation for the authenticated user.
GitHub API docs: https://developer.github.com/v3/repos/invitations/#accept-a-repository-invitation
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 (s *UsersService) CreateGPGKey(armoredPublicKey string) (*GPGKey, *Response, error)
CreateGPGKey creates a GPG key. It requires authenticatation via Basic Auth or OAuth with at least write:gpg_key scope.
GitHub API docs: https://developer.github.com/v3/users/gpg_keys/#create-a-gpg-key
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 (s *UsersService) DeclineInvitation(invitationID int) (*Response, error)
DeclineInvitation declines the currently-open repository invitation for the authenticated user.
GitHub API docs: https://developer.github.com/v3/repos/invitations/#decline-a-repository-invitation
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 (s *UsersService) DeleteGPGKey(id int) (*Response, error)
DeleteGPGKey deletes a GPG key. It requires authentication via Basic Auth or via OAuth with at least admin:gpg_key scope.
GitHub API docs: https://developer.github.com/v3/users/gpg_keys/#delete-a-gpg-key
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 (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 (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 (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 (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 (s *UsersService) GetByID(id int) (*User, *Response, error)
GetByID fetches a user.
Note: GetByID uses the undocumented GitHub API endpoint /user/:id.
func (s *UsersService) GetGPGKey(id int) (*GPGKey, *Response, error)
GetGPGKey gets extended details for a single GPG key. It requires authentication via Basic Auth or via OAuth with at least read:gpg_key scope.
GitHub API docs: https://developer.github.com/v3/users/gpg_keys/#get-a-single-gpg-key
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 (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 (s *UsersService) ListAll(opt *UserListOptions) ([]*User, *Response, error)
ListAll lists all GitHub users.
To paginate through all users, populate 'Since' with the ID of the last user.
GitHub API docs: http://developer.github.com/v3/users/#get-all-users
▹ Example
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 (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 (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 (s *UsersService) ListGPGKeys() ([]*GPGKey, *Response, error)
ListGPGKeys lists the current user's GPG keys. It requires authentication via Basic Auth or via OAuth with at least read:gpg_key scope.
GitHub API docs: https://developer.github.com/v3/users/gpg_keys/#list-your-gpg-keys
func (s *UsersService) ListInvitations() ([]*RepositoryInvitation, *Response, error)
ListInvitations lists all currently-open repository invitations for the authenticated user.
GitHub API docs: https://developer.github.com/v3/repos/invitations/#list-a-users-repository-invitations
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 (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 (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 (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 (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 WatchEvent struct { // Action is the action that was performed. Possible value is: "started". Action *string `json:"action,omitempty"` // The following fields are only populated by Webhook events. Repo *Repository `json:"repository,omitempty"` Sender *User `json:"sender,omitempty"` }
WatchEvent is related to starring a repository, not watching. See this API blog post for an explanation: https://developer.github.com/changes/2012-09-05-watcher-api/
The event’s actor is the user who starred a repository, and the event’s repository is the repository that was starred.
GitHub docs: https://developer.github.com/v3/activity/events/types/#watchevent
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 (w WebHookAuthor) String() string
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 (w WebHookCommit) String() string
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"` Sender *User `json:"sender,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 (w WebHookPayload) String() string
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 (w WeeklyCommitActivity) String() string
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 (w WeeklyStats) String() string