github package - github.com/google/go-github/github - Go Packages

Package github provides a client for using the GitHub API.

Usage:

import "github.com/google/go-github/github"

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

client := github.NewClient(nil)

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

Some API methods have optional parameters that can be passed. For example:

client := github.NewClient(nil)

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

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

NOTE: Using the https://godoc.org/context package, one can easily pass cancelation signals and deadlines to various services of the client for handling a request. In case there is no context available, then context.Background() can be used as a starting point.

For more sample code snippets, head over to the https://github.com/google/go-github/tree/master/example directory.

Authentication

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

import "golang.org/x/oauth2"

func main() {
	ctx := context.Background()
	ts := oauth2.StaticTokenSource(
		&oauth2.Token{AccessToken: "... your access token ..."},
	)
	tc := oauth2.NewClient(ctx, ts)

	client := github.NewClient(tc)

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

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

See the oauth2 docs for complete instructions on using that library.

For API methods that require HTTP Basic Authentication, use the BasicAuthTransport.

GitHub Apps authentication can be provided by the https://github.com/bradleyfalzon/ghinstallation package.

import "github.com/bradleyfalzon/ghinstallation"

func main() {
	// Wrap the shared transport for use with the integration ID 1 authenticating with installation ID 99.
	itr, err := ghinstallation.NewKeyFromFile(http.DefaultTransport, 1, 99, "2016-10-19.private-key.pem")
	if err != nil {
		// Handle error.
	}

	// Use installation transport with client
	client := github.NewClient(&http.Client{Transport: itr})

	// Use client...
}

Rate Limiting

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

The returned Response.Rate value contains the rate limit information from the most recent API call. If a recent enough response isn't available, you can use RateLimits to fetch the most up-to-date rate limit data for the client.

To detect an API rate limit error, you can check if its type is *github.RateLimitError:

repos, _, err := client.Repositories.List(ctx, "", nil)
if _, ok := err.(*github.RateLimitError); ok {
	log.Println("hit rate limit")
}

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

Accepted Status

Some endpoints may return a 202 Accepted status code, meaning that the information required is not yet ready and was scheduled to be gathered on the GitHub side. Methods known to behave like this are documented specifying this behavior.

To detect this condition of error, you can check if its type is *github.AcceptedError:

stats, _, err := client.Repositories.ListContributorsStats(ctx, org, repo)
if _, ok := err.(*github.AcceptedError); ok {
	log.Println("scheduled on GitHub side")
}

Conditional Requests

The GitHub API has good support for conditional requests which will help prevent you from burning through your rate limit, as well as help speed up your application. go-github does not handle conditional requests directly, but is instead designed to work with a caching http.Transport. We recommend using https://github.com/gregjones/httpcache for that.

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

Creating and Updating Resources

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

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

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

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

client := github.NewClient(nil)

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

View Source

const (
	
	Tarball archiveFormat = "tarball"

	
	Zipball archiveFormat = "zipball"
)

This section is empty.

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

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 or equal to 202 Accepted. 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, *AcceptedError for 202 Accepted status codes, and *TwoFactorAuthError for two-factor authentication errors.

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

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

ParseWebHook parses the event payload. For recognized event types, a value of the corresponding struct type will be returned (as returned by Event.ParsePayload()). An error will be returned for unrecognized event types.

Example usage:

func (s *GitHubEventMonitor) ServeHTTP(w http.ResponseWriter, r *http.Request) {
  payload, err := github.ValidatePayload(r, s.webhookSecretKey)
  if err != nil { ... }
  event, err := github.ParseWebHook(github.WebHookType(r), payload)
  if err != nil { ... }
  switch event := event.(type) {
  case *github.CommitCommentEvent:
      processCommitCommentEvent(event)
  case *github.CreateEvent:
      processCreateEvent(event)
  ...
  }
}

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.

ValidatePayload validates an incoming GitHub Webhook event request and returns the (JSON) payload. The Content-Type header of the payload can be "application/json" or "application/x-www-form-urlencoded". If the Content-Type is neither then an error is returned. 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 {
	
	
	Hooks []string `json:"hooks,omitempty"`

	
	
	Git []string `json:"git,omitempty"`

	
	
	
	
	
	VerifiablePasswordAuthentication *bool `json:"verifiable_password_authentication,omitempty"`

	
	
	Pages []string `json:"pages,omitempty"`

	
	
	Importer []string `json:"importer,omitempty"`
}

APIMeta represents metadata about the GitHub API.

func (a *APIMeta) GetVerifiablePasswordAuthentication() bool

GetVerifiablePasswordAuthentication returns the VerifiablePasswordAuthentication field if it's non-nil, zero value otherwise.

AbuseRateLimitError occurs when GitHub returns 403 Forbidden response with the "documentation_url" field value equal to "https://developer.github.com/v3/#abuse-rate-limits".

GetRetryAfter returns the RetryAfter field if it's non-nil, zero value otherwise.

type AcceptedError struct{}

AcceptedError occurs when GitHub returns 202 Accepted response with an empty body, which means a job was scheduled on the GitHub side to process the information needed and cache it. Technically, 202 Accepted is not a real error, it's just used to indicate that results are not ready yet, but should be available soon. The request can be repeated after some time.

type ActivityListStarredOptions struct {
	
	
	Sort string `url:"sort,omitempty"`

	
	
	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: https://developer.github.com/v3/activity/

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.

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

To watch a repository, set subscription.Subscribed to true. To ignore notifications made within a repository, set subscription.Ignored to true. To stop watching a repository, use DeleteRepositorySubscription.

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

type AdminEnforcement struct {
	URL     *string `json:"url,omitempty"`
	Enabled bool    `json:"enabled"`
}

AdminEnforcement represents the configuration to enforce required status checks for repository administrators.

GetURL returns the URL field if it's non-nil, zero value otherwise.

type AdminService service

AdminService handles communication with the admin related methods of the GitHub API. These API routes are normally only accessible for GitHub Enterprise installations.

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

type AdminStats struct {
	Issues     *IssueStats     `json:"issues,omitempty"`
	Hooks      *HookStats      `json:"hooks,omitempty"`
	Milestones *MilestoneStats `json:"milestones,omitempty"`
	Orgs       *OrgStats       `json:"orgs,omitempty"`
	Pages      *PageStats      `json:"pages,omitempty"`
	Users      *UserStats      `json:"users,omitempty"`
	Gists      *GistStats      `json:"gists,omitempty"`
	Pulls      *PullStats      `json:"pulls,omitempty"`
	Repos      *RepoStats      `json:"repos,omitempty"`
}

AdminStats represents a variety of stats of a Github Enterprise installation.

func (a *AdminStats) GetComments() *CommentStats

GetComments returns the Comments field.

func (a *AdminStats) GetGists() *GistStats

GetGists returns the Gists field.

func (a *AdminStats) GetHooks() *HookStats

GetHooks returns the Hooks field.

func (a *AdminStats) GetIssues() *IssueStats

GetIssues returns the Issues field.

func (a *AdminStats) GetMilestones() *MilestoneStats

GetMilestones returns the Milestones field.

func (a *AdminStats) GetOrgs() *OrgStats

GetOrgs returns the Orgs field.

func (a *AdminStats) GetPages() *PageStats

GetPages returns the Pages field.

func (a *AdminStats) GetPulls() *PullStats

GetPulls returns the Pulls field.

func (a *AdminStats) GetRepos() *RepoStats

GetRepos returns the Repos field.

func (a *AdminStats) GetUsers() *UserStats

GetUsers returns the Users field.

type App struct {
	ID          *int64     `json:"id,omitempty"`
	NodeID      *string    `json:"node_id,omitempty"`
	Owner       *User      `json:"owner,omitempty"`
	Name        *string    `json:"name,omitempty"`
	Description *string    `json:"description,omitempty"`
	ExternalURL *string    `json:"external_url,omitempty"`
	HTMLURL     *string    `json:"html_url,omitempty"`
	CreatedAt   *time.Time `json:"created_at,omitempty"`
	UpdatedAt   *time.Time `json:"updated_at,omitempty"`
}

App represents a GitHub App.

GetCreatedAt returns the CreatedAt field if it's non-nil, zero value otherwise.

func (a *App) GetDescription() string

GetDescription returns the Description field if it's non-nil, zero value otherwise.

func (a *App) GetExternalURL() string

GetExternalURL returns the ExternalURL field if it's non-nil, zero value otherwise.

GetHTMLURL returns the HTMLURL field if it's non-nil, zero value otherwise.

GetID returns the ID field if it's non-nil, zero value otherwise.

GetName returns the Name field if it's non-nil, zero value otherwise.

GetNodeID returns the NodeID field if it's non-nil, zero value otherwise.

func (a *App) GetOwner() *User

GetOwner returns the Owner field.

GetUpdatedAt returns the UpdatedAt field if it's non-nil, zero value otherwise.

type Authorization struct {
	ID             *int64            `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"`
	UpdatedAt      *Timestamp        `json:"updated_at,omitempty"`
	CreatedAt      *Timestamp        `json:"created_at,omitempty"`
	Fingerprint    *string           `json:"fingerprint,omitempty"`

	
	User *User `json:"user,omitempty"`
}

Authorization represents an individual GitHub authorization.

func (a *Authorization) GetApp() *AuthorizationApp

GetApp returns the App field.

func (a *Authorization) GetCreatedAt() Timestamp

GetCreatedAt returns the CreatedAt field if it's non-nil, zero value otherwise.

GetFingerprint returns the Fingerprint field if it's non-nil, zero value otherwise.

GetHashedToken returns the HashedToken field if it's non-nil, zero value otherwise.

GetID returns the ID field if it's non-nil, zero value otherwise.

GetNote returns the Note field if it's non-nil, zero value otherwise.

GetNoteURL returns the NoteURL field if it's non-nil, zero value otherwise.

GetToken returns the Token field if it's non-nil, zero value otherwise.

func (a *Authorization) GetTokenLastEight() string

GetTokenLastEight returns the TokenLastEight field if it's non-nil, zero value otherwise.

GetURL returns the URL field if it's non-nil, zero value otherwise.

func (a *Authorization) GetUpdatedAt() Timestamp

GetUpdatedAt returns the UpdatedAt field if it's non-nil, zero value otherwise.

func (a *Authorization) GetUser() *User

GetUser returns the User field.

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).

GetClientID returns the ClientID field if it's non-nil, zero value otherwise.

GetName returns the Name field if it's non-nil, zero value otherwise.

GetURL returns the URL field if it's non-nil, zero value otherwise.

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.

GetClientID returns the ClientID field if it's non-nil, zero value otherwise.

GetClientSecret returns the ClientSecret field if it's non-nil, zero value otherwise.

GetFingerprint returns the Fingerprint field if it's non-nil, zero value otherwise.

GetNote returns the Note field if it's non-nil, zero value otherwise.

GetNoteURL returns the NoteURL field if it's non-nil, zero value otherwise.

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

GetFingerprint returns the Fingerprint field if it's non-nil, zero value otherwise.

GetNote returns the Note field if it's non-nil, zero value otherwise.

GetNoteURL returns the NoteURL field if it's non-nil, zero value otherwise.

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/

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

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

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

type AutoTriggerCheck struct {
	AppID   *int64 `json:"app_id,omitempty"`  
	Setting *bool  `json:"setting,omitempty"` 
}

AutoTriggerCheck enables or disables automatic creation of CheckSuite events upon pushes to the repository.

GetAppID returns the AppID field if it's non-nil, zero value otherwise.

func (a *AutoTriggerCheck) GetSetting() bool

GetSetting returns the Setting field if it's non-nil, zero value otherwise.

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.

Client returns an *http.Client that makes requests that are authenticated using HTTP Basic Authentication.

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"`
	NodeID   *string `json:"node_id,omitempty"`
}

Blob represents a blob object.

func (*Blob) GetContent

GetContent returns the Content field if it's non-nil, zero value otherwise.

GetEncoding returns the Encoding field if it's non-nil, zero value otherwise.

GetNodeID returns the NodeID field if it's non-nil, zero value otherwise.

GetSHA returns the SHA field if it's non-nil, zero value otherwise.

func (b *Blob) GetSize() int

GetSize returns the Size field if it's non-nil, zero value otherwise.

GetURL returns the URL field if it's non-nil, zero value otherwise.

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

Branch represents a repository branch

func (b *Branch) GetCommit() *RepositoryCommit

GetCommit returns the Commit field.

GetName returns the Name field if it's non-nil, zero value otherwise.

func (b *Branch) GetProtected() bool

GetProtected returns the Protected field if it's non-nil, zero value otherwise.

type BranchRestrictions struct {
	
	Users []*User `json:"users"`
	
	Teams []*Team `json:"teams"`
}

BranchRestrictions represents the restriction that only certain users or teams may push to a branch.

type BranchRestrictionsRequest struct {
	
	Users []string `json:"users"`
	
	Teams []string `json:"teams"`
}

BranchRestrictionsRequest represents the request to create/edit the restriction that only certain users or teams may push to a branch. It is separate from BranchRestrictions above because the request structure is different from the response structure.

type CheckRun struct {
	ID           *int64          `json:"id,omitempty"`
	HeadSHA      *string         `json:"head_sha,omitempty"`
	ExternalID   *string         `json:"external_id,omitempty"`
	URL          *string         `json:"url,omitempty"`
	HTMLURL      *string         `json:"html_url,omitempty"`
	Status       *string         `json:"status,omitempty"`
	Conclusion   *string         `json:"conclusion,omitempty"`
	StartedAt    *Timestamp      `json:"started_at,omitempty"`
	CompletedAt  *Timestamp      `json:"completed_at,omitempty"`
	Output       *CheckRunOutput `json:"output,omitempty"`
	Name         *string         `json:"name,omitempty"`
	CheckSuite   *CheckSuite     `json:"check_suite,omitempty"`
	App          *App            `json:"app,omitempty"`
	PullRequests []*PullRequest  `json:"pull_requests,omitempty"`
}

CheckRun represents a GitHub check run on a repository associated with a GitHub app.

func (c *CheckRun) GetApp() *App

GetApp returns the App field.

func (c *CheckRun) GetCheckSuite() *CheckSuite

GetCheckSuite returns the CheckSuite field.

func (c *CheckRun) GetCompletedAt() Timestamp

GetCompletedAt returns the CompletedAt field if it's non-nil, zero value otherwise.

GetConclusion returns the Conclusion field if it's non-nil, zero value otherwise.

GetExternalID returns the ExternalID field if it's non-nil, zero value otherwise.

GetHTMLURL returns the HTMLURL field if it's non-nil, zero value otherwise.

GetHeadSHA returns the HeadSHA field if it's non-nil, zero value otherwise.

GetID returns the ID field if it's non-nil, zero value otherwise.

GetName returns the Name field if it's non-nil, zero value otherwise.

func (c *CheckRun) GetOutput() *CheckRunOutput

GetOutput returns the Output field.

func (c *CheckRun) GetStartedAt() Timestamp

GetStartedAt returns the StartedAt field if it's non-nil, zero value otherwise.

GetStatus returns the Status field if it's non-nil, zero value otherwise.

GetURL returns the URL field if it's non-nil, zero value otherwise.

type CheckRunAnnotation struct {
	FileName     *string `json:"filename,omitempty"`
	BlobHRef     *string `json:"blob_href,omitempty"`
	StartLine    *int    `json:"start_line,omitempty"`
	EndLine      *int    `json:"end_line,omitempty"`
	WarningLevel *string `json:"warning_level,omitempty"`
	Message      *string `json:"message,omitempty"`
	Title        *string `json:"title,omitempty"`
	RawDetails   *string `json:"raw_details,omitempty"`
}

CheckRunAnnotation represents an annotation object for a CheckRun output.

GetBlobHRef returns the BlobHRef field if it's non-nil, zero value otherwise.

func (c *CheckRunAnnotation) GetEndLine() int

GetEndLine returns the EndLine field if it's non-nil, zero value otherwise.

GetFileName returns the FileName field if it's non-nil, zero value otherwise.

GetMessage returns the Message field if it's non-nil, zero value otherwise.

GetRawDetails returns the RawDetails field if it's non-nil, zero value otherwise.

func (c *CheckRunAnnotation) GetStartLine() int

GetStartLine returns the StartLine field if it's non-nil, zero value otherwise.

GetTitle returns the Title field if it's non-nil, zero value otherwise.

GetWarningLevel returns the WarningLevel field if it's non-nil, zero value otherwise.

type CheckRunEvent struct {
	CheckRun *CheckRun `json:"check_run,omitempty"`
	
	Action *string `json:"action,omitempty"`

	
	Repo         *Repository   `json:"repository,omitempty"`
	Org          *Organization `json:"organization,omitempty"`
	Sender       *User         `json:"sender,omitempty"`
	Installation *Installation `json:"installation,omitempty"`
}

CheckRunEvent is triggered when a check run is "created", "updated", or "re-requested". The Webhook event name is "check_run".

GitHub API docs: https://developer.github.com/v3/activity/events/types/#checkrunevent

GetAction returns the Action field if it's non-nil, zero value otherwise.

func (c *CheckRunEvent) GetCheckRun() *CheckRun

GetCheckRun returns the CheckRun field.

func (c *CheckRunEvent) GetInstallation() *Installation

GetInstallation returns the Installation field.

func (c *CheckRunEvent) GetOrg() *Organization

GetOrg returns the Org field.

func (c *CheckRunEvent) GetRepo() *Repository

GetRepo returns the Repo field.

func (c *CheckRunEvent) GetSender() *User

GetSender returns the Sender field.

type CheckRunImage struct {
	Alt      *string `json:"alt,omitempty"`
	ImageURL *string `json:"image_url,omitempty"`
	Caption  *string `json:"caption,omitempty"`
}

CheckRunImage represents an image object for a CheckRun output.

GetAlt returns the Alt field if it's non-nil, zero value otherwise.

GetCaption returns the Caption field if it's non-nil, zero value otherwise.

GetImageURL returns the ImageURL field if it's non-nil, zero value otherwise.

type CheckRunOutput struct {
	Title            *string               `json:"title,omitempty"`
	Summary          *string               `json:"summary,omitempty"`
	Text             *string               `json:"text,omitempty"`
	AnnotationsCount *int                  `json:"annotations_count,omitempty"`
	AnnotationsURL   *string               `json:"annotations_url,omitempty"`
	Annotations      []*CheckRunAnnotation `json:"annotations,omitempty"`
	Images           []*CheckRunImage      `json:"images,omitempty"`
}

CheckRunOutput represents the output of a CheckRun.

func (c *CheckRunOutput) GetAnnotationsCount() int

GetAnnotationsCount returns the AnnotationsCount field if it's non-nil, zero value otherwise.

func (c *CheckRunOutput) GetAnnotationsURL() string

GetAnnotationsURL returns the AnnotationsURL field if it's non-nil, zero value otherwise.

GetSummary returns the Summary field if it's non-nil, zero value otherwise.

GetText returns the Text field if it's non-nil, zero value otherwise.

GetTitle returns the Title field if it's non-nil, zero value otherwise.

type CheckSuite struct {
	ID           *int64         `json:"id,omitempty"`
	HeadBranch   *string        `json:"head_branch,omitempty"`
	HeadSHA      *string        `json:"head_sha,omitempty"`
	URL          *string        `json:"url,omitempty"`
	BeforeSHA    *string        `json:"before,omitempty"`
	AfterSHA     *string        `json:"after,omitempty"`
	Status       *string        `json:"status,omitempty"`
	Conclusion   *string        `json:"conclusion,omitempty"`
	App          *App           `json:"app,omitempty"`
	Repository   *Repository    `json:"repository,omitempty"`
	PullRequests []*PullRequest `json:"pull_requests,omitempty"`
}

CheckSuite represents a suite of check runs.

GetAfterSHA returns the AfterSHA field if it's non-nil, zero value otherwise.

func (c *CheckSuite) GetApp() *App

GetApp returns the App field.

GetBeforeSHA returns the BeforeSHA field if it's non-nil, zero value otherwise.

GetConclusion returns the Conclusion field if it's non-nil, zero value otherwise.

GetHeadBranch returns the HeadBranch field if it's non-nil, zero value otherwise.

GetHeadSHA returns the HeadSHA field if it's non-nil, zero value otherwise.

GetID returns the ID field if it's non-nil, zero value otherwise.

func (c *CheckSuite) GetRepository() *Repository

GetRepository returns the Repository field.

GetStatus returns the Status field if it's non-nil, zero value otherwise.

GetURL returns the URL field if it's non-nil, zero value otherwise.

type CheckSuiteEvent struct {
	CheckSuite *CheckSuite `json:"check_suite,omitempty"`
	
	Action *string `json:"action,omitempty"`

	
	Repo         *Repository   `json:"repository,omitempty"`
	Org          *Organization `json:"organization,omitempty"`
	Sender       *User         `json:"sender,omitempty"`
	Installation *Installation `json:"installation,omitempty"`
}

CheckSuiteEvent is triggered when a check suite is "completed", "requested", or "re-requested". The Webhook event name is "check_suite".

GitHub API docs: https://developer.github.com/v3/activity/events/types/#checksuiteevent

GetAction returns the Action field if it's non-nil, zero value otherwise.

func (c *CheckSuiteEvent) GetCheckSuite() *CheckSuite

GetCheckSuite returns the CheckSuite field.

func (c *CheckSuiteEvent) GetInstallation() *Installation

GetInstallation returns the Installation field.

func (c *CheckSuiteEvent) GetOrg() *Organization

GetOrg returns the Org field.

func (c *CheckSuiteEvent) GetRepo() *Repository

GetRepo returns the Repo field.

func (c *CheckSuiteEvent) GetSender() *User

GetSender returns the Sender field.

type CheckSuitePreferenceOptions struct {
	PreferenceList *PreferenceList `json:"auto_trigger_checks,omitempty"` 
}

CheckSuitePreferenceOptions set options for check suite preferences for a repository.

func (c *CheckSuitePreferenceOptions) GetPreferenceList() *PreferenceList

GetPreferenceList returns the PreferenceList field.

type CheckSuitePreferenceResults struct {
	Preferences *PreferenceList `json:"preferences,omitempty"`
	Repository  *Repository     `json:"repository,omitempty"`
}

CheckSuitePreferenceResults represents the results of the preference set operation.

func (c *CheckSuitePreferenceResults) GetPreferences() *PreferenceList

GetPreferences returns the Preferences field.

func (c *CheckSuitePreferenceResults) GetRepository() *Repository

GetRepository returns the Repository field.

type Client struct {

	
	
	
	BaseURL *url.URL

	
	UploadURL *url.URL

	
	UserAgent string

	
	Activity       *ActivityService
	Admin          *AdminService
	Apps           *AppsService
	Authorizations *AuthorizationsService
	Checks         *ChecksService
	Gists          *GistsService
	Git            *GitService
	Gitignores     *GitignoresService
	Issues         *IssuesService
	Licenses       *LicensesService
	Marketplace    *MarketplaceService
	Migrations     *MigrationService
	Organizations  *OrganizationsService
	Projects       *ProjectsService
	PullRequests   *PullRequestsService
	Reactions      *ReactionsService
	Repositories   *RepositoriesService
	Search         *SearchService
	Teams          *TeamsService
	Users          *UsersService
	
}

A Client manages communication with the GitHub API.

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).

NewEnterpriseClient returns a new GitHub API client with provided base URL and upload URL (often the same URL). If either URL does not have a trailing slash, one is added automatically. If a nil httpClient is provided, http.DefaultClient will be used.

Note that NewEnterpriseClient is a convenience helper only; its behavior is equivalent to using NewClient, followed by setting the BaseURL and UploadURL fields.

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/

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.

The provided ctx must be non-nil. If it is canceled or times out, ctx.Err() will be returned.

Markdown renders an arbitrary Markdown document.

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

package main

import (
	"context"
	"fmt"

	"github.com/google/go-github/github"
)

func main() {
	client := github.NewClient(nil)

	input := "# heading #\n\nLink to issue #1"
	opt := &github.MarkdownOptions{Mode: "gfm", Context: "google/go-github"}

	output, _, err := client.Markdown(context.Background(), input, opt)
	if err != nil {
		fmt.Println(err)
	}

	fmt.Println(output)
}

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.

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.

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

RateLimits returns the rate limits for the current client.

type CodeOfConduct struct {
	Name *string `json:"name,omitempty"`
	Key  *string `json:"key,omitempty"`
	URL  *string `json:"url,omitempty"`
	Body *string `json:"body,omitempty"`
}

CodeOfConduct represents a code of conduct.

func (*CodeOfConduct) GetBody

GetBody returns the Body field if it's non-nil, zero value otherwise.

GetKey returns the Key field if it's non-nil, zero value otherwise.

GetName returns the Name field if it's non-nil, zero value otherwise.

GetURL returns the URL field if it's non-nil, zero value otherwise.

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.

GetHTMLURL returns the HTMLURL field if it's non-nil, zero value otherwise.

GetName returns the Name field if it's non-nil, zero value otherwise.

GetPath returns the Path field if it's non-nil, zero value otherwise.

func (c *CodeResult) GetRepository() *Repository

GetRepository returns the Repository field.

GetSHA returns the SHA field if it's non-nil, zero value otherwise.

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

CodeSearchResult represents the result of a code search.

func (c *CodeSearchResult) GetIncompleteResults() bool

GetIncompleteResults returns the IncompleteResults field if it's non-nil, zero value otherwise.

func (c *CodeSearchResult) GetTotal() int

GetTotal returns the Total field if it's non-nil, zero value otherwise.

type CombinedStatus struct {
	
	
	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.

GetCommitURL returns the CommitURL field if it's non-nil, zero value otherwise.

GetName returns the Name field if it's non-nil, zero value otherwise.

GetRepositoryURL returns the RepositoryURL field if it's non-nil, zero value otherwise.

GetSHA returns the SHA field if it's non-nil, zero value otherwise.

GetState returns the State field if it's non-nil, zero value otherwise.

func (c *CombinedStatus) GetTotalCount() int

GetTotalCount returns the TotalCount field if it's non-nil, zero value otherwise.

type CommentStats struct {
}

CommentStats represents the number of total comments on commits, gists, issues and pull requests.

func (c *CommentStats) GetTotalCommitComments() int

GetTotalCommitComments returns the TotalCommitComments field if it's non-nil, zero value otherwise.

func (c *CommentStats) GetTotalGistComments() int

GetTotalGistComments returns the TotalGistComments field if it's non-nil, zero value otherwise.

func (c *CommentStats) GetTotalIssueComments() int

GetTotalIssueComments returns the TotalIssueComments field if it's non-nil, zero value otherwise.

func (c *CommentStats) GetTotalPullRequestComments() int

GetTotalPullRequestComments returns the TotalPullRequestComments field if it's non-nil, zero value otherwise.

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"`
	HTMLURL      *string                `json:"html_url,omitempty"`
	URL          *string                `json:"url,omitempty"`
	Verification *SignatureVerification `json:"verification,omitempty"`
	NodeID       *string                `json:"node_id,omitempty"`

	
	
	CommentCount *int `json:"comment_count,omitempty"`
}

Commit represents a GitHub commit.

func (c *Commit) GetAuthor() *CommitAuthor

GetAuthor returns the Author field.

func (c *Commit) GetCommentCount() int

GetCommentCount returns the CommentCount field if it's non-nil, zero value otherwise.

func (c *Commit) GetCommitter() *CommitAuthor

GetCommitter returns the Committer field.

GetHTMLURL returns the HTMLURL field if it's non-nil, zero value otherwise.

GetMessage returns the Message field if it's non-nil, zero value otherwise.

GetNodeID returns the NodeID field if it's non-nil, zero value otherwise.

GetSHA returns the SHA field if it's non-nil, zero value otherwise.

func (c *Commit) GetStats() *CommitStats

GetStats returns the Stats field.

func (c *Commit) GetTree() *Tree

GetTree returns the Tree field.

GetURL returns the URL field if it's non-nil, zero value otherwise.

func (c *Commit) GetVerification() *SignatureVerification

GetVerification returns the Verification field.

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

	
	Login *string `json:"username,omitempty"` 
}

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

GetDate returns the Date field if it's non-nil, zero value otherwise.

GetEmail returns the Email field if it's non-nil, zero value otherwise.

GetLogin returns the Login field if it's non-nil, zero value otherwise.

GetName returns the Name field if it's non-nil, zero value otherwise.

type CommitCommentEvent struct {

	
}

CommitCommentEvent is triggered when a commit comment is created. The Webhook event name is "commit_comment".

GitHub API docs: https://developer.github.com/v3/activity/events/types/#commitcommentevent

GetAction returns the Action field if it's non-nil, zero value otherwise.

func (c *CommitCommentEvent) GetComment() *RepositoryComment

GetComment returns the Comment field.

func (c *CommitCommentEvent) GetInstallation() *Installation

GetInstallation returns the Installation field.

func (c *CommitCommentEvent) GetRepo() *Repository

GetRepo returns the Repo field.

func (c *CommitCommentEvent) GetSender() *User

GetSender returns the Sender field.

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"`
	BlobURL     *string `json:"blob_url,omitempty"`
	RawURL      *string `json:"raw_url,omitempty"`
	ContentsURL *string `json:"contents_url,omitempty"`
}

CommitFile represents a file modified in a commit.

func (c *CommitFile) GetAdditions() int

GetAdditions returns the Additions field if it's non-nil, zero value otherwise.

GetBlobURL returns the BlobURL field if it's non-nil, zero value otherwise.

func (c *CommitFile) GetChanges() int

GetChanges returns the Changes field if it's non-nil, zero value otherwise.

func (*CommitFile) GetContentsURL

GetContentsURL returns the ContentsURL field if it's non-nil, zero value otherwise.

func (c *CommitFile) GetDeletions() int

GetDeletions returns the Deletions field if it's non-nil, zero value otherwise.

GetFilename returns the Filename field if it's non-nil, zero value otherwise.

GetPatch returns the Patch field if it's non-nil, zero value otherwise.

GetRawURL returns the RawURL field if it's non-nil, zero value otherwise.

GetSHA returns the SHA field if it's non-nil, zero value otherwise.

GetStatus returns the Status field if it's non-nil, zero value otherwise.

type CommitResult 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"`
	HTMLURL     *string   `json:"html_url,omitempty"`
	URL         *string   `json:"url,omitempty"`

	Repository *Repository `json:"repository,omitempty"`
	Score      *float64    `json:"score,omitempty"`
}

CommitResult represents a commit object as returned in commit search endpoint response.

func (c *CommitResult) GetAuthor() *User

GetAuthor returns the Author field.

GetCommentsURL returns the CommentsURL field if it's non-nil, zero value otherwise.

func (c *CommitResult) GetCommit() *Commit

GetCommit returns the Commit field.

func (c *CommitResult) GetCommitter() *User

GetCommitter returns the Committer field.

GetHTMLURL returns the HTMLURL field if it's non-nil, zero value otherwise.

func (c *CommitResult) GetRepository() *Repository

GetRepository returns the Repository field.

GetSHA returns the SHA field if it's non-nil, zero value otherwise.

GetScore returns the Score field.

GetURL returns the URL field if it's non-nil, zero value otherwise.

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) GetAdditions() int

GetAdditions returns the Additions field if it's non-nil, zero value otherwise.

func (c *CommitStats) GetDeletions() int

GetDeletions returns the Deletions field if it's non-nil, zero value otherwise.

func (c *CommitStats) GetTotal() int

GetTotal returns the Total field if it's non-nil, zero value otherwise.

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

	
	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"`

	HTMLURL      *string `json:"html_url,omitempty"`
	PermalinkURL *string `json:"permalink_url,omitempty"`
	DiffURL      *string `json:"diff_url,omitempty"`
	PatchURL     *string `json:"patch_url,omitempty"`
	URL          *string `json:"url,omitempty"` 
}

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

func (c *CommitsComparison) GetAheadBy() int

GetAheadBy returns the AheadBy field if it's non-nil, zero value otherwise.

func (c *CommitsComparison) GetBaseCommit() *RepositoryCommit

GetBaseCommit returns the BaseCommit field.

func (c *CommitsComparison) GetBehindBy() int

GetBehindBy returns the BehindBy field if it's non-nil, zero value otherwise.

GetDiffURL returns the DiffURL field if it's non-nil, zero value otherwise.

GetHTMLURL returns the HTMLURL field if it's non-nil, zero value otherwise.

func (c *CommitsComparison) GetMergeBaseCommit() *RepositoryCommit

GetMergeBaseCommit returns the MergeBaseCommit field.

GetPatchURL returns the PatchURL field if it's non-nil, zero value otherwise.

GetPermalinkURL returns the PermalinkURL field if it's non-nil, zero value otherwise.

GetStatus returns the Status field if it's non-nil, zero value otherwise.

func (c *CommitsComparison) GetTotalCommits() int

GetTotalCommits returns the TotalCommits field if it's non-nil, zero value otherwise.

GetURL returns the URL field if it's non-nil, zero value otherwise.

type CommitsListOptions struct {
	
	SHA string `url:"sha,omitempty"`

	
	Path string `url:"path,omitempty"`

	
	Author string `url:"author,omitempty"`

	
	Since time.Time `url:"since,omitempty"`

	
	Until time.Time `url:"until,omitempty"`

	ListOptions
}

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

type CommitsSearchResult struct {
	Total             *int            `json:"total_count,omitempty"`
	IncompleteResults *bool           `json:"incomplete_results,omitempty"`
	Commits           []*CommitResult `json:"items,omitempty"`
}

CommitsSearchResult represents the result of a commits search.

func (c *CommitsSearchResult) GetIncompleteResults() bool

GetIncompleteResults returns the IncompleteResults field if it's non-nil, zero value otherwise.

func (c *CommitsSearchResult) GetTotal() int

GetTotal returns the Total field if it's non-nil, zero value otherwise.

type CommunityHealthFiles struct {
}

CommunityHealthFiles represents the different files in the community health metrics response.

func (c *CommunityHealthFiles) GetCodeOfConduct() *Metric

GetCodeOfConduct returns the CodeOfConduct field.

func (c *CommunityHealthFiles) GetContributing() *Metric

GetContributing returns the Contributing field.

func (c *CommunityHealthFiles) GetIssueTemplate() *Metric

GetIssueTemplate returns the IssueTemplate field.

func (c *CommunityHealthFiles) GetLicense() *Metric

GetLicense returns the License field.

func (c *CommunityHealthFiles) GetPullRequestTemplate() *Metric

GetPullRequestTemplate returns the PullRequestTemplate field.

func (c *CommunityHealthFiles) GetReadme() *Metric

GetReadme returns the Readme field.

type CommunityHealthMetrics struct {
}

CommunityHealthMetrics represents a response containing the community metrics of a repository.

GetFiles returns the Files field.

func (c *CommunityHealthMetrics) GetHealthPercentage() int

GetHealthPercentage returns the HealthPercentage field if it's non-nil, zero value otherwise.

GetUpdatedAt returns the UpdatedAt field if it's non-nil, zero value otherwise.

type Contributor struct {
	Login             *string `json:"login,omitempty"`
	ID                *int64  `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,omitempty"`
	Contributions     *int    `json:"contributions,omitempty"`
}

Contributor represents a repository contributor

GetAvatarURL returns the AvatarURL field if it's non-nil, zero value otherwise.

func (c *Contributor) GetContributions() int

GetContributions returns the Contributions field if it's non-nil, zero value otherwise.

GetEventsURL returns the EventsURL field if it's non-nil, zero value otherwise.

GetFollowersURL returns the FollowersURL field if it's non-nil, zero value otherwise.

GetFollowingURL returns the FollowingURL field if it's non-nil, zero value otherwise.

GetGistsURL returns the GistsURL field if it's non-nil, zero value otherwise.

GetGravatarID returns the GravatarID field if it's non-nil, zero value otherwise.

GetHTMLURL returns the HTMLURL field if it's non-nil, zero value otherwise.

GetID returns the ID field if it's non-nil, zero value otherwise.

GetLogin returns the Login field if it's non-nil, zero value otherwise.

func (c *Contributor) GetOrganizationsURL() string

GetOrganizationsURL returns the OrganizationsURL field if it's non-nil, zero value otherwise.

func (c *Contributor) GetReceivedEventsURL() string

GetReceivedEventsURL returns the ReceivedEventsURL field if it's non-nil, zero value otherwise.

GetReposURL returns the ReposURL field if it's non-nil, zero value otherwise.

func (c *Contributor) GetSiteAdmin() bool

GetSiteAdmin returns the SiteAdmin field if it's non-nil, zero value otherwise.

GetStarredURL returns the StarredURL field if it's non-nil, zero value otherwise.

func (c *Contributor) GetSubscriptionsURL() string

GetSubscriptionsURL returns the SubscriptionsURL field if it's non-nil, zero value otherwise.

GetType returns the Type field if it's non-nil, zero value otherwise.

GetURL returns the URL field if it's non-nil, zero value otherwise.

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) GetAuthor() *Contributor

GetAuthor returns the Author field.

func (c *ContributorStats) GetTotal() int

GetTotal returns the Total field if it's non-nil, zero value otherwise.

type CreateCheckRunOptions struct {
	Name        string          `json:"name"`                   
	HeadBranch  string          `json:"head_branch"`            
	HeadSHA     string          `json:"head_sha"`               
	DetailsURL  *string         `json:"details_url,omitempty"`  
	ExternalID  *string         `json:"external_id,omitempty"`  
	Status      *string         `json:"status,omitempty"`       
	Conclusion  *string         `json:"conclusion,omitempty"`   
	StartedAt   *Timestamp      `json:"started_at,omitempty"`   
	CompletedAt *Timestamp      `json:"completed_at,omitempty"` 
	Output      *CheckRunOutput `json:"output,omitempty"`       
}

CreateCheckRunOptions sets up parameters needed to create a CheckRun.

func (c *CreateCheckRunOptions) GetCompletedAt() Timestamp

GetCompletedAt returns the CompletedAt field if it's non-nil, zero value otherwise.

GetConclusion returns the Conclusion field if it's non-nil, zero value otherwise.

GetDetailsURL returns the DetailsURL field if it's non-nil, zero value otherwise.

GetExternalID returns the ExternalID field if it's non-nil, zero value otherwise.

func (c *CreateCheckRunOptions) GetOutput() *CheckRunOutput

GetOutput returns the Output field.

func (c *CreateCheckRunOptions) GetStartedAt() Timestamp

GetStartedAt returns the StartedAt field if it's non-nil, zero value otherwise.

GetStatus returns the Status field if it's non-nil, zero value otherwise.

type CreateCheckSuiteOptions struct {
	HeadSHA    string  `json:"head_sha"`              
	HeadBranch *string `json:"head_branch,omitempty"` 
}

CreateCheckSuiteOptions sets up parameters to manually create a check suites

GetHeadBranch returns the HeadBranch field if it's non-nil, zero value otherwise.

type CreateEvent struct {
	Ref *string `json:"ref,omitempty"`
	
	RefType      *string `json:"ref_type,omitempty"`
	MasterBranch *string `json:"master_branch,omitempty"`
	Description  *string `json:"description,omitempty"`

	
	PusherType   *string       `json:"pusher_type,omitempty"`
	Repo         *Repository   `json:"repository,omitempty"`
	Sender       *User         `json:"sender,omitempty"`
	Installation *Installation `json:"installation,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 API docs: https://developer.github.com/v3/activity/events/types/#createevent

GetDescription returns the Description field if it's non-nil, zero value otherwise.

func (c *CreateEvent) GetInstallation() *Installation

GetInstallation returns the Installation field.

GetMasterBranch returns the MasterBranch field if it's non-nil, zero value otherwise.

GetPusherType returns the PusherType field if it's non-nil, zero value otherwise.

GetRef returns the Ref field if it's non-nil, zero value otherwise.

GetRefType returns the RefType field if it's non-nil, zero value otherwise.

func (c *CreateEvent) GetRepo() *Repository

GetRepo returns the Repo field.

func (c *CreateEvent) GetSender() *User

GetSender returns the Sender field.

type CreateOrgInvitationOptions struct {
	
	InviteeID *int64 `json:"invitee_id,omitempty"`
	
	
	Email *string `json:"email,omitempty"`
	
	
	
	
	
	
	
	
	Role   *string `json:"role"`
	TeamID []int64 `json:"team_ids"`
}

CreateOrgInvitationOptions specifies the parameters to the OrganizationService.Invite method.

GetEmail returns the Email field if it's non-nil, zero value otherwise.

GetInviteeID returns the InviteeID field if it's non-nil, zero value otherwise.

GetRole returns the Role field if it's non-nil, zero value otherwise.

type DeleteEvent struct {
	Ref *string `json:"ref,omitempty"`
	
	RefType *string `json:"ref_type,omitempty"`

	
	PusherType   *string       `json:"pusher_type,omitempty"`
	Repo         *Repository   `json:"repository,omitempty"`
	Sender       *User         `json:"sender,omitempty"`
	Installation *Installation `json:"installation,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 API docs: https://developer.github.com/v3/activity/events/types/#deleteevent

func (d *DeleteEvent) GetInstallation() *Installation

GetInstallation returns the Installation field.

GetPusherType returns the PusherType field if it's non-nil, zero value otherwise.

GetRef returns the Ref field if it's non-nil, zero value otherwise.

GetRefType returns the RefType field if it's non-nil, zero value otherwise.

func (d *DeleteEvent) GetRepo() *Repository

GetRepo returns the Repo field.

func (d *DeleteEvent) GetSender() *User

GetSender returns the Sender field.

type Deployment struct {
	URL           *string         `json:"url,omitempty"`
	ID            *int64          `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:"updated_at,omitempty"`
	StatusesURL   *string         `json:"statuses_url,omitempty"`
	RepositoryURL *string         `json:"repository_url,omitempty"`
	NodeID        *string         `json:"node_id,omitempty"`
}

Deployment represents a deployment in a repo

func (d *Deployment) GetCreatedAt() Timestamp

GetCreatedAt returns the CreatedAt field if it's non-nil, zero value otherwise.

func (d *Deployment) GetCreator() *User

GetCreator returns the Creator field.

GetDescription returns the Description field if it's non-nil, zero value otherwise.

GetEnvironment returns the Environment field if it's non-nil, zero value otherwise.

GetID returns the ID field if it's non-nil, zero value otherwise.

GetNodeID returns the NodeID field if it's non-nil, zero value otherwise.

GetRef returns the Ref field if it's non-nil, zero value otherwise.

func (d *Deployment) GetRepositoryURL() string

GetRepositoryURL returns the RepositoryURL field if it's non-nil, zero value otherwise.

GetSHA returns the SHA field if it's non-nil, zero value otherwise.

GetStatusesURL returns the StatusesURL field if it's non-nil, zero value otherwise.

GetTask returns the Task field if it's non-nil, zero value otherwise.

GetURL returns the URL field if it's non-nil, zero value otherwise.

func (d *Deployment) GetUpdatedAt() Timestamp

GetUpdatedAt returns the UpdatedAt field if it's non-nil, zero value otherwise.

type DeploymentEvent struct {
	Deployment *Deployment `json:"deployment,omitempty"`
	Repo       *Repository `json:"repository,omitempty"`

	
	Sender       *User         `json:"sender,omitempty"`
	Installation *Installation `json:"installation,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 API docs: https://developer.github.com/v3/activity/events/types/#deploymentevent

func (d *DeploymentEvent) GetDeployment() *Deployment

GetDeployment returns the Deployment field.

func (d *DeploymentEvent) GetInstallation() *Installation

GetInstallation returns the Installation field.

func (d *DeploymentEvent) GetRepo() *Repository

GetRepo returns the Repo field.

func (d *DeploymentEvent) GetSender() *User

GetSender returns the Sender field.

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

func (d *DeploymentRequest) GetAutoMerge() bool

GetAutoMerge returns the AutoMerge field if it's non-nil, zero value otherwise.

GetDescription returns the Description field if it's non-nil, zero value otherwise.

GetEnvironment returns the Environment field if it's non-nil, zero value otherwise.

GetPayload returns the Payload field if it's non-nil, zero value otherwise.

func (d *DeploymentRequest) GetProductionEnvironment() bool

GetProductionEnvironment returns the ProductionEnvironment field if it's non-nil, zero value otherwise.

GetRef returns the Ref field if it's non-nil, zero value otherwise.

func (d *DeploymentRequest) GetRequiredContexts() []string

GetRequiredContexts returns the RequiredContexts field if it's non-nil, zero value otherwise.

GetTask returns the Task field if it's non-nil, zero value otherwise.

func (d *DeploymentRequest) GetTransientEnvironment() bool

GetTransientEnvironment returns the TransientEnvironment field if it's non-nil, zero value otherwise.

type DeploymentStatus struct {
	ID *int64 `json:"id,omitempty"`
	
	
	State         *string    `json:"state,omitempty"`
	Creator       *User      `json:"creator,omitempty"`
	Description   *string    `json:"description,omitempty"`
	TargetURL     *string    `json:"target_url,omitempty"`
	CreatedAt     *Timestamp `json:"created_at,omitempty"`
	UpdatedAt     *Timestamp `json:"updated_at,omitempty"`
	DeploymentURL *string    `json:"deployment_url,omitempty"`
	RepositoryURL *string    `json:"repository_url,omitempty"`
	NodeID        *string    `json:"node_id,omitempty"`
}

DeploymentStatus represents the status of a particular deployment.

func (d *DeploymentStatus) GetCreatedAt() Timestamp

GetCreatedAt returns the CreatedAt field if it's non-nil, zero value otherwise.

func (d *DeploymentStatus) GetCreator() *User

GetCreator returns the Creator field.

GetDeploymentURL returns the DeploymentURL field if it's non-nil, zero value otherwise.

GetDescription returns the Description field if it's non-nil, zero value otherwise.

GetID returns the ID field if it's non-nil, zero value otherwise.

GetNodeID returns the NodeID field if it's non-nil, zero value otherwise.

GetRepositoryURL returns the RepositoryURL field if it's non-nil, zero value otherwise.

GetState returns the State field if it's non-nil, zero value otherwise.

GetTargetURL returns the TargetURL field if it's non-nil, zero value otherwise.

func (d *DeploymentStatus) GetUpdatedAt() Timestamp

GetUpdatedAt returns the UpdatedAt field if it's non-nil, zero value otherwise.

type DeploymentStatusEvent struct {
	Deployment       *Deployment       `json:"deployment,omitempty"`
	DeploymentStatus *DeploymentStatus `json:"deployment_status,omitempty"`
	Repo             *Repository       `json:"repository,omitempty"`

	
	Sender       *User         `json:"sender,omitempty"`
	Installation *Installation `json:"installation,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 API docs: https://developer.github.com/v3/activity/events/types/#deploymentstatusevent

func (d *DeploymentStatusEvent) GetDeployment() *Deployment

GetDeployment returns the Deployment field.

func (d *DeploymentStatusEvent) GetDeploymentStatus() *DeploymentStatus

GetDeploymentStatus returns the DeploymentStatus field.

func (d *DeploymentStatusEvent) GetInstallation() *Installation

GetInstallation returns the Installation field.

func (d *DeploymentStatusEvent) GetRepo() *Repository

GetRepo returns the Repo field.

func (d *DeploymentStatusEvent) GetSender() *User

GetSender returns the Sender field.

type DeploymentStatusRequest struct {
	State          *string `json:"state,omitempty"`
	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

func (d *DeploymentStatusRequest) GetAutoInactive() bool

GetAutoInactive returns the AutoInactive field if it's non-nil, zero value otherwise.

GetDescription returns the Description field if it's non-nil, zero value otherwise.

GetEnvironmentURL returns the EnvironmentURL field if it's non-nil, zero value otherwise.

GetLogURL returns the LogURL field if it's non-nil, zero value otherwise.

GetState returns the State field if it's non-nil, zero value otherwise.

type DeploymentsListOptions struct {
	
	SHA string `url:"sha,omitempty"`

	
	Ref string `url:"ref,omitempty"`

	
	Task string `url:"task,omitempty"`

	
	Environment string `url:"environment,omitempty"`

	ListOptions
}

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

type DiscussionComment struct {
	Body          *string    `json:"body,omitempty"`
	BodyHTML      *string    `json:"body_html,omitempty"`
	BodyVersion   *string    `json:"body_version,omitempty"`
}

DiscussionComment represents a GitHub dicussion in a team.

func (d *DiscussionComment) GetAuthor() *User

GetAuthor returns the Author field.

func (*DiscussionComment) GetBody

GetBody returns the Body field if it's non-nil, zero value otherwise.

func (*DiscussionComment) GetBodyHTML

GetBodyHTML returns the BodyHTML field if it's non-nil, zero value otherwise.

func (*DiscussionComment) GetBodyVersion

GetBodyVersion returns the BodyVersion field if it's non-nil, zero value otherwise.

func (d *DiscussionComment) GetCreatedAt() Timestamp

GetCreatedAt returns the CreatedAt field if it's non-nil, zero value otherwise.

GetDiscussionURL returns the DiscussionURL field if it's non-nil, zero value otherwise.

GetHTMLURL returns the HTMLURL field if it's non-nil, zero value otherwise.

func (d *DiscussionComment) GetLastEditedAt() Timestamp

GetLastEditedAt returns the LastEditedAt field if it's non-nil, zero value otherwise.

GetNodeID returns the NodeID field if it's non-nil, zero value otherwise.

func (d *DiscussionComment) GetNumber() int

GetNumber returns the Number field if it's non-nil, zero value otherwise.

GetURL returns the URL field if it's non-nil, zero value otherwise.

func (d *DiscussionComment) GetUpdatedAt() Timestamp

GetUpdatedAt returns the UpdatedAt field if it's non-nil, zero value otherwise.

type DiscussionCommentListOptions struct {
	
	Direction string `url:"direction,omitempty"`
}

DiscussionCommentListOptions specifies optional parameters to the TeamServices.ListComments method.

type DiscussionListOptions struct {
	
	
	Direction string `url:"direction,omitempty"`
}

DiscussionListOptions specifies optional parameters to the TeamServices.ListDiscussions method.

type DismissalRestrictions struct {
	
	Users []*User `json:"users"`
	
	Teams []*Team `json:"teams"`
}

DismissalRestrictions specifies which users and teams can dismiss pull request reviews.

type DismissalRestrictionsRequest struct {
	
	Users *[]string `json:"users,omitempty"`
	
	Teams *[]string `json:"teams,omitempty"`
}

DismissalRestrictionsRequest represents the request to create/edit the restriction to allows only specific users or teams to dimiss pull request reviews. It is separate from DismissalRestrictions above because the request structure is different from the response structure. Note: Both Users and Teams must be nil, or both must be non-nil.

GetTeams returns the Teams field if it's non-nil, zero value otherwise.

GetUsers returns the Users field if it's non-nil, zero value otherwise.

type DraftReviewComment struct {
	Body     *string `json:"body,omitempty"`
}

DraftReviewComment represents a comment part of the review.

func (*DraftReviewComment) GetBody

GetBody returns the Body field if it's non-nil, zero value otherwise.

GetPath returns the Path field if it's non-nil, zero value otherwise.

func (d *DraftReviewComment) GetPosition() int

GetPosition returns the Position field if it's non-nil, zero value otherwise.

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"` 
	Field    string `json:"field"`    
	Code     string `json:"code"`     
	Message  string `json:"message"`  
}

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: https://developer.github.com/v3/#client-errors

type ErrorResponse struct {
	Response *http.Response 
	Message  string         `json:"message"` 
	Errors   []Error        `json:"errors"`  
	
	
	
	Block *struct {
		Reason    string     `json:"reason,omitempty"`
		CreatedAt *Timestamp `json:"created_at,omitempty"`
	} `json:"block,omitempty"`
	
	
	
	DocumentationURL string `json:"documentation_url,omitempty"`
}

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

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

type Event struct {
	Type       *string          `json:"type,omitempty"`
	Public     *bool            `json:"public,omitempty"`
	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) GetActor() *User

GetActor returns the Actor field.

GetCreatedAt returns the CreatedAt field if it's non-nil, zero value otherwise.

GetID returns the ID field if it's non-nil, zero value otherwise.

func (e *Event) GetOrg() *Organization

GetOrg returns the Org field.

func (e *Event) GetPublic() bool

GetPublic returns the Public field if it's non-nil, zero value otherwise.

GetRawPayload returns the RawPayload field if it's non-nil, zero value otherwise.

func (e *Event) GetRepo() *Repository

GetRepo returns the Repo field.

GetType returns the Type field if it's non-nil, zero value otherwise.

func (e *Event) ParsePayload() (payload interface{}, err error)

ParsePayload parses the event payload. For recognized event types, a value of the corresponding struct type will be returned.

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.

Deprecated: Use ParsePayload instead, which returns an error rather than panics if JSON unmarshaling raw payload fails.

type FeedLink struct {
	HRef *string `json:"href,omitempty"`
	Type *string `json:"type,omitempty"`
}

FeedLink represents a link to a related resource.

GetHRef returns the HRef field if it's non-nil, zero value otherwise.

GetType returns the Type field if it's non-nil, zero value otherwise.

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.

func (f *Feeds) GetCurrentUserActorURL() string

GetCurrentUserActorURL returns the CurrentUserActorURL field if it's non-nil, zero value otherwise.

func (f *Feeds) GetCurrentUserOrganizationURL() string

GetCurrentUserOrganizationURL returns the CurrentUserOrganizationURL field if it's non-nil, zero value otherwise.

func (f *Feeds) GetCurrentUserPublicURL() string

GetCurrentUserPublicURL returns the CurrentUserPublicURL field if it's non-nil, zero value otherwise.

func (f *Feeds) GetCurrentUserURL() string

GetCurrentUserURL returns the CurrentUserURL field if it's non-nil, zero value otherwise.

func (f *Feeds) GetTimelineURL() string

GetTimelineURL returns the TimelineURL field if it's non-nil, zero value otherwise.

GetUserURL returns the UserURL field if it's non-nil, zero value otherwise.

type ForkEvent struct {
	
	Forkee *Repository `json:"forkee,omitempty"`

	
	Repo         *Repository   `json:"repository,omitempty"`
	Sender       *User         `json:"sender,omitempty"`
	Installation *Installation `json:"installation,omitempty"`
}

ForkEvent is triggered when a user forks a repository. The Webhook event name is "fork".

GitHub API docs: https://developer.github.com/v3/activity/events/types/#forkevent

func (f *ForkEvent) GetForkee() *Repository

GetForkee returns the Forkee field.

func (f *ForkEvent) GetInstallation() *Installation

GetInstallation returns the Installation field.

func (f *ForkEvent) GetRepo() *Repository

GetRepo returns the Repo field.

func (f *ForkEvent) GetSender() *User

GetSender returns the Sender field.

type GPGEmail struct {
	Email    *string `json:"email,omitempty"`
	Verified *bool   `json:"verified,omitempty"`
}

GPGEmail represents an email address associated to a GPG key.

GetEmail returns the Email field if it's non-nil, zero value otherwise.

func (g *GPGEmail) GetVerified() bool

GetVerified returns the Verified field if it's non-nil, zero value otherwise.

type GPGKey struct {
	ID                *int64     `json:"id,omitempty"`
	PrimaryKeyID      *int64     `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 (g *GPGKey) GetCanCertify() bool

GetCanCertify returns the CanCertify field if it's non-nil, zero value otherwise.

func (g *GPGKey) GetCanEncryptComms() bool

GetCanEncryptComms returns the CanEncryptComms field if it's non-nil, zero value otherwise.

func (g *GPGKey) GetCanEncryptStorage() bool

GetCanEncryptStorage returns the CanEncryptStorage field if it's non-nil, zero value otherwise.

func (g *GPGKey) GetCanSign() bool

GetCanSign returns the CanSign field if it's non-nil, zero value otherwise.

GetCreatedAt returns the CreatedAt field if it's non-nil, zero value otherwise.

GetExpiresAt returns the ExpiresAt field if it's non-nil, zero value otherwise.

GetID returns the ID field if it's non-nil, zero value otherwise.

GetKeyID returns the KeyID field if it's non-nil, zero value otherwise.

func (g *GPGKey) GetPrimaryKeyID() int64

GetPrimaryKeyID returns the PrimaryKeyID field if it's non-nil, zero value otherwise.

GetPublicKey returns the PublicKey field if it's non-nil, zero value otherwise.

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"`
	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"`
	NodeID      *string                   `json:"node_id,omitempty"`
}

Gist represents a GitHub's gist.

func (g *Gist) GetComments() int

GetComments returns the Comments field if it's non-nil, zero value otherwise.

GetCreatedAt returns the CreatedAt field if it's non-nil, zero value otherwise.

func (g *Gist) GetDescription() string

GetDescription returns the Description field if it's non-nil, zero value otherwise.

func (g *Gist) GetGitPullURL() string

GetGitPullURL returns the GitPullURL field if it's non-nil, zero value otherwise.

func (g *Gist) GetGitPushURL() string

GetGitPushURL returns the GitPushURL field if it's non-nil, zero value otherwise.

GetHTMLURL returns the HTMLURL field if it's non-nil, zero value otherwise.

GetID returns the ID field if it's non-nil, zero value otherwise.

GetNodeID returns the NodeID field if it's non-nil, zero value otherwise.

func (g *Gist) GetOwner() *User

GetOwner returns the Owner field.

func (g *Gist) GetPublic() bool

GetPublic returns the Public field if it's non-nil, zero value otherwise.

GetUpdatedAt returns the UpdatedAt field if it's non-nil, zero value otherwise.

type GistComment struct {
	Body      *string    `json:"body,omitempty"`
}

GistComment represents a Gist comment.

func (*GistComment) GetBody

GetBody returns the Body field if it's non-nil, zero value otherwise.

GetCreatedAt returns the CreatedAt field if it's non-nil, zero value otherwise.

GetID returns the ID field if it's non-nil, zero value otherwise.

GetURL returns the URL field if it's non-nil, zero value otherwise.

func (g *GistComment) GetUser() *User

GetUser returns the User field.

type GistCommit struct {
	URL          *string      `json:"url,omitempty"`
	Version      *string      `json:"version,omitempty"`
	User         *User        `json:"user,omitempty"`
	ChangeStatus *CommitStats `json:"change_status,omitempty"`
	CommittedAt  *Timestamp   `json:"committed_at,omitempty"`
	NodeID       *string      `json:"node_id,omitempty"`
}

GistCommit represents a commit on a gist.

func (g *GistCommit) GetChangeStatus() *CommitStats

GetChangeStatus returns the ChangeStatus field.

func (g *GistCommit) GetCommittedAt() Timestamp

GetCommittedAt returns the CommittedAt field if it's non-nil, zero value otherwise.

GetNodeID returns the NodeID field if it's non-nil, zero value otherwise.

GetURL returns the URL field if it's non-nil, zero value otherwise.

func (g *GistCommit) GetUser() *User

GetUser returns the User field.

GetVersion returns the Version field if it's non-nil, zero value otherwise.

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

GistFile represents a file on a gist.

func (*GistFile) GetContent

GetContent returns the Content field if it's non-nil, zero value otherwise.

GetFilename returns the Filename field if it's non-nil, zero value otherwise.

GetLanguage returns the Language field if it's non-nil, zero value otherwise.

GetRawURL returns the RawURL field if it's non-nil, zero value otherwise.

func (g *GistFile) GetSize() int

GetSize returns the Size field if it's non-nil, zero value otherwise.

GetType returns the Type field if it's non-nil, zero value otherwise.

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"`
	NodeID    *string    `json:"node_id,omitempty"`
}

GistFork represents a fork of a gist.

func (g *GistFork) GetCreatedAt() Timestamp

GetCreatedAt returns the CreatedAt field if it's non-nil, zero value otherwise.

GetID returns the ID field if it's non-nil, zero value otherwise.

GetNodeID returns the NodeID field if it's non-nil, zero value otherwise.

GetURL returns the URL field if it's non-nil, zero value otherwise.

func (g *GistFork) GetUpdatedAt() Timestamp

GetUpdatedAt returns the UpdatedAt field if it's non-nil, zero value otherwise.

func (g *GistFork) GetUser() *User

GetUser returns the User field.

type GistListOptions struct {
	
	Since time.Time `url:"since,omitempty"`

	ListOptions
}

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

type GistStats struct {
	TotalGists   *int `json:"total_gists,omitempty"`
	PrivateGists *int `json:"private_gists,omitempty"`
	PublicGists  *int `json:"public_gists,omitempty"`
}

GistStats represents the number of total, private and public gists.

func (g *GistStats) GetPrivateGists() int

GetPrivateGists returns the PrivateGists field if it's non-nil, zero value otherwise.

func (g *GistStats) GetPublicGists() int

GetPublicGists returns the PublicGists field if it's non-nil, zero value otherwise.

func (g *GistStats) GetTotalGists() int

GetTotalGists returns the TotalGists field if it's non-nil, zero value otherwise.

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

GitObject represents a Git object.

GetSHA returns the SHA field if it's non-nil, zero value otherwise.

GetType returns the Type field if it's non-nil, zero value otherwise.

GetURL returns the URL field if it's non-nil, zero value otherwise.

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

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

CreateCommit creates a new commit in a repository. commit must not be nil.

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: https://developer.github.com/v3/git/commits/#create-a-commit

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: https://developer.github.com/v3/git/trees/#create-a-tree

GetRef fetches a single Reference object for a given Git ref. If there is no exact match, GetRef will return an error.

Note: The GitHub API can return multiple matches. If you wish to use this functionality please use the GetRefs() method.

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

GetRefs fetches a slice of Reference objects for a given Git ref. If there is an exact match, only that ref is returned. If there is no exact match, GitHub returns all refs that start with ref. If returned error is nil, there will be at least 1 ref returned. For example:

"heads/featureA" -> ["refs/heads/featureA"]                         // Exact match, single ref is returned.
"heads/feature"  -> ["refs/heads/featureA", "refs/heads/featureB"]  // All refs that start with ref.
"heads/notexist" -> []                                              // Returns an error.

GitHub API docs: https://developer.github.com/v3/git/refs/#get-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.

GetName returns the Name field if it's non-nil, zero value otherwise.

GetSource returns the Source field if it's non-nil, zero value otherwise.

type GollumEvent struct {
	Pages []*Page `json:"pages,omitempty"`

	
	Repo         *Repository   `json:"repository,omitempty"`
	Sender       *User         `json:"sender,omitempty"`
	Installation *Installation `json:"installation,omitempty"`
}

GollumEvent is triggered when a Wiki page is created or updated. The Webhook event name is "gollum".

GitHub API docs: https://developer.github.com/v3/activity/events/types/#gollumevent

func (g *GollumEvent) GetInstallation() *Installation

GetInstallation returns the Installation field.

func (g *GollumEvent) GetRepo() *Repository

GetRepo returns the Repo field.

func (g *GollumEvent) GetSender() *User

GetSender returns the Sender field.

type Grant struct {
	ID        *int64            `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) GetApp() *AuthorizationApp

GetApp returns the App field.

func (g *Grant) GetCreatedAt() Timestamp

GetCreatedAt returns the CreatedAt field if it's non-nil, zero value otherwise.

GetID returns the ID field if it's non-nil, zero value otherwise.

GetURL returns the URL field if it's non-nil, zero value otherwise.

func (g *Grant) GetUpdatedAt() Timestamp

GetUpdatedAt returns the UpdatedAt field if it's non-nil, zero value otherwise.

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        *int64                 `json:"id,omitempty"`
}

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

func (h *Hook) GetActive() bool

GetActive returns the Active field if it's non-nil, zero value otherwise.

GetCreatedAt returns the CreatedAt field if it's non-nil, zero value otherwise.

GetID returns the ID field if it's non-nil, zero value otherwise.

GetName returns the Name field if it's non-nil, zero value otherwise.

GetURL returns the URL field if it's non-nil, zero value otherwise.

GetUpdatedAt returns the UpdatedAt field if it's non-nil, zero value otherwise.

type HookStats struct {
	TotalHooks    *int `json:"total_hooks,omitempty"`
	ActiveHooks   *int `json:"active_hooks,omitempty"`
	InactiveHooks *int `json:"inactive_hooks,omitempty"`
}

HookStats represents the number of total, active and inactive hooks.

func (h *HookStats) GetActiveHooks() int

GetActiveHooks returns the ActiveHooks field if it's non-nil, zero value otherwise.

func (h *HookStats) GetInactiveHooks() int

GetInactiveHooks returns the InactiveHooks field if it's non-nil, zero value otherwise.

func (h *HookStats) GetTotalHooks() int

GetTotalHooks returns the TotalHooks field if it's non-nil, zero value otherwise.

type Hovercard struct {
	Contexts []*UserContext `json:"contexts,omitempty"`
}

Hovercard represents hovercard information about a user.

type HovercardOptions struct {
	
	
	SubjectType string `url:"subject_type"`

	
	SubjectID string `url:"subject_id"`
}

HovercardOptions specifies optional parameters to the UsersService.GetHovercard method.

type Import struct {
	
	VCSURL *string `json:"vcs_url,omitempty"`
	
	
	
	
	VCS *string `json:"vcs,omitempty"`
	
	
	VCSUsername *string `json:"vcs_username,omitempty"`
	VCSPassword *string `json:"vcs_password,omitempty"`
	
	TFVCProject *string `json:"tfvc_project,omitempty"`

	
	
	
	UseLFS *string `json:"use_lfs,omitempty"`
	
	
	HasLargeFiles *bool `json:"has_large_files,omitempty"`
	
	
	LargeFilesSize *int `json:"large_files_size,omitempty"`
	
	
	LargeFilesCount *int `json:"large_files_count,omitempty"`

	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	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"`

	
	
	HumanName *string `json:"human_name,omitempty"`

	
	
	
	ProjectChoices []Import `json:"project_choices,omitempty"`
}

Import represents a repository import request.

func (i *Import) GetAuthorsCount() int

GetAuthorsCount returns the AuthorsCount field if it's non-nil, zero value otherwise.

func (i *Import) GetAuthorsURL() string

GetAuthorsURL returns the AuthorsURL field if it's non-nil, zero value otherwise.

func (i *Import) GetCommitCount() int

GetCommitCount returns the CommitCount field if it's non-nil, zero value otherwise.

func (i *Import) GetFailedStep() string

GetFailedStep returns the FailedStep field if it's non-nil, zero value otherwise.

GetHTMLURL returns the HTMLURL field if it's non-nil, zero value otherwise.

func (i *Import) GetHasLargeFiles() bool

GetHasLargeFiles returns the HasLargeFiles field if it's non-nil, zero value otherwise.

GetHumanName returns the HumanName field if it's non-nil, zero value otherwise.

func (i *Import) GetLargeFilesCount() int

GetLargeFilesCount returns the LargeFilesCount field if it's non-nil, zero value otherwise.

func (i *Import) GetLargeFilesSize() int

GetLargeFilesSize returns the LargeFilesSize field if it's non-nil, zero value otherwise.

GetMessage returns the Message field if it's non-nil, zero value otherwise.

func (i *Import) GetPercent() int

GetPercent returns the Percent field if it's non-nil, zero value otherwise.

func (i *Import) GetPushPercent() int

GetPushPercent returns the PushPercent field if it's non-nil, zero value otherwise.

func (i *Import) GetRepositoryURL() string

GetRepositoryURL returns the RepositoryURL field if it's non-nil, zero value otherwise.

GetStatus returns the Status field if it's non-nil, zero value otherwise.

func (i *Import) GetStatusText() string

GetStatusText returns the StatusText field if it's non-nil, zero value otherwise.

func (i *Import) GetTFVCProject() string

GetTFVCProject returns the TFVCProject field if it's non-nil, zero value otherwise.

GetURL returns the URL field if it's non-nil, zero value otherwise.

GetUseLFS returns the UseLFS field if it's non-nil, zero value otherwise.

GetVCS returns the VCS field if it's non-nil, zero value otherwise.

func (i *Import) GetVCSPassword() string

GetVCSPassword returns the VCSPassword field if it's non-nil, zero value otherwise.

GetVCSURL returns the VCSURL field if it's non-nil, zero value otherwise.

func (i *Import) GetVCSUsername() string

GetVCSUsername returns the VCSUsername field if it's non-nil, zero value otherwise.

type Installation struct {
	ID                  *int64                   `json:"id,omitempty"`
	AppID               *int64                   `json:"app_id,omitempty"`
	TargetID            *int64                   `json:"target_id,omitempty"`
	Account             *User                    `json:"account,omitempty"`
	AccessTokensURL     *string                  `json:"access_tokens_url,omitempty"`
	RepositoriesURL     *string                  `json:"repositories_url,omitempty"`
	HTMLURL             *string                  `json:"html_url,omitempty"`
	TargetType          *string                  `json:"target_type,omitempty"`
	SingleFileName      *string                  `json:"single_file_name,omitempty"`
	RepositorySelection *string                  `json:"repository_selection,omitempty"`
	Events              []string                 `json:"events,omitempty"`
	Permissions         *InstallationPermissions `json:"permissions,omitempty"`
	CreatedAt           *Timestamp               `json:"created_at,omitempty"`
	UpdatedAt           *Timestamp               `json:"updated_at,omitempty"`
}

Installation represents a GitHub Apps installation.

func (i *Installation) GetAccessTokensURL() string

GetAccessTokensURL returns the AccessTokensURL field if it's non-nil, zero value otherwise.

func (i *Installation) GetAccount() *User

GetAccount returns the Account field.

GetAppID returns the AppID field if it's non-nil, zero value otherwise.

func (i *Installation) GetCreatedAt() Timestamp

GetCreatedAt returns the CreatedAt field if it's non-nil, zero value otherwise.

GetHTMLURL returns the HTMLURL field if it's non-nil, zero value otherwise.

GetID returns the ID field if it's non-nil, zero value otherwise.

func (i *Installation) GetPermissions() *InstallationPermissions

GetPermissions returns the Permissions field.

func (i *Installation) GetRepositoriesURL() string

GetRepositoriesURL returns the RepositoriesURL field if it's non-nil, zero value otherwise.

func (i *Installation) GetRepositorySelection() string

GetRepositorySelection returns the RepositorySelection field if it's non-nil, zero value otherwise.

func (i *Installation) GetSingleFileName() string

GetSingleFileName returns the SingleFileName field if it's non-nil, zero value otherwise.

GetTargetID returns the TargetID field if it's non-nil, zero value otherwise.

GetTargetType returns the TargetType field if it's non-nil, zero value otherwise.

func (i *Installation) GetUpdatedAt() Timestamp

GetUpdatedAt returns the UpdatedAt field if it's non-nil, zero value otherwise.

type InstallationEvent struct {
	
	Action       *string       `json:"action,omitempty"`
	Repositories []*Repository `json:"repositories,omitempty"`
	Sender       *User         `json:"sender,omitempty"`
	Installation *Installation `json:"installation,omitempty"`
}

InstallationEvent is triggered when a GitHub App has been installed or uninstalled. The Webhook event name is "installation".

GitHub API docs: https://developer.github.com/v3/activity/events/types/#installationevent

GetAction returns the Action field if it's non-nil, zero value otherwise.

func (i *InstallationEvent) GetInstallation() *Installation

GetInstallation returns the Installation field.

func (i *InstallationEvent) GetSender() *User

GetSender returns the Sender field.

type InstallationPermissions struct {
	Metadata   *string `json:"metadata,omitempty"`
	Contents   *string `json:"contents,omitempty"`
	Issues     *string `json:"issues,omitempty"`
	SingleFile *string `json:"single_file,omitempty"`
}

InstallationPermissions lists the permissions for metadata, contents, issues and single file for an installation.

func (*InstallationPermissions) GetContents

GetContents returns the Contents field if it's non-nil, zero value otherwise.

GetIssues returns the Issues field if it's non-nil, zero value otherwise.

GetMetadata returns the Metadata field if it's non-nil, zero value otherwise.

GetSingleFile returns the SingleFile field if it's non-nil, zero value otherwise.

type InstallationRepositoriesEvent struct {
	
	Action              *string       `json:"action,omitempty"`
	RepositoriesAdded   []*Repository `json:"repositories_added,omitempty"`
	RepositoriesRemoved []*Repository `json:"repositories_removed,omitempty"`
	RepositorySelection *string       `json:"repository_selection,omitempty"`
	Sender              *User         `json:"sender,omitempty"`
	Installation        *Installation `json:"installation,omitempty"`
}

InstallationRepositoriesEvent is triggered when a repository is added or removed from an installation. The Webhook event name is "installation_repositories".

GitHub API docs: https://developer.github.com/v3/activity/events/types/#installationrepositoriesevent

GetAction returns the Action field if it's non-nil, zero value otherwise.

func (i *InstallationRepositoriesEvent) GetInstallation() *Installation

GetInstallation returns the Installation field.

GetRepositorySelection returns the RepositorySelection field if it's non-nil, zero value otherwise.

func (i *InstallationRepositoriesEvent) GetSender() *User

GetSender returns the Sender field.

type InstallationToken struct {
	Token     *string    `json:"token,omitempty"`
	ExpiresAt *time.Time `json:"expires_at,omitempty"`
}

InstallationToken represents an installation token.

GetExpiresAt returns the ExpiresAt field if it's non-nil, zero value otherwise.

GetToken returns the Token field if it's non-nil, zero value otherwise.

type Invitation struct {
	ID    *int64  `json:"id,omitempty"`
	Login *string `json:"login,omitempty"`
	Email *string `json:"email,omitempty"`
	
	Role              *string    `json:"role,omitempty"`
	CreatedAt         *time.Time `json:"created_at,omitempty"`
	Inviter           *User      `json:"inviter,omitempty"`
	TeamCount         *int       `json:"team_count,omitempty"`
	InvitationTeamURL *string    `json:"invitation_team_url,omitempty"`
}

Invitation represents a team member's invitation status.

GetCreatedAt returns the CreatedAt field if it's non-nil, zero value otherwise.

GetEmail returns the Email field if it's non-nil, zero value otherwise.

GetID returns the ID field if it's non-nil, zero value otherwise.

func (i *Invitation) GetInvitationTeamURL() string

GetInvitationTeamURL returns the InvitationTeamURL field if it's non-nil, zero value otherwise.

func (i *Invitation) GetInviter() *User

GetInviter returns the Inviter field.

GetLogin returns the Login field if it's non-nil, zero value otherwise.

GetRole returns the Role field if it's non-nil, zero value otherwise.

func (i *Invitation) GetTeamCount() int

GetTeamCount returns the TeamCount field if it's non-nil, zero value otherwise.

type Issue struct {
	ID               *int64            `json:"id,omitempty"`
	Number           *int              `json:"number,omitempty"`
	State            *string           `json:"state,omitempty"`
	Locked           *bool             `json:"locked,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"`
	ClosedAt         *time.Time        `json:"closed_at,omitempty"`
	CreatedAt        *time.Time        `json:"created_at,omitempty"`
	UpdatedAt        *time.Time        `json:"updated_at,omitempty"`
	ClosedBy         *User             `json:"closed_by,omitempty"`
	URL              *string           `json:"url,omitempty"`
	HTMLURL          *string           `json:"html_url,omitempty"`
	EventsURL        *string           `json:"events_url,omitempty"`
	LabelsURL        *string           `json:"labels_url,omitempty"`
	RepositoryURL    *string           `json:"repository_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"`
	NodeID           *string           `json:"node_id,omitempty"`

	
	
	TextMatches []TextMatch `json:"text_matches,omitempty"`

	
	
	ActiveLockReason *string `json:"active_lock_reason,omitempty"`
}

Issue represents a GitHub issue on a repository.

Note: As far as the GitHub API is concerned, every pull request is an issue, but not every issue is a pull request. Some endpoints, events, and webhooks may also return pull requests via this struct. If PullRequestLinks is nil, this is an issue, and if PullRequestLinks is not nil, this is a pull request. The IsPullRequest helper method can be used to check that.

func (i *Issue) GetActiveLockReason() string

GetActiveLockReason returns the ActiveLockReason field if it's non-nil, zero value otherwise.

func (i *Issue) GetAssignee() *User

GetAssignee returns the Assignee field.

func (*Issue) GetBody

GetBody returns the Body field if it's non-nil, zero value otherwise.

GetClosedAt returns the ClosedAt field if it's non-nil, zero value otherwise.

func (i *Issue) GetClosedBy() *User

GetClosedBy returns the ClosedBy field.

func (i *Issue) GetComments() int

GetComments returns the Comments field if it's non-nil, zero value otherwise.

func (i *Issue) GetCommentsURL() string

GetCommentsURL returns the CommentsURL field if it's non-nil, zero value otherwise.

GetCreatedAt returns the CreatedAt field if it's non-nil, zero value otherwise.

GetEventsURL returns the EventsURL field if it's non-nil, zero value otherwise.

GetHTMLURL returns the HTMLURL field if it's non-nil, zero value otherwise.

GetID returns the ID field if it's non-nil, zero value otherwise.

GetLabelsURL returns the LabelsURL field if it's non-nil, zero value otherwise.

func (i *Issue) GetLocked() bool

GetLocked returns the Locked field if it's non-nil, zero value otherwise.

func (i *Issue) GetMilestone() *Milestone

GetMilestone returns the Milestone field.

GetNodeID returns the NodeID field if it's non-nil, zero value otherwise.

func (i *Issue) GetNumber() int

GetNumber returns the Number field if it's non-nil, zero value otherwise.

func (i *Issue) GetPullRequestLinks() *PullRequestLinks

GetPullRequestLinks returns the PullRequestLinks field.

func (i *Issue) GetReactions() *Reactions

GetReactions returns the Reactions field.

func (i *Issue) GetRepository() *Repository

GetRepository returns the Repository field.

func (i *Issue) GetRepositoryURL() string

GetRepositoryURL returns the RepositoryURL field if it's non-nil, zero value otherwise.

GetState returns the State field if it's non-nil, zero value otherwise.

GetTitle returns the Title field if it's non-nil, zero value otherwise.

GetURL returns the URL field if it's non-nil, zero value otherwise.

GetUpdatedAt returns the UpdatedAt field if it's non-nil, zero value otherwise.

func (i *Issue) GetUser() *User

GetUser returns the User field.

func (i Issue) IsPullRequest() bool

IsPullRequest reports whether the issue is also a pull request. It uses the method recommended by GitHub's API documentation, which is to check whether PullRequestLinks is non-nil.

type IssueComment struct {
	Body      *string    `json:"body,omitempty"`
	
	
}

IssueComment represents a comment left on an issue.

func (i *IssueComment) GetAuthorAssociation() string

GetAuthorAssociation returns the AuthorAssociation field if it's non-nil, zero value otherwise.

func (*IssueComment) GetBody

GetBody returns the Body field if it's non-nil, zero value otherwise.

GetCreatedAt returns the CreatedAt field if it's non-nil, zero value otherwise.

GetHTMLURL returns the HTMLURL field if it's non-nil, zero value otherwise.

GetID returns the ID field if it's non-nil, zero value otherwise.

GetIssueURL returns the IssueURL field if it's non-nil, zero value otherwise.

func (i *IssueComment) GetReactions() *Reactions

GetReactions returns the Reactions field.

GetURL returns the URL field if it's non-nil, zero value otherwise.

GetUpdatedAt returns the UpdatedAt field if it's non-nil, zero value otherwise.

func (i *IssueComment) GetUser() *User

GetUser returns the User field.

type IssueCommentEvent struct {
	
	

	
}

IssueCommentEvent is triggered when an issue comment is created on an issue or pull request. The Webhook event name is "issue_comment".

GitHub API docs: https://developer.github.com/v3/activity/events/types/#issuecommentevent

GetAction returns the Action field if it's non-nil, zero value otherwise.

func (i *IssueCommentEvent) GetChanges() *EditChange

GetChanges returns the Changes field.

func (i *IssueCommentEvent) GetComment() *IssueComment

GetComment returns the Comment field.

func (i *IssueCommentEvent) GetInstallation() *Installation

GetInstallation returns the Installation field.

func (i *IssueCommentEvent) GetIssue() *Issue

GetIssue returns the Issue field.

func (i *IssueCommentEvent) GetRepo() *Repository

GetRepo returns the Repo field.

func (i *IssueCommentEvent) GetSender() *User

GetSender returns the Sender field.

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

	
	Actor *User `json:"actor,omitempty"`

	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	Event *string `json:"event,omitempty"`

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

	
	Assignee   *User      `json:"assignee,omitempty"`
	Assigner   *User      `json:"assigner,omitempty"`
	CommitID   *string    `json:"commit_id,omitempty"`
	Milestone  *Milestone `json:"milestone,omitempty"`
	Label      *Label     `json:"label,omitempty"`
	Rename     *Rename    `json:"rename,omitempty"`
	LockReason *string    `json:"lock_reason,omitempty"`
}

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

func (i *IssueEvent) GetActor() *User

GetActor returns the Actor field.

func (i *IssueEvent) GetAssignee() *User

GetAssignee returns the Assignee field.

func (i *IssueEvent) GetAssigner() *User

GetAssigner returns the Assigner field.

GetCommitID returns the CommitID field if it's non-nil, zero value otherwise.

GetCreatedAt returns the CreatedAt field if it's non-nil, zero value otherwise.

GetEvent returns the Event field if it's non-nil, zero value otherwise.

GetID returns the ID field if it's non-nil, zero value otherwise.

func (i *IssueEvent) GetIssue() *Issue

GetIssue returns the Issue field.

func (i *IssueEvent) GetLabel() *Label

GetLabel returns the Label field.

GetLockReason returns the LockReason field if it's non-nil, zero value otherwise.

func (i *IssueEvent) GetMilestone() *Milestone

GetMilestone returns the Milestone field.

func (i *IssueEvent) GetRename() *Rename

GetRename returns the Rename field.

GetURL returns the URL field if it's non-nil, zero value otherwise.

type IssueListByRepoOptions struct {
	
	
	
	Milestone string `url:"milestone,omitempty"`

	
	
	State string `url:"state,omitempty"`

	
	
	
	Assignee string `url:"assignee,omitempty"`

	
	Creator string `url:"creator,omitempty"`

	
	Mentioned string `url:"mentioned,omitempty"`

	
	Labels []string `url:"labels,omitempty,comma"`

	
	
	Sort string `url:"sort,omitempty"`

	
	
	Direction string `url:"direction,omitempty"`

	
	Since time.Time `url:"since,omitempty"`

	ListOptions
}

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

type IssueListCommentsOptions struct {
	Sort string `url:"sort,omitempty"`

	Direction string `url:"direction,omitempty"`

	Since time.Time `url:"since,omitempty"`

}

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

type IssueListOptions struct {
	
	
	Filter string `url:"filter,omitempty"`

	
	
	State string `url:"state,omitempty"`

	
	Labels []string `url:"labels,comma,omitempty"`

	
	
	Sort string `url:"sort,omitempty"`

	
	
	Direction string `url:"direction,omitempty"`

	
	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.

GetAssignee returns the Assignee field if it's non-nil, zero value otherwise.

GetAssignees returns the Assignees field if it's non-nil, zero value otherwise.

func (*IssueRequest) GetBody

GetBody returns the Body field if it's non-nil, zero value otherwise.

GetLabels returns the Labels field if it's non-nil, zero value otherwise.

func (i *IssueRequest) GetMilestone() int

GetMilestone returns the Milestone field if it's non-nil, zero value otherwise.

GetState returns the State field if it's non-nil, zero value otherwise.

GetTitle returns the Title field if it's non-nil, zero value otherwise.

type IssueStats struct {
	TotalIssues  *int `json:"total_issues,omitempty"`
	OpenIssues   *int `json:"open_issues,omitempty"`
	ClosedIssues *int `json:"closed_issues,omitempty"`
}

IssueStats represents the number of total, open and closed issues.

func (i *IssueStats) GetClosedIssues() int

GetClosedIssues returns the ClosedIssues field if it's non-nil, zero value otherwise.

func (i *IssueStats) GetOpenIssues() int

GetOpenIssues returns the OpenIssues field if it's non-nil, zero value otherwise.

func (i *IssueStats) GetTotalIssues() int

GetTotalIssues returns the TotalIssues field if it's non-nil, zero value otherwise.

type IssuesEvent struct {
	
	
	Action   *string `json:"action,omitempty"`
	Issue    *Issue  `json:"issue,omitempty"`
	Assignee *User   `json:"assignee,omitempty"`
	Label    *Label  `json:"label,omitempty"`

	
	Changes      *EditChange   `json:"changes,omitempty"`
	Repo         *Repository   `json:"repository,omitempty"`
	Sender       *User         `json:"sender,omitempty"`
	Installation *Installation `json:"installation,omitempty"`
}

IssuesEvent is triggered when an issue is assigned, unassigned, labeled, unlabeled, opened, closed, or reopened. The Webhook event name is "issues".

GitHub API docs: https://developer.github.com/v3/activity/events/types/#issuesevent

GetAction returns the Action field if it's non-nil, zero value otherwise.

func (i *IssuesEvent) GetAssignee() *User

GetAssignee returns the Assignee field.

func (i *IssuesEvent) GetChanges() *EditChange

GetChanges returns the Changes field.

func (i *IssuesEvent) GetInstallation() *Installation

GetInstallation returns the Installation field.

func (i *IssuesEvent) GetIssue() *Issue

GetIssue returns the Issue field.

func (i *IssuesEvent) GetLabel() *Label

GetLabel returns the Label field.

func (i *IssuesEvent) GetRepo() *Repository

GetRepo returns the Repo field.

func (i *IssuesEvent) GetSender() *User

GetSender returns the Sender field.

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

IssuesSearchResult represents the result of an issues search.

func (i *IssuesSearchResult) GetIncompleteResults() bool

GetIncompleteResults returns the IncompleteResults field if it's non-nil, zero value otherwise.

func (i *IssuesSearchResult) GetTotal() int

GetTotal returns the Total field if it's non-nil, zero value otherwise.

type IssuesService service

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

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

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: https://developer.github.com/v3/issues/#list-issues

type Key struct {
	ID       *int64  `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.

GetID returns the ID field if it's non-nil, zero value otherwise.

GetKey returns the Key field if it's non-nil, zero value otherwise.

func (k *Key) GetReadOnly() bool

GetReadOnly returns the ReadOnly field if it's non-nil, zero value otherwise.

GetTitle returns the Title field if it's non-nil, zero value otherwise.

GetURL returns the URL field if it's non-nil, zero value otherwise.

type Label struct {
	ID          *int64  `json:"id,omitempty"`
	URL         *string `json:"url,omitempty"`
	Name        *string `json:"name,omitempty"`
	Color       *string `json:"color,omitempty"`
	Description *string `json:"description,omitempty"`
	Default     *bool   `json:"default,omitempty"`
	NodeID      *string `json:"node_id,omitempty"`
}

Label represents a GitHub label on an Issue

GetColor returns the Color field if it's non-nil, zero value otherwise.

func (l *Label) GetDefault() bool

GetDefault returns the Default field if it's non-nil, zero value otherwise.

func (l *Label) GetDescription() string

GetDescription returns the Description field if it's non-nil, zero value otherwise.

GetID returns the ID field if it's non-nil, zero value otherwise.

GetName returns the Name field if it's non-nil, zero value otherwise.

GetNodeID returns the NodeID field if it's non-nil, zero value otherwise.

GetURL returns the URL field if it's non-nil, zero value otherwise.

type LabelEvent struct {
	
	
	Action *string `json:"action,omitempty"`
	Label  *Label  `json:"label,omitempty"`

	
	Changes      *EditChange   `json:"changes,omitempty"`
	Repo         *Repository   `json:"repository,omitempty"`
	Org          *Organization `json:"organization,omitempty"`
	Installation *Installation `json:"installation,omitempty"`
}

LabelEvent is triggered when a repository's label is created, edited, or deleted. The Webhook event name is "label"

GitHub API docs: https://developer.github.com/v3/activity/events/types/#labelevent

GetAction returns the Action field if it's non-nil, zero value otherwise.

func (l *LabelEvent) GetChanges() *EditChange

GetChanges returns the Changes field.

func (l *LabelEvent) GetInstallation() *Installation

GetInstallation returns the Installation field.

func (l *LabelEvent) GetLabel() *Label

GetLabel returns the Label field.

func (l *LabelEvent) GetOrg() *Organization

GetOrg returns the Org field.

func (l *LabelEvent) GetRepo() *Repository

GetRepo returns the Repo field.

type LabelResult struct {
	ID          *int64   `json:"id,omitempty"`
	URL         *string  `json:"url,omitempty"`
	Name        *string  `json:"name,omitempty"`
	Color       *string  `json:"color,omitempty"`
	Default     *bool    `json:"default,omitempty"`
	Description *string  `json:"description,omitempty"`
	Score       *float64 `json:"score,omitempty"`
}

LabelResult represents a single search result.

GetColor returns the Color field if it's non-nil, zero value otherwise.

func (l *LabelResult) GetDefault() bool

GetDefault returns the Default field if it's non-nil, zero value otherwise.

GetDescription returns the Description field if it's non-nil, zero value otherwise.

GetID returns the ID field if it's non-nil, zero value otherwise.

GetName returns the Name field if it's non-nil, zero value otherwise.

GetScore returns the Score field.

GetURL returns the URL field if it's non-nil, zero value otherwise.

type LabelsSearchResult struct {
	Total             *int           `json:"total_count,omitempty"`
	IncompleteResults *bool          `json:"incomplete_results,omitempty"`
	Labels            []*LabelResult `json:"items,omitempty"`
}

LabelsSearchResult represents the result of a code search.

func (l *LabelsSearchResult) GetIncompleteResults() bool

GetIncompleteResults returns the IncompleteResults field if it's non-nil, zero value otherwise.

func (l *LabelsSearchResult) GetTotal() int

GetTotal returns the Total field if it's non-nil, zero value otherwise.

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

GetOID returns the OID field if it's non-nil, zero value otherwise.

GetPath returns the Path field if it's non-nil, zero value otherwise.

GetRefName returns the RefName field if it's non-nil, zero value otherwise.

func (l *LargeFile) GetSize() int

GetSize returns the Size field if it's non-nil, zero value otherwise.

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

	SPDXID         *string   `json:"spdx_id,omitempty"`
	HTMLURL        *string   `json:"html_url,omitempty"`
	Featured       *bool     `json:"featured,omitempty"`
	Description    *string   `json:"description,omitempty"`
	Implementation *string   `json:"implementation,omitempty"`
	Permissions    *[]string `json:"permissions,omitempty"`
	Conditions     *[]string `json:"conditions,omitempty"`
	Limitations    *[]string `json:"limitations,omitempty"`
	Body           *string   `json:"body,omitempty"`
}

License represents an open source license.

func (*License) GetBody

GetBody returns the Body field if it's non-nil, zero value otherwise.

func (l *License) GetConditions() []string

GetConditions returns the Conditions field if it's non-nil, zero value otherwise.

func (l *License) GetDescription() string

GetDescription returns the Description field if it's non-nil, zero value otherwise.

func (l *License) GetFeatured() bool

GetFeatured returns the Featured field if it's non-nil, zero value otherwise.

GetHTMLURL returns the HTMLURL field if it's non-nil, zero value otherwise.

func (l *License) GetImplementation() string

GetImplementation returns the Implementation field if it's non-nil, zero value otherwise.

GetKey returns the Key field if it's non-nil, zero value otherwise.

func (l *License) GetLimitations() []string

GetLimitations returns the Limitations field if it's non-nil, zero value otherwise.

GetName returns the Name field if it's non-nil, zero value otherwise.

func (l *License) GetPermissions() []string

GetPermissions returns the Permissions field if it's non-nil, zero value otherwise.

GetSPDXID returns the SPDXID field if it's non-nil, zero value otherwise.

GetURL returns the URL field if it's non-nil, zero value otherwise.

type ListCheckRunsOptions struct {
	CheckName *string `url:"check_name,omitempty"` 
	Status    *string `url:"status,omitempty"`     
	Filter    *string `url:"filter,omitempty"`     

	ListOptions
}

ListCheckRunsOptions represents parameters to list check runs.

GetCheckName returns the CheckName field if it's non-nil, zero value otherwise.

GetFilter returns the Filter field if it's non-nil, zero value otherwise.

GetStatus returns the Status field if it's non-nil, zero value otherwise.

type ListCheckRunsResults struct {
	Total     *int        `json:"total_count,omitempty"`
	CheckRuns []*CheckRun `json:"check_runs,omitempty"`
}

ListCheckRunsResults represents the result of a check run list.

func (l *ListCheckRunsResults) GetTotal() int

GetTotal returns the Total field if it's non-nil, zero value otherwise.

type ListCheckSuiteOptions struct {
	CheckName *string `url:"check_name,omitempty"` 
	AppID     *int    `url:"app_id,omitempty"`     

	ListOptions
}

ListCheckSuiteOptions represents parameters to list check suites.

GetAppID returns the AppID field if it's non-nil, zero value otherwise.

GetCheckName returns the CheckName field if it's non-nil, zero value otherwise.

type ListCheckSuiteResults struct {
	Total       *int          `json:"total_count,omitempty"`
	CheckSuites []*CheckSuite `json:"check_suites,omitempty"`
}

ListCheckSuiteResults represents the result of a check run list.

GetTotal returns the Total field if it's non-nil, zero value otherwise.

type ListCollaboratorsOptions struct {
	
	
	
	
	
	
	
	
	Affiliation string `url:"affiliation,omitempty"`

	ListOptions
}

ListCollaboratorsOptions specifies the optional parameters to the RepositoriesService.ListCollaborators method.

type ListContributorsOptions struct {
	
	Anon string `url:"anon,omitempty"`

	ListOptions
}

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

type ListMembersOptions struct {
	
	
	PublicOnly bool `url:"-"`

	
	
	Filter string `url:"filter,omitempty"`

	
	
	
	
	
	
	
	Role string `url:"role,omitempty"`

	ListOptions
}

ListMembersOptions specifies optional parameters to the OrganizationsService.ListMembers method.

type ListOptions struct {
	
	Page int `url:"page,omitempty"`

	
	PerPage int `url:"per_page,omitempty"`
}

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

type ListOrgMembershipsOptions struct {
	
	
	State string `url:"state,omitempty"`

	ListOptions
}

ListOrgMembershipsOptions specifies optional parameters to the OrganizationsService.ListOrgMemberships method.

type ListOutsideCollaboratorsOptions struct {
	
	
	Filter string `url:"filter,omitempty"`

	ListOptions
}

ListOutsideCollaboratorsOptions specifies optional parameters to the OrganizationsService.ListOutsideCollaborators method.

type LockIssueOptions struct {
	
	
	
	LockReason string `json:"lock_reason,omitempty"`
}

LockIssueOptions specifies the optional parameters to the IssuesService.Lock method.

MarkdownOptions specifies optional parameters to the Markdown method.

type MarketplacePlan struct {
	URL                 *string   `json:"url,omitempty"`
	AccountsURL         *string   `json:"accounts_url,omitempty"`
	ID                  *int64    `json:"id,omitempty"`
	Name                *string   `json:"name,omitempty"`
	Description         *string   `json:"description,omitempty"`
	MonthlyPriceInCents *int      `json:"monthly_price_in_cents,omitempty"`
	YearlyPriceInCents  *int      `json:"yearly_price_in_cents,omitempty"`
	PriceModel          *string   `json:"price_model,omitempty"`
	UnitName            *string   `json:"unit_name,omitempty"`
	Bullets             *[]string `json:"bullets,omitempty"`
}

MarketplacePlan represents a GitHub Apps Marketplace Listing Plan.

GetAccountsURL returns the AccountsURL field if it's non-nil, zero value otherwise.

GetBullets returns the Bullets field if it's non-nil, zero value otherwise.

GetDescription returns the Description field if it's non-nil, zero value otherwise.

GetID returns the ID field if it's non-nil, zero value otherwise.

func (m *MarketplacePlan) GetMonthlyPriceInCents() int

GetMonthlyPriceInCents returns the MonthlyPriceInCents field if it's non-nil, zero value otherwise.

GetName returns the Name field if it's non-nil, zero value otherwise.

GetPriceModel returns the PriceModel field if it's non-nil, zero value otherwise.

GetURL returns the URL field if it's non-nil, zero value otherwise.

GetUnitName returns the UnitName field if it's non-nil, zero value otherwise.

func (m *MarketplacePlan) GetYearlyPriceInCents() int

GetYearlyPriceInCents returns the YearlyPriceInCents field if it's non-nil, zero value otherwise.

type MarketplacePlanAccount struct {
	URL                      *string              `json:"url,omitempty"`
	Type                     *string              `json:"type,omitempty"`
	ID                       *int64               `json:"id,omitempty"`
	Login                    *string              `json:"login,omitempty"`
	Email                    *string              `json:"email,omitempty"`
	OrganizationBillingEmail *string              `json:"organization_billing_email,omitempty"`
	MarketplacePurchase      *MarketplacePurchase `json:"marketplace_purchase,omitempty"`
}

MarketplacePlanAccount represents a GitHub Account (user or organization) on a specific plan.

GetEmail returns the Email field if it's non-nil, zero value otherwise.

GetID returns the ID field if it's non-nil, zero value otherwise.

GetLogin returns the Login field if it's non-nil, zero value otherwise.

func (m *MarketplacePlanAccount) GetMarketplacePurchase() *MarketplacePurchase

GetMarketplacePurchase returns the MarketplacePurchase field.

func (m *MarketplacePlanAccount) GetOrganizationBillingEmail() string

GetOrganizationBillingEmail returns the OrganizationBillingEmail field if it's non-nil, zero value otherwise.

GetType returns the Type field if it's non-nil, zero value otherwise.

GetURL returns the URL field if it's non-nil, zero value otherwise.

type MarketplacePurchase struct {
	BillingCycle    *string                 `json:"billing_cycle,omitempty"`
	NextBillingDate *string                 `json:"next_billing_date,omitempty"`
	UnitCount       *int                    `json:"unit_count,omitempty"`
	Plan            *MarketplacePlan        `json:"plan,omitempty"`
	Account         *MarketplacePlanAccount `json:"account,omitempty"`
}

MarketplacePurchase represents a GitHub Apps Marketplace Purchase.

GetAccount returns the Account field.

GetBillingCycle returns the BillingCycle field if it's non-nil, zero value otherwise.

GetNextBillingDate returns the NextBillingDate field if it's non-nil, zero value otherwise.

func (m *MarketplacePurchase) GetPlan() *MarketplacePlan

GetPlan returns the Plan field.

func (m *MarketplacePurchase) GetUnitCount() int

GetUnitCount returns the UnitCount field if it's non-nil, zero value otherwise.

type MarketplacePurchaseEvent struct {
	
	
	Action *string `json:"action,omitempty"`

	
	EffectiveDate               *Timestamp           `json:"effective_date,omitempty"`
	MarketplacePurchase         *MarketplacePurchase `json:"marketplace_purchase,omitempty"`
	PreviousMarketplacePurchase *MarketplacePurchase `json:"previous_marketplace_purchase,omitempty"`
	Sender                      *User                `json:"sender,omitempty"`
	Installation                *Installation        `json:"installation,omitempty"`
}

MarketplacePurchaseEvent is triggered when a user purchases, cancels, or changes their GitHub Marketplace plan. Webhook event name "marketplace_purchase".

Github API docs: https://developer.github.com/v3/activity/events/types/#marketplacepurchaseevent

GetAction returns the Action field if it's non-nil, zero value otherwise.

func (m *MarketplacePurchaseEvent) GetEffectiveDate() Timestamp

GetEffectiveDate returns the EffectiveDate field if it's non-nil, zero value otherwise.

func (m *MarketplacePurchaseEvent) GetInstallation() *Installation

GetInstallation returns the Installation field.

func (m *MarketplacePurchaseEvent) GetMarketplacePurchase() *MarketplacePurchase

GetMarketplacePurchase returns the MarketplacePurchase field.

func (m *MarketplacePurchaseEvent) GetPreviousMarketplacePurchase() *MarketplacePurchase

GetPreviousMarketplacePurchase returns the PreviousMarketplacePurchase field.

func (m *MarketplacePurchaseEvent) GetSender() *User

GetSender returns the Sender field.

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

Match represents a single text match.

GetText returns the Text field if it's non-nil, zero value otherwise.

type MemberEvent struct {
	
	Action *string `json:"action,omitempty"`
	Member *User   `json:"member,omitempty"`

	
	Repo         *Repository   `json:"repository,omitempty"`
	Sender       *User         `json:"sender,omitempty"`
	Installation *Installation `json:"installation,omitempty"`
}

MemberEvent is triggered when a user is added as a collaborator to a repository. The Webhook event name is "member".

GitHub API docs: https://developer.github.com/v3/activity/events/types/#memberevent

GetAction returns the Action field if it's non-nil, zero value otherwise.

func (m *MemberEvent) GetInstallation() *Installation

GetInstallation returns the Installation field.

func (m *MemberEvent) GetMember() *User

GetMember returns the Member field.

func (m *MemberEvent) GetRepo() *Repository

GetRepo returns the Repo field.

func (m *MemberEvent) GetSender() *User

GetSender returns the Sender field.

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

	
	
	State *string `json:"state,omitempty"`

	
	
	
	
	
	
	
	
	
	
	Role *string `json:"role,omitempty"`

	
	OrganizationURL *string `json:"organization_url,omitempty"`

	
	Organization *Organization `json:"organization,omitempty"`

	
	User *User `json:"user,omitempty"`
}

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

func (m *Membership) GetOrganization() *Organization

GetOrganization returns the Organization field.

func (m *Membership) GetOrganizationURL() string

GetOrganizationURL returns the OrganizationURL field if it's non-nil, zero value otherwise.

GetRole returns the Role field if it's non-nil, zero value otherwise.

GetState returns the State field if it's non-nil, zero value otherwise.

GetURL returns the URL field if it's non-nil, zero value otherwise.

func (m *Membership) GetUser() *User

GetUser returns the User field.

type MembershipEvent struct {
	
	Action *string `json:"action,omitempty"`
	
	Scope  *string `json:"scope,omitempty"`
	Member *User   `json:"member,omitempty"`
	Team   *Team   `json:"team,omitempty"`

	
	Org          *Organization `json:"organization,omitempty"`
	Sender       *User         `json:"sender,omitempty"`
	Installation *Installation `json:"installation,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 API docs: https://developer.github.com/v3/activity/events/types/#membershipevent

GetAction returns the Action field if it's non-nil, zero value otherwise.

func (m *MembershipEvent) GetInstallation() *Installation

GetInstallation returns the Installation field.

func (m *MembershipEvent) GetMember() *User

GetMember returns the Member field.

func (m *MembershipEvent) GetOrg() *Organization

GetOrg returns the Org field.

GetScope returns the Scope field if it's non-nil, zero value otherwise.

func (m *MembershipEvent) GetSender() *User

GetSender returns the Sender field.

func (m *MembershipEvent) GetTeam() *Team

GetTeam returns the Team field.

type Metric struct {
	Name    *string `json:"name"`
	Key     *string `json:"key"`
	URL     *string `json:"url"`
	HTMLURL *string `json:"html_url"`
}

Metric represents the different fields for one file in community health files.

GetHTMLURL returns the HTMLURL field if it's non-nil, zero value otherwise.

GetKey returns the Key field if it's non-nil, zero value otherwise.

GetName returns the Name field if it's non-nil, zero value otherwise.

GetURL returns the URL field if it's non-nil, zero value otherwise.

type Migration struct {
	ID   *int64  `json:"id,omitempty"`
	GUID *string `json:"guid,omitempty"`
	
	
	
	
	
	
	State *string `json:"state,omitempty"`
	
	
	LockRepositories *bool `json:"lock_repositories,omitempty"`
	
	
	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).

GetCreatedAt returns the CreatedAt field if it's non-nil, zero value otherwise.

func (m *Migration) GetExcludeAttachments() bool

GetExcludeAttachments returns the ExcludeAttachments field if it's non-nil, zero value otherwise.

GetGUID returns the GUID field if it's non-nil, zero value otherwise.

GetID returns the ID field if it's non-nil, zero value otherwise.

func (m *Migration) GetLockRepositories() bool

GetLockRepositories returns the LockRepositories field if it's non-nil, zero value otherwise.

GetState returns the State field if it's non-nil, zero value otherwise.

GetURL returns the URL field if it's non-nil, zero value otherwise.

GetUpdatedAt returns the UpdatedAt field if it's non-nil, zero value otherwise.

type MigrationOptions struct {
	
	
	LockRepositories bool

	
	
	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/

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

type Milestone struct {
	URL          *string    `json:"url,omitempty"`
	HTMLURL      *string    `json:"html_url,omitempty"`
	LabelsURL    *string    `json:"labels_url,omitempty"`
	ID           *int64     `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"`
	NodeID       *string    `json:"node_id,omitempty"`
}

Milestone represents a GitHub repository milestone.

GetClosedAt returns the ClosedAt field if it's non-nil, zero value otherwise.

func (m *Milestone) GetClosedIssues() int

GetClosedIssues returns the ClosedIssues field if it's non-nil, zero value otherwise.

GetCreatedAt returns the CreatedAt field if it's non-nil, zero value otherwise.

func (m *Milestone) GetCreator() *User

GetCreator returns the Creator field.

GetDescription returns the Description field if it's non-nil, zero value otherwise.

GetDueOn returns the DueOn field if it's non-nil, zero value otherwise.

GetHTMLURL returns the HTMLURL field if it's non-nil, zero value otherwise.

GetID returns the ID field if it's non-nil, zero value otherwise.

GetLabelsURL returns the LabelsURL field if it's non-nil, zero value otherwise.

GetNodeID returns the NodeID field if it's non-nil, zero value otherwise.

func (m *Milestone) GetNumber() int

GetNumber returns the Number field if it's non-nil, zero value otherwise.

func (m *Milestone) GetOpenIssues() int

GetOpenIssues returns the OpenIssues field if it's non-nil, zero value otherwise.

GetState returns the State field if it's non-nil, zero value otherwise.

GetTitle returns the Title field if it's non-nil, zero value otherwise.

GetURL returns the URL field if it's non-nil, zero value otherwise.

GetUpdatedAt returns the UpdatedAt field if it's non-nil, zero value otherwise.

type MilestoneEvent struct {
	
	
	Action    *string    `json:"action,omitempty"`
	Milestone *Milestone `json:"milestone,omitempty"`

	
	Changes      *EditChange   `json:"changes,omitempty"`
	Repo         *Repository   `json:"repository,omitempty"`
	Sender       *User         `json:"sender,omitempty"`
	Org          *Organization `json:"organization,omitempty"`
	Installation *Installation `json:"installation,omitempty"`
}

MilestoneEvent is triggered when a milestone is created, closed, opened, edited, or deleted. The Webhook event name is "milestone".

GitHub API docs: https://developer.github.com/v3/activity/events/types/#milestoneevent

GetAction returns the Action field if it's non-nil, zero value otherwise.

func (m *MilestoneEvent) GetChanges() *EditChange

GetChanges returns the Changes field.

func (m *MilestoneEvent) GetInstallation() *Installation

GetInstallation returns the Installation field.

func (m *MilestoneEvent) GetMilestone() *Milestone

GetMilestone returns the Milestone field.

func (m *MilestoneEvent) GetOrg() *Organization

GetOrg returns the Org field.

func (m *MilestoneEvent) GetRepo() *Repository

GetRepo returns the Repo field.

func (m *MilestoneEvent) GetSender() *User

GetSender returns the Sender field.

type MilestoneListOptions struct {
	
	
	State string `url:"state,omitempty"`

	
	
	Sort string `url:"sort,omitempty"`

	
	
	Direction string `url:"direction,omitempty"`

	ListOptions
}

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

type MilestoneStats struct {
	TotalMilestones  *int `json:"total_milestones,omitempty"`
	OpenMilestones   *int `json:"open_milestones,omitempty"`
	ClosedMilestones *int `json:"closed_milestones,omitempty"`
}

MilestoneStats represents the number of total, open and close milestones.

func (m *MilestoneStats) GetClosedMilestones() int

GetClosedMilestones returns the ClosedMilestones field if it's non-nil, zero value otherwise.

func (m *MilestoneStats) GetOpenMilestones() int

GetOpenMilestones returns the OpenMilestones field if it's non-nil, zero value otherwise.

func (m *MilestoneStats) GetTotalMilestones() int

GetTotalMilestones returns the TotalMilestones field if it's non-nil, zero value otherwise.

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"`
	MaintainerCanModify *bool   `json:"maintainer_can_modify,omitempty"`
}

NewPullRequest represents a new pull request to be created.

GetBase returns the Base field if it's non-nil, zero value otherwise.

func (*NewPullRequest) GetBody

GetBody returns the Body field if it's non-nil, zero value otherwise.

GetHead returns the Head field if it's non-nil, zero value otherwise.

func (n *NewPullRequest) GetIssue() int

GetIssue returns the Issue field if it's non-nil, zero value otherwise.

func (*NewPullRequest) GetMaintainerCanModify

func (n *NewPullRequest) GetMaintainerCanModify() bool

GetMaintainerCanModify returns the MaintainerCanModify field if it's non-nil, zero value otherwise.

GetTitle returns the Title field if it's non-nil, zero value otherwise.

type NewTeam struct {
	Name         string   `json:"name"` 
	Description  *string  `json:"description,omitempty"`
	Maintainers  []string `json:"maintainers,omitempty"`
	RepoNames    []string `json:"repo_names,omitempty"`
	ParentTeamID *int64   `json:"parent_team_id,omitempty"`

	
	
	
	
	
	Permission *string `json:"permission,omitempty"`

	
	
	
	
	
	Privacy *string `json:"privacy,omitempty"`

	
	
	LDAPDN *string `json:"ldap_dn,omitempty"`
}

NewTeam represents a team to be created or modified.

func (n *NewTeam) GetDescription() string

GetDescription returns the Description field if it's non-nil, zero value otherwise.

GetLDAPDN returns the LDAPDN field if it's non-nil, zero value otherwise.

func (n *NewTeam) GetParentTeamID() int64

GetParentTeamID returns the ParentTeamID field if it's non-nil, zero value otherwise.

GetPermission returns the Permission field if it's non-nil, zero value otherwise.

GetPrivacy returns the Privacy field if it's non-nil, zero value otherwise.

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

	
	
	
	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.

GetID returns the ID field if it's non-nil, zero value otherwise.

GetLastReadAt returns the LastReadAt field if it's non-nil, zero value otherwise.

GetReason returns the Reason field if it's non-nil, zero value otherwise.

func (n *Notification) GetRepository() *Repository

GetRepository returns the Repository field.

func (n *Notification) GetSubject() *NotificationSubject

GetSubject returns the Subject field.

GetURL returns the URL field if it's non-nil, zero value otherwise.

func (n *Notification) GetUnread() bool

GetUnread returns the Unread field if it's non-nil, zero value otherwise.

GetUpdatedAt returns the UpdatedAt field if it's non-nil, zero value otherwise.

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"`
	Type             *string `json:"type,omitempty"`
}

NotificationSubject identifies the subject of a notification.

GetLatestCommentURL returns the LatestCommentURL field if it's non-nil, zero value otherwise.

GetTitle returns the Title field if it's non-nil, zero value otherwise.

GetType returns the Type field if it's non-nil, zero value otherwise.

GetURL returns the URL field if it's non-nil, zero value otherwise.

type OrgBlockEvent struct {
	
	
	Action       *string       `json:"action,omitempty"`
	BlockedUser  *User         `json:"blocked_user,omitempty"`
	Organization *Organization `json:"organization,omitempty"`
	Sender       *User         `json:"sender,omitempty"`

	
	Installation *Installation `json:"installation,omitempty"`
}

OrgBlockEvent is triggered when an organization blocks or unblocks a user. The Webhook event name is "org_block".

GitHub API docs: https://developer.github.com/v3/activity/events/types/#orgblockevent

GetAction returns the Action field if it's non-nil, zero value otherwise.

func (o *OrgBlockEvent) GetBlockedUser() *User

GetBlockedUser returns the BlockedUser field.

func (o *OrgBlockEvent) GetInstallation() *Installation

GetInstallation returns the Installation field.

func (o *OrgBlockEvent) GetOrganization() *Organization

GetOrganization returns the Organization field.

func (o *OrgBlockEvent) GetSender() *User

GetSender returns the Sender field.

type OrgStats struct {
	TotalOrgs        *int `json:"total_orgs,omitempty"`
	DisabledOrgs     *int `json:"disabled_orgs,omitempty"`
	TotalTeams       *int `json:"total_teams,omitempty"`
	TotalTeamMembers *int `json:"total_team_members,omitempty"`
}

OrgStats represents the number of total, disabled organizations and the team and team member count.

func (o *OrgStats) GetDisabledOrgs() int

GetDisabledOrgs returns the DisabledOrgs field if it's non-nil, zero value otherwise.

func (o *OrgStats) GetTotalOrgs() int

GetTotalOrgs returns the TotalOrgs field if it's non-nil, zero value otherwise.

func (o *OrgStats) GetTotalTeamMembers() int

GetTotalTeamMembers returns the TotalTeamMembers field if it's non-nil, zero value otherwise.

func (o *OrgStats) GetTotalTeams() int

GetTotalTeams returns the TotalTeams field if it's non-nil, zero value otherwise.

type Organization struct {
	Login             *string    `json:"login,omitempty"`
	ID                *int64     `json:"id,omitempty"`
	NodeID            *string    `json:"node_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"`
	Description       *string    `json:"description,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"`

	
	URL              *string `json:"url,omitempty"`
	EventsURL        *string `json:"events_url,omitempty"`
	HooksURL         *string `json:"hooks_url,omitempty"`
	IssuesURL        *string `json:"issues_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.

GetAvatarURL returns the AvatarURL field if it's non-nil, zero value otherwise.

GetBillingEmail returns the BillingEmail field if it's non-nil, zero value otherwise.

GetBlog returns the Blog field if it's non-nil, zero value otherwise.

func (o *Organization) GetCollaborators() int

GetCollaborators returns the Collaborators field if it's non-nil, zero value otherwise.

GetCompany returns the Company field if it's non-nil, zero value otherwise.

GetCreatedAt returns the CreatedAt field if it's non-nil, zero value otherwise.

GetDescription returns the Description field if it's non-nil, zero value otherwise.

func (o *Organization) GetDiskUsage() int

GetDiskUsage returns the DiskUsage field if it's non-nil, zero value otherwise.

GetEmail returns the Email field if it's non-nil, zero value otherwise.

GetEventsURL returns the EventsURL field if it's non-nil, zero value otherwise.

func (o *Organization) GetFollowers() int

GetFollowers returns the Followers field if it's non-nil, zero value otherwise.

func (o *Organization) GetFollowing() int

GetFollowing returns the Following field if it's non-nil, zero value otherwise.

GetHTMLURL returns the HTMLURL field if it's non-nil, zero value otherwise.

GetHooksURL returns the HooksURL field if it's non-nil, zero value otherwise.

GetID returns the ID field if it's non-nil, zero value otherwise.

GetIssuesURL returns the IssuesURL field if it's non-nil, zero value otherwise.

GetLocation returns the Location field if it's non-nil, zero value otherwise.

GetLogin returns the Login field if it's non-nil, zero value otherwise.

GetMembersURL returns the MembersURL field if it's non-nil, zero value otherwise.

GetName returns the Name field if it's non-nil, zero value otherwise.

GetNodeID returns the NodeID field if it's non-nil, zero value otherwise.

func (o *Organization) GetOwnedPrivateRepos() int

GetOwnedPrivateRepos returns the OwnedPrivateRepos field if it's non-nil, zero value otherwise.

func (o *Organization) GetPlan() *Plan

GetPlan returns the Plan field.

func (o *Organization) GetPrivateGists() int

GetPrivateGists returns the PrivateGists field if it's non-nil, zero value otherwise.

func (o *Organization) GetPublicGists() int

GetPublicGists returns the PublicGists field if it's non-nil, zero value otherwise.

func (o *Organization) GetPublicMembersURL() string

GetPublicMembersURL returns the PublicMembersURL field if it's non-nil, zero value otherwise.

func (o *Organization) GetPublicRepos() int

GetPublicRepos returns the PublicRepos field if it's non-nil, zero value otherwise.

GetReposURL returns the ReposURL field if it's non-nil, zero value otherwise.

func (o *Organization) GetTotalPrivateRepos() int

GetTotalPrivateRepos returns the TotalPrivateRepos field if it's non-nil, zero value otherwise.

GetType returns the Type field if it's non-nil, zero value otherwise.

GetURL returns the URL field if it's non-nil, zero value otherwise.

GetUpdatedAt returns the UpdatedAt field if it's non-nil, zero value otherwise.

type OrganizationEvent struct {
	
	
	Action *string `json:"action,omitempty"`

	
	Invitation *Invitation `json:"invitation,omitempty"`

	
	
	Membership *Membership `json:"membership,omitempty"`

	Organization *Organization `json:"organization,omitempty"`
	Sender       *User         `json:"sender,omitempty"`
	Installation *Installation `json:"installation,omitempty"`
}

OrganizationEvent is triggered when a user is added, removed, or invited to an organization. Events of this type are not visible in timelines. These events are only used to trigger organization hooks. Webhook event name is "organization".

GitHub API docs: https://developer.github.com/v3/activity/events/types/#organizationevent

GetAction returns the Action field if it's non-nil, zero value otherwise.

func (o *OrganizationEvent) GetInstallation() *Installation

GetInstallation returns the Installation field.

func (o *OrganizationEvent) GetInvitation() *Invitation

GetInvitation returns the Invitation field.

func (o *OrganizationEvent) GetMembership() *Membership

GetMembership returns the Membership field.

func (o *OrganizationEvent) GetOrganization() *Organization

GetOrganization returns the Organization field.

func (o *OrganizationEvent) GetSender() *User

GetSender returns the Sender field.

type OrganizationsListOptions struct {
	
	Since int64 `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: https://developer.github.com/v3/orgs/

GetByID fetches an organization.

Note: GetByID uses the undocumented GitHub API endpoint /organizations/:id.

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

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.

GetAction returns the Action field if it's non-nil, zero value otherwise.

GetHTMLURL returns the HTMLURL field if it's non-nil, zero value otherwise.

GetPageName returns the PageName field if it's non-nil, zero value otherwise.

GetSHA returns the SHA field if it's non-nil, zero value otherwise.

GetSummary returns the Summary field if it's non-nil, zero value otherwise.

GetTitle returns the Title field if it's non-nil, zero value otherwise.

type PageBuildEvent struct {
	Build *PagesBuild `json:"build,omitempty"`

	
	ID           *int64        `json:"id,omitempty"`
	Repo         *Repository   `json:"repository,omitempty"`
	Sender       *User         `json:"sender,omitempty"`
	Installation *Installation `json:"installation,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 API docs: https://developer.github.com/v3/activity/events/types/#pagebuildevent

func (p *PageBuildEvent) GetBuild() *PagesBuild

GetBuild returns the Build field.

GetID returns the ID field if it's non-nil, zero value otherwise.

func (p *PageBuildEvent) GetInstallation() *Installation

GetInstallation returns the Installation field.

func (p *PageBuildEvent) GetRepo() *Repository

GetRepo returns the Repo field.

func (p *PageBuildEvent) GetSender() *User

GetSender returns the Sender field.

type PageStats struct {
	TotalPages *int `json:"total_pages,omitempty"`
}

PageStats represents the total number of github pages.

func (p *PageStats) GetTotalPages() int

GetTotalPages returns the TotalPages field if it's non-nil, zero value otherwise.

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.

GetCNAME returns the CNAME field if it's non-nil, zero value otherwise.

func (p *Pages) GetCustom404() bool

GetCustom404 returns the Custom404 field if it's non-nil, zero value otherwise.

GetHTMLURL returns the HTMLURL field if it's non-nil, zero value otherwise.

GetStatus returns the Status field if it's non-nil, zero value otherwise.

GetURL returns the URL field if it's non-nil, zero value otherwise.

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:"updated_at,omitempty"`
}

PagesBuild represents the build information for a GitHub Pages site.

GetCommit returns the Commit field if it's non-nil, zero value otherwise.

func (p *PagesBuild) GetCreatedAt() Timestamp

GetCreatedAt returns the CreatedAt field if it's non-nil, zero value otherwise.

func (p *PagesBuild) GetDuration() int

GetDuration returns the Duration field if it's non-nil, zero value otherwise.

func (p *PagesBuild) GetError() *PagesError

GetError returns the Error field.

func (p *PagesBuild) GetPusher() *User

GetPusher returns the Pusher field.

GetStatus returns the Status field if it's non-nil, zero value otherwise.

GetURL returns the URL field if it's non-nil, zero value otherwise.

func (p *PagesBuild) GetUpdatedAt() Timestamp

GetUpdatedAt returns the UpdatedAt field if it's non-nil, zero value otherwise.

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

PagesError represents a build error for a GitHub Pages site.

GetMessage returns the Message field if it's non-nil, zero value otherwise.

type PingEvent struct {
	
	Zen *string `json:"zen,omitempty"`
	
	HookID *int64 `json:"hook_id,omitempty"`
	
	Hook         *Hook         `json:"hook,omitempty"`
	Installation *Installation `json:"installation,omitempty"`
}

PingEvent is triggered when a Webhook is added to GitHub.

GitHub API docs: https://developer.github.com/webhooks/#ping-event

func (p *PingEvent) GetHook() *Hook

GetHook returns the Hook field.

GetHookID returns the HookID field if it's non-nil, zero value otherwise.

func (p *PingEvent) GetInstallation() *Installation

GetInstallation returns the Installation field.

GetZen returns the Zen field if it's non-nil, zero value otherwise.

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) GetCollaborators() int

GetCollaborators returns the Collaborators field if it's non-nil, zero value otherwise.

GetName returns the Name field if it's non-nil, zero value otherwise.

func (p *Plan) GetPrivateRepos() int

GetPrivateRepos returns the PrivateRepos field if it's non-nil, zero value otherwise.

func (p *Plan) GetSpace() int

GetSpace returns the Space field if it's non-nil, zero value otherwise.

type PreReceiveHook struct {
	ID          *int64  `json:"id,omitempty"`
	Name        *string `json:"name,omitempty"`
	Enforcement *string `json:"enforcement,omitempty"`
	ConfigURL   *string `json:"configuration_url,omitempty"`
}

PreReceiveHook represents a GitHub pre-receive hook for a repository.

GetConfigURL returns the ConfigURL field if it's non-nil, zero value otherwise.

GetEnforcement returns the Enforcement field if it's non-nil, zero value otherwise.

GetID returns the ID field if it's non-nil, zero value otherwise.

GetName returns the Name field if it's non-nil, zero value otherwise.

type PreferenceList struct {
	AutoTriggerChecks []*AutoTriggerCheck `json:"auto_trigger_checks,omitempty"` 
}

PreferenceList represents a list of auto trigger checks for repository

type Project struct {
	ID        *int64     `json:"id,omitempty"`
	URL       *string    `json:"url,omitempty"`
	OwnerURL  *string    `json:"owner_url,omitempty"`
	Name      *string    `json:"name,omitempty"`
	Body      *string    `json:"body,omitempty"`
	Number    *int       `json:"number,omitempty"`
	CreatedAt *Timestamp `json:"created_at,omitempty"`
	UpdatedAt *Timestamp `json:"updated_at,omitempty"`
	NodeID    *string    `json:"node_id,omitempty"`

	
	Creator *User `json:"creator,omitempty"`
}

Project represents a GitHub Project.

func (*Project) GetBody

GetBody returns the Body field if it's non-nil, zero value otherwise.

func (p *Project) GetCreatedAt() Timestamp

GetCreatedAt returns the CreatedAt field if it's non-nil, zero value otherwise.

func (p *Project) GetCreator() *User

GetCreator returns the Creator field.

GetID returns the ID field if it's non-nil, zero value otherwise.

GetName returns the Name field if it's non-nil, zero value otherwise.

GetNodeID returns the NodeID field if it's non-nil, zero value otherwise.

func (p *Project) GetNumber() int

GetNumber returns the Number field if it's non-nil, zero value otherwise.

GetOwnerURL returns the OwnerURL field if it's non-nil, zero value otherwise.

GetURL returns the URL field if it's non-nil, zero value otherwise.

func (p *Project) GetUpdatedAt() Timestamp

GetUpdatedAt returns the UpdatedAt field if it's non-nil, zero value otherwise.

type ProjectCard struct {
	URL        *string    `json:"url,omitempty"`
	ColumnURL  *string    `json:"column_url,omitempty"`
	ContentURL *string    `json:"content_url,omitempty"`
	ID         *int64     `json:"id,omitempty"`
	Note       *string    `json:"note,omitempty"`
	Creator    *User      `json:"creator,omitempty"`
	CreatedAt  *Timestamp `json:"created_at,omitempty"`
	UpdatedAt  *Timestamp `json:"updated_at,omitempty"`
	NodeID     *string    `json:"node_id,omitempty"`
	Archived   *bool      `json:"archived,omitempty"`

	
	ColumnID *int64 `json:"column_id,omitempty"`
}

ProjectCard represents a card in a column of a GitHub Project.

GitHub API docs: https://developer.github.com/v3/projects/cards/#get-a-project-card

func (p *ProjectCard) GetArchived() bool

GetArchived returns the Archived field if it's non-nil, zero value otherwise.

func (*ProjectCard) GetColumnID

GetColumnID returns the ColumnID field if it's non-nil, zero value otherwise.

func (*ProjectCard) GetColumnURL

GetColumnURL returns the ColumnURL field if it's non-nil, zero value otherwise.

func (*ProjectCard) GetContentURL

GetContentURL returns the ContentURL field if it's non-nil, zero value otherwise.

func (p *ProjectCard) GetCreatedAt() Timestamp

GetCreatedAt returns the CreatedAt field if it's non-nil, zero value otherwise.

func (p *ProjectCard) GetCreator() *User

GetCreator returns the Creator field.

GetID returns the ID field if it's non-nil, zero value otherwise.

GetNodeID returns the NodeID field if it's non-nil, zero value otherwise.

GetNote returns the Note field if it's non-nil, zero value otherwise.

GetURL returns the URL field if it's non-nil, zero value otherwise.

func (p *ProjectCard) GetUpdatedAt() Timestamp

GetUpdatedAt returns the UpdatedAt field if it's non-nil, zero value otherwise.

type ProjectCardChange struct {
	Note *struct {
		From *string `json:"from,omitempty"`
	} `json:"note,omitempty"`
}

ProjectCardChange represents the changes when a project card has been edited.

type ProjectCardEvent struct {
	Action      *string            `json:"action,omitempty"`
	Changes     *ProjectCardChange `json:"changes,omitempty"`
	AfterID     *int64             `json:"after_id,omitempty"`
	ProjectCard *ProjectCard       `json:"project_card,omitempty"`

	
	Repo         *Repository   `json:"repository,omitempty"`
	Org          *Organization `json:"organization,omitempty"`
	Sender       *User         `json:"sender,omitempty"`
	Installation *Installation `json:"installation,omitempty"`
}

ProjectCardEvent is triggered when a project card is created, updated, moved, converted to an issue, or deleted. The webhook event name is "project_card".

GitHub API docs: https://developer.github.com/v3/activity/events/types/#projectcardevent

GetAction returns the Action field if it's non-nil, zero value otherwise.

GetAfterID returns the AfterID field if it's non-nil, zero value otherwise.

func (p *ProjectCardEvent) GetChanges() *ProjectCardChange

GetChanges returns the Changes field.

func (p *ProjectCardEvent) GetInstallation() *Installation

GetInstallation returns the Installation field.

func (p *ProjectCardEvent) GetOrg() *Organization

GetOrg returns the Org field.

func (p *ProjectCardEvent) GetProjectCard() *ProjectCard

GetProjectCard returns the ProjectCard field.

func (p *ProjectCardEvent) GetRepo() *Repository

GetRepo returns the Repo field.

func (p *ProjectCardEvent) GetSender() *User

GetSender returns the Sender field.

type ProjectCardListOptions struct {
	
	
	ArchivedState *string `url:"archived_state,omitempty"`

	ListOptions
}

ProjectCardListOptions specifies the optional parameters to the ProjectsService.ListProjectCards method.

GetArchivedState returns the ArchivedState field if it's non-nil, zero value otherwise.

type ProjectCardMoveOptions struct {
	
	
	Position string `json:"position"`
	
	
	
	ColumnID int64 `json:"column_id,omitempty"`
}

ProjectCardMoveOptions specifies the parameters to the ProjectsService.MoveProjectCard method.

type ProjectCardOptions struct {
	
	Note string `json:"note,omitempty"`
	
	
	ContentID int64 `json:"content_id,omitempty"`
	
	ContentType string `json:"content_type,omitempty"`
	
	
	Archived *bool `json:"archived,omitempty"`
}

ProjectCardOptions specifies the parameters to the ProjectsService.CreateProjectCard and ProjectsService.UpdateProjectCard methods.

func (p *ProjectCardOptions) GetArchived() bool

GetArchived returns the Archived field if it's non-nil, zero value otherwise.

type ProjectChange struct {
	Name *struct {
		From *string `json:"from,omitempty"`
	} `json:"name,omitempty"`
	Body *struct {
		From *string `json:"from,omitempty"`
	} `json:"body,omitempty"`
}

ProjectChange represents the changes when a project has been edited.

type ProjectColumn

type ProjectColumn struct {
	ID         *int64     `json:"id,omitempty"`
	Name       *string    `json:"name,omitempty"`
	ProjectURL *string    `json:"project_url,omitempty"`
	CreatedAt  *Timestamp `json:"created_at,omitempty"`
	UpdatedAt  *Timestamp `json:"updated_at,omitempty"`
	NodeID     *string    `json:"node_id,omitempty"`
}

ProjectColumn represents a column of a GitHub Project.

GitHub API docs: https://developer.github.com/v3/repos/projects/

func (*ProjectColumn) GetCreatedAt

func (p *ProjectColumn) GetCreatedAt() Timestamp

GetCreatedAt returns the CreatedAt field if it's non-nil, zero value otherwise.

func (*ProjectColumn) GetID

GetID returns the ID field if it's non-nil, zero value otherwise.

func (*ProjectColumn) GetName

GetName returns the Name field if it's non-nil, zero value otherwise.

func (*ProjectColumn) GetNodeID

GetNodeID returns the NodeID field if it's non-nil, zero value otherwise.

func (*ProjectColumn) GetProjectURL

GetProjectURL returns the ProjectURL field if it's non-nil, zero value otherwise.

func (*ProjectColumn) GetUpdatedAt

func (p *ProjectColumn) GetUpdatedAt() Timestamp

GetUpdatedAt returns the UpdatedAt field if it's non-nil, zero value otherwise.

type ProjectColumnChange

type ProjectColumnChange struct {
	Name *struct {
		From *string `json:"from,omitempty"`
	} `json:"name,omitempty"`
}

ProjectColumnChange represents the changes when a project column has been edited.

type ProjectColumnEvent

type ProjectColumnEvent struct {
	Action        *string              `json:"action,omitempty"`
	Changes       *ProjectColumnChange `json:"changes,omitempty"`
	AfterID       *int64               `json:"after_id,omitempty"`
	ProjectColumn *ProjectColumn       `json:"project_column,omitempty"`

	
	Repo         *Repository   `json:"repository,omitempty"`
	Org          *Organization `json:"organization,omitempty"`
	Sender       *User         `json:"sender,omitempty"`
	Installation *Installation `json:"installation,omitempty"`
}

ProjectColumnEvent is triggered when a project column is created, updated, moved, or deleted. The webhook event name is "project_column".

GitHub API docs: https://developer.github.com/v3/activity/events/types/#projectcolumnevent

func (*ProjectColumnEvent) GetAction

GetAction returns the Action field if it's non-nil, zero value otherwise.

func (*ProjectColumnEvent) GetAfterID

GetAfterID returns the AfterID field if it's non-nil, zero value otherwise.

func (*ProjectColumnEvent) GetChanges

func (p *ProjectColumnEvent) GetChanges() *ProjectColumnChange

GetChanges returns the Changes field.

func (*ProjectColumnEvent) GetInstallation

func (p *ProjectColumnEvent) GetInstallation() *Installation

GetInstallation returns the Installation field.

func (*ProjectColumnEvent) GetOrg

func (p *ProjectColumnEvent) GetOrg() *Organization

GetOrg returns the Org field.

func (*ProjectColumnEvent) GetProjectColumn

func (p *ProjectColumnEvent) GetProjectColumn() *ProjectColumn

GetProjectColumn returns the ProjectColumn field.

func (*ProjectColumnEvent) GetRepo

func (p *ProjectColumnEvent) GetRepo() *Repository

GetRepo returns the Repo field.

func (*ProjectColumnEvent) GetSender

func (p *ProjectColumnEvent) GetSender() *User

GetSender returns the Sender field.

type ProjectColumnMoveOptions

type ProjectColumnMoveOptions struct {
	
	
	Position string `json:"position"`
}

ProjectColumnMoveOptions specifies the parameters to the ProjectsService.MoveProjectColumn method.

type ProjectColumnOptions

type ProjectColumnOptions struct {
	
	Name string `json:"name"`
}

ProjectColumnOptions specifies the parameters to the ProjectsService.CreateProjectColumn and ProjectsService.UpdateProjectColumn methods.

type ProjectEvent struct {
	Action  *string        `json:"action,omitempty"`
	Changes *ProjectChange `json:"changes,omitempty"`
	Project *Project       `json:"project,omitempty"`

	
	Repo         *Repository   `json:"repository,omitempty"`
	Org          *Organization `json:"organization,omitempty"`
	Sender       *User         `json:"sender,omitempty"`
	Installation *Installation `json:"installation,omitempty"`
}

ProjectEvent is triggered when project is created, modified or deleted. The webhook event name is "project".

GitHub API docs: https://developer.github.com/v3/activity/events/types/#projectevent

GetAction returns the Action field if it's non-nil, zero value otherwise.

func (p *ProjectEvent) GetChanges() *ProjectChange

GetChanges returns the Changes field.

func (p *ProjectEvent) GetInstallation() *Installation

GetInstallation returns the Installation field.

func (p *ProjectEvent) GetOrg() *Organization

GetOrg returns the Org field.

func (p *ProjectEvent) GetProject() *Project

GetProject returns the Project field.

func (p *ProjectEvent) GetRepo() *Repository

GetRepo returns the Repo field.

func (p *ProjectEvent) GetSender() *User

GetSender returns the Sender field.

type ProjectListOptions struct {
	
	State string `url:"state,omitempty"`

	ListOptions
}

ProjectListOptions specifies the optional parameters to the OrganizationsService.ListProjects and RepositoriesService.ListProjects methods.

type ProjectOptions struct {
	
	Name string `json:"name,omitempty"`
	
	Body string `json:"body,omitempty"`

	
	State string `json:"state,omitempty"`
}

ProjectOptions specifies the parameters to the RepositoriesService.CreateProject and ProjectsService.UpdateProject methods.

type Protection struct {
	RequiredStatusChecks       *RequiredStatusChecks          `json:"required_status_checks"`
	RequiredPullRequestReviews *PullRequestReviewsEnforcement `json:"required_pull_request_reviews"`
	EnforceAdmins              *AdminEnforcement              `json:"enforce_admins"`
	Restrictions               *BranchRestrictions            `json:"restrictions"`
}

Protection represents a repository branch's protection.

func (p *Protection) GetEnforceAdmins() *AdminEnforcement

GetEnforceAdmins returns the EnforceAdmins field.

func (p *Protection) GetRequiredPullRequestReviews() *PullRequestReviewsEnforcement

GetRequiredPullRequestReviews returns the RequiredPullRequestReviews field.

func (p *Protection) GetRequiredStatusChecks() *RequiredStatusChecks

GetRequiredStatusChecks returns the RequiredStatusChecks field.

func (p *Protection) GetRestrictions() *BranchRestrictions

GetRestrictions returns the Restrictions field.

type ProtectionRequest struct {
	RequiredStatusChecks       *RequiredStatusChecks                 `json:"required_status_checks"`
	RequiredPullRequestReviews *PullRequestReviewsEnforcementRequest `json:"required_pull_request_reviews"`
	EnforceAdmins              bool                                  `json:"enforce_admins"`
	Restrictions               *BranchRestrictionsRequest            `json:"restrictions"`
}

ProtectionRequest represents a request to create/edit a branch's protection.

func (p *ProtectionRequest) GetRequiredPullRequestReviews() *PullRequestReviewsEnforcementRequest

GetRequiredPullRequestReviews returns the RequiredPullRequestReviews field.

func (p *ProtectionRequest) GetRequiredStatusChecks() *RequiredStatusChecks

GetRequiredStatusChecks returns the RequiredStatusChecks field.

func (p *ProtectionRequest) GetRestrictions() *BranchRestrictionsRequest

GetRestrictions returns the Restrictions field.

type PublicEvent struct {
	
	Repo         *Repository   `json:"repository,omitempty"`
	Sender       *User         `json:"sender,omitempty"`
	Installation *Installation `json:"installation,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 API docs: https://developer.github.com/v3/activity/events/types/#publicevent

func (p *PublicEvent) GetInstallation() *Installation

GetInstallation returns the Installation field.

func (p *PublicEvent) GetRepo() *Repository

GetRepo returns the Repo field.

func (p *PublicEvent) GetSender() *User

GetSender returns the Sender field.

type PullRequest struct {
	ID                  *int64     `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"`
	Labels              []*Label   `json:"labels,omitempty"`
	User                *User      `json:"user,omitempty"`
	Merged              *bool      `json:"merged,omitempty"`
	Mergeable           *bool      `json:"mergeable,omitempty"`
	MergeableState      *string    `json:"mergeable_state,omitempty"`
	MergedBy            *User      `json:"merged_by,omitempty"`
	MergeCommitSHA      *string    `json:"merge_commit_sha,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"`
	CommitsURL          *string    `json:"commits_url,omitempty"`
	Assignee            *User      `json:"assignee,omitempty"`
	Assignees           []*User    `json:"assignees,omitempty"`
	Milestone           *Milestone `json:"milestone,omitempty"`
	MaintainerCanModify *bool      `json:"maintainer_can_modify,omitempty"`
	AuthorAssociation   *string    `json:"author_association,omitempty"`
	NodeID              *string    `json:"node_id,omitempty"`
	RequestedReviewers  []*User    `json:"requested_reviewers,omitempty"`

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

	
	
	ActiveLockReason *string `json:"active_lock_reason,omitempty"`
}

PullRequest represents a GitHub pull request on a repository.

func (p *PullRequest) GetActiveLockReason() string

GetActiveLockReason returns the ActiveLockReason field if it's non-nil, zero value otherwise.

func (p *PullRequest) GetAdditions() int

GetAdditions returns the Additions field if it's non-nil, zero value otherwise.

func (p *PullRequest) GetAssignee() *User

GetAssignee returns the Assignee field.

func (p *PullRequest) GetAuthorAssociation() string

GetAuthorAssociation returns the AuthorAssociation field if it's non-nil, zero value otherwise.

func (p *PullRequest) GetBase() *PullRequestBranch

GetBase returns the Base field.

func (*PullRequest) GetBody

GetBody returns the Body field if it's non-nil, zero value otherwise.

func (p *PullRequest) GetChangedFiles() int

GetChangedFiles returns the ChangedFiles field if it's non-nil, zero value otherwise.

GetClosedAt returns the ClosedAt field if it's non-nil, zero value otherwise.

func (p *PullRequest) GetComments() int

GetComments returns the Comments field if it's non-nil, zero value otherwise.

GetCommentsURL returns the CommentsURL field if it's non-nil, zero value otherwise.

func (p *PullRequest) GetCommits() int

GetCommits returns the Commits field if it's non-nil, zero value otherwise.

GetCommitsURL returns the CommitsURL field if it's non-nil, zero value otherwise.

GetCreatedAt returns the CreatedAt field if it's non-nil, zero value otherwise.

func (p *PullRequest) GetDeletions() int

GetDeletions returns the Deletions field if it's non-nil, zero value otherwise.

GetDiffURL returns the DiffURL field if it's non-nil, zero value otherwise.

GetHTMLURL returns the HTMLURL field if it's non-nil, zero value otherwise.

func (p *PullRequest) GetHead() *PullRequestBranch

GetHead returns the Head field.

GetID returns the ID field if it's non-nil, zero value otherwise.

GetIssueURL returns the IssueURL field if it's non-nil, zero value otherwise.

func (*PullRequest) GetMaintainerCanModify

func (p *PullRequest) GetMaintainerCanModify() bool

GetMaintainerCanModify returns the MaintainerCanModify field if it's non-nil, zero value otherwise.

func (p *PullRequest) GetMergeCommitSHA() string

GetMergeCommitSHA returns the MergeCommitSHA field if it's non-nil, zero value otherwise.

func (p *PullRequest) GetMergeable() bool

GetMergeable returns the Mergeable field if it's non-nil, zero value otherwise.

func (p *PullRequest) GetMergeableState() string

GetMergeableState returns the MergeableState field if it's non-nil, zero value otherwise.

func (p *PullRequest) GetMerged() bool

GetMerged returns the Merged field if it's non-nil, zero value otherwise.

GetMergedAt returns the MergedAt field if it's non-nil, zero value otherwise.

func (p *PullRequest) GetMergedBy() *User

GetMergedBy returns the MergedBy field.

func (p *PullRequest) GetMilestone() *Milestone

GetMilestone returns the Milestone field.

GetNodeID returns the NodeID field if it's non-nil, zero value otherwise.

func (p *PullRequest) GetNumber() int

GetNumber returns the Number field if it's non-nil, zero value otherwise.

GetPatchURL returns the PatchURL field if it's non-nil, zero value otherwise.

func (p *PullRequest) GetReviewCommentURL() string

GetReviewCommentURL returns the ReviewCommentURL field if it's non-nil, zero value otherwise.

func (p *PullRequest) GetReviewCommentsURL() string

GetReviewCommentsURL returns the ReviewCommentsURL field if it's non-nil, zero value otherwise.

GetState returns the State field if it's non-nil, zero value otherwise.

GetStatusesURL returns the StatusesURL field if it's non-nil, zero value otherwise.

GetTitle returns the Title field if it's non-nil, zero value otherwise.

GetURL returns the URL field if it's non-nil, zero value otherwise.

GetUpdatedAt returns the UpdatedAt field if it's non-nil, zero value otherwise.

func (p *PullRequest) GetUser() *User

GetUser returns the User field.

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.

GetLabel returns the Label field if it's non-nil, zero value otherwise.

GetRef returns the Ref field if it's non-nil, zero value otherwise.

func (p *PullRequestBranch) GetRepo() *Repository

GetRepo returns the Repo field.

GetSHA returns the SHA field if it's non-nil, zero value otherwise.

func (p *PullRequestBranch) GetUser() *User

GetUser returns the User field.

type PullRequestComment struct {
	Body                *string    `json:"body,omitempty"`
	
	
}

PullRequestComment represents a comment left on a pull request.

func (p *PullRequestComment) GetAuthorAssociation() string

GetAuthorAssociation returns the AuthorAssociation field if it's non-nil, zero value otherwise.

func (*PullRequestComment) GetBody

GetBody returns the Body field if it's non-nil, zero value otherwise.

GetCommitID returns the CommitID field if it's non-nil, zero value otherwise.

GetCreatedAt returns the CreatedAt field if it's non-nil, zero value otherwise.

GetDiffHunk returns the DiffHunk field if it's non-nil, zero value otherwise.

GetHTMLURL returns the HTMLURL field if it's non-nil, zero value otherwise.

GetID returns the ID field if it's non-nil, zero value otherwise.

GetInReplyTo returns the InReplyTo field if it's non-nil, zero value otherwise.

func (p *PullRequestComment) GetOriginalCommitID() string

GetOriginalCommitID returns the OriginalCommitID field if it's non-nil, zero value otherwise.

func (p *PullRequestComment) GetOriginalPosition() int

GetOriginalPosition returns the OriginalPosition field if it's non-nil, zero value otherwise.

GetPath returns the Path field if it's non-nil, zero value otherwise.

func (p *PullRequestComment) GetPosition() int

GetPosition returns the Position field if it's non-nil, zero value otherwise.

func (p *PullRequestComment) GetPullRequestReviewID() int64

GetPullRequestReviewID returns the PullRequestReviewID field if it's non-nil, zero value otherwise.

GetPullRequestURL returns the PullRequestURL field if it's non-nil, zero value otherwise.

func (p *PullRequestComment) GetReactions() *Reactions

GetReactions returns the Reactions field.

GetURL returns the URL field if it's non-nil, zero value otherwise.

GetUpdatedAt returns the UpdatedAt field if it's non-nil, zero value otherwise.

func (p *PullRequestComment) GetUser() *User

GetUser returns the User field.

type PullRequestEvent struct {
	
	
	
	
	
	
	Action      *string      `json:"action,omitempty"`
	Number      *int         `json:"number,omitempty"`
	PullRequest *PullRequest `json:"pull_request,omitempty"`

	
	Changes *EditChange `json:"changes,omitempty"`
	
	
	
	RequestedReviewer *User         `json:"requested_reviewer,omitempty"`
	Repo              *Repository   `json:"repository,omitempty"`
	Sender            *User         `json:"sender,omitempty"`
	Installation      *Installation `json:"installation,omitempty"`
	Label             *Label        `json:"label,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 API docs: https://developer.github.com/v3/activity/events/types/#pullrequestevent

GetAction returns the Action field if it's non-nil, zero value otherwise.

func (p *PullRequestEvent) GetChanges() *EditChange

GetChanges returns the Changes field.

func (p *PullRequestEvent) GetInstallation() *Installation

GetInstallation returns the Installation field.

func (p *PullRequestEvent) GetLabel() *Label

GetLabel returns the Label field.

func (p *PullRequestEvent) GetNumber() int

GetNumber returns the Number field if it's non-nil, zero value otherwise.

func (p *PullRequestEvent) GetPullRequest() *PullRequest

GetPullRequest returns the PullRequest field.

func (p *PullRequestEvent) GetRepo() *Repository

GetRepo returns the Repo field.

func (p *PullRequestEvent) GetRequestedReviewer() *User

GetRequestedReviewer returns the RequestedReviewer field.

func (p *PullRequestEvent) GetSender() *User

GetSender returns the Sender field.

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 webhook is fired by a comment on a PR.

GetDiffURL returns the DiffURL field if it's non-nil, zero value otherwise.

GetHTMLURL returns the HTMLURL field if it's non-nil, zero value otherwise.

GetPatchURL returns the PatchURL field if it's non-nil, zero value otherwise.

GetURL returns the URL field if it's non-nil, zero value otherwise.

type PullRequestListCommentsOptions struct {
	Sort string `url:"sort,omitempty"`

	Direction string `url:"direction,omitempty"`

	Since time.Time `url:"since,omitempty"`

}

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

type PullRequestListOptions struct {
	
	
	State string `url:"state,omitempty"`

	
	
	Head string `url:"head,omitempty"`

	
	Base string `url:"base,omitempty"`

	
	
	Sort string `url:"sort,omitempty"`

	
	
	
	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.

GetMerged returns the Merged field if it's non-nil, zero value otherwise.

GetMessage returns the Message field if it's non-nil, zero value otherwise.

GetSHA returns the SHA field if it's non-nil, zero value otherwise.

PullRequestOptions lets you define how a pull request will be merged.

type PullRequestReview struct {
	ID             *int64     `json:"id,omitempty"`
	User           *User      `json:"user,omitempty"`
	Body           *string    `json:"body,omitempty"`
	SubmittedAt    *time.Time `json:"submitted_at,omitempty"`
	CommitID       *string    `json:"commit_id,omitempty"`
	HTMLURL        *string    `json:"html_url,omitempty"`
	PullRequestURL *string    `json:"pull_request_url,omitempty"`
	State          *string    `json:"state,omitempty"`
}

PullRequestReview represents a review of a pull request.

func (*PullRequestReview) GetBody

GetBody returns the Body field if it's non-nil, zero value otherwise.

GetCommitID returns the CommitID field if it's non-nil, zero value otherwise.

GetHTMLURL returns the HTMLURL field if it's non-nil, zero value otherwise.

GetID returns the ID field if it's non-nil, zero value otherwise.

GetPullRequestURL returns the PullRequestURL field if it's non-nil, zero value otherwise.

GetState returns the State field if it's non-nil, zero value otherwise.

GetSubmittedAt returns the SubmittedAt field if it's non-nil, zero value otherwise.

func (p *PullRequestReview) GetUser() *User

GetUser returns the User field.

type PullRequestReviewCommentEvent struct {
	
	

	
}

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 API docs: https://developer.github.com/v3/activity/events/types/#pullrequestreviewcommentevent

GetAction returns the Action field if it's non-nil, zero value otherwise.

func (p *PullRequestReviewCommentEvent) GetChanges() *EditChange

GetChanges returns the Changes field.

GetComment returns the Comment field.

func (p *PullRequestReviewCommentEvent) GetInstallation() *Installation

GetInstallation returns the Installation field.

func (p *PullRequestReviewCommentEvent) GetPullRequest() *PullRequest

GetPullRequest returns the PullRequest field.

GetRepo returns the Repo field.

func (p *PullRequestReviewCommentEvent) GetSender() *User

GetSender returns the Sender field.

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

PullRequestReviewDismissalRequest represents a request to dismiss a review.

GetMessage returns the Message field if it's non-nil, zero value otherwise.

type PullRequestReviewEvent struct {
	
	Action      *string            `json:"action,omitempty"`
	Review      *PullRequestReview `json:"review,omitempty"`
	PullRequest *PullRequest       `json:"pull_request,omitempty"`

	
	Repo         *Repository   `json:"repository,omitempty"`
	Sender       *User         `json:"sender,omitempty"`
	Installation *Installation `json:"installation,omitempty"`

	
	
	Organization *Organization `json:"organization,omitempty"`
}

PullRequestReviewEvent is triggered when a review is submitted on a pull request. The Webhook event name is "pull_request_review".

GitHub API docs: https://developer.github.com/v3/activity/events/types/#pullrequestreviewevent

GetAction returns the Action field if it's non-nil, zero value otherwise.

func (p *PullRequestReviewEvent) GetInstallation() *Installation

GetInstallation returns the Installation field.

func (p *PullRequestReviewEvent) GetOrganization() *Organization

GetOrganization returns the Organization field.

func (p *PullRequestReviewEvent) GetPullRequest() *PullRequest

GetPullRequest returns the PullRequest field.

func (p *PullRequestReviewEvent) GetRepo() *Repository

GetRepo returns the Repo field.

func (p *PullRequestReviewEvent) GetReview() *PullRequestReview

GetReview returns the Review field.

func (p *PullRequestReviewEvent) GetSender() *User

GetSender returns the Sender field.

type PullRequestReviewRequest struct {
	CommitID *string               `json:"commit_id,omitempty"`
	Body     *string               `json:"body,omitempty"`
	Event    *string               `json:"event,omitempty"`
}

PullRequestReviewRequest represents a request to create a review.

func (*PullRequestReviewRequest) GetBody

GetBody returns the Body field if it's non-nil, zero value otherwise.

GetCommitID returns the CommitID field if it's non-nil, zero value otherwise.

GetEvent returns the Event field if it's non-nil, zero value otherwise.

type PullRequestReviewsEnforcement struct {
	
	DismissalRestrictions DismissalRestrictions `json:"dismissal_restrictions"`
	
	DismissStaleReviews bool `json:"dismiss_stale_reviews"`
	
	RequireCodeOwnerReviews bool `json:"require_code_owner_reviews"`
	
	
	RequiredApprovingReviewCount int `json:"required_approving_review_count"`
}

PullRequestReviewsEnforcement represents the pull request reviews enforcement of a protected branch.

type PullRequestReviewsEnforcementRequest struct {
	
	
	
	DismissalRestrictionsRequest *DismissalRestrictionsRequest `json:"dismissal_restrictions,omitempty"`
	
	DismissStaleReviews bool `json:"dismiss_stale_reviews"`
	
	RequireCodeOwnerReviews bool `json:"require_code_owner_reviews"`
	
	
	RequiredApprovingReviewCount int `json:"required_approving_review_count"`
}

PullRequestReviewsEnforcementRequest represents request to set the pull request review enforcement of a protected branch. It is separate from PullRequestReviewsEnforcement above because the request structure is different from the response structure.

func (p *PullRequestReviewsEnforcementRequest) GetDismissalRestrictionsRequest() *DismissalRestrictionsRequest

GetDismissalRestrictionsRequest returns the DismissalRestrictionsRequest field.

type PullRequestReviewsEnforcementUpdate struct {
	
	DismissalRestrictionsRequest *DismissalRestrictionsRequest `json:"dismissal_restrictions,omitempty"`
	
	DismissStaleReviews *bool `json:"dismiss_stale_reviews,omitempty"`
	
	RequireCodeOwnerReviews bool `json:"require_code_owner_reviews,omitempty"`
	
	
	RequiredApprovingReviewCount int `json:"required_approving_review_count"`
}

PullRequestReviewsEnforcementUpdate represents request to patch the pull request review enforcement of a protected branch. It is separate from PullRequestReviewsEnforcementRequest above because the patch request does not require all fields to be initialized.

func (p *PullRequestReviewsEnforcementUpdate) GetDismissStaleReviews() bool

GetDismissStaleReviews returns the DismissStaleReviews field if it's non-nil, zero value otherwise.

func (p *PullRequestReviewsEnforcementUpdate) GetDismissalRestrictionsRequest() *DismissalRestrictionsRequest

GetDismissalRestrictionsRequest returns the DismissalRestrictionsRequest field.

type PullRequestsService service

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

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

Create a new pull request on the specified repository.

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

package main

import (
	"context"
	"fmt"

	"github.com/google/go-github/github"
)

func main() {
	// In this example we're creating a PR and displaying the HTML url at the end.

	// Note that authentication is needed here as you are performing a modification
	// so you will need to modify the example to provide an oauth client to
	// github.NewClient() instead of nil. See the following documentation for more
	// information on how to authenticate with the client:
	// https://godoc.org/github.com/google/go-github/github#hdr-Authentication
	client := github.NewClient(nil)

	newPR := &github.NewPullRequest{
		Title:               github.String("My awesome pull request"),
		Head:                github.String("branch_to_merge"),
		Base:                github.String("master"),
		Body:                github.String("This is the description of the PR created with the package `github.com/google/go-github/github`"),
		MaintainerCanModify: github.Bool(true),
	}

	pr, _, err := client.PullRequests.Create(context.Background(), "myOrganization", "myRepository", newPR)
	if err != nil {
		fmt.Println(err)
		return
	}

	fmt.Printf("PR created: %s\n", pr.GetHTMLURL())
}

GetRaw gets a single pull request in raw (diff or patch) format.

type PullStats struct {
	TotalPulls      *int `json:"total_pulls,omitempty"`
	MergedPulls     *int `json:"merged_pulls,omitempty"`
	MergablePulls   *int `json:"mergeable_pulls,omitempty"`
	UnmergablePulls *int `json:"unmergeable_pulls,omitempty"`
}

PullStats represents the number of total, merged, mergable and unmergeable pull-requests.

func (p *PullStats) GetMergablePulls() int

GetMergablePulls returns the MergablePulls field if it's non-nil, zero value otherwise.

func (p *PullStats) GetMergedPulls() int

GetMergedPulls returns the MergedPulls field if it's non-nil, zero value otherwise.

func (p *PullStats) GetTotalPulls() int

GetTotalPulls returns the TotalPulls field if it's non-nil, zero value otherwise.

func (p *PullStats) GetUnmergablePulls() int

GetUnmergablePulls returns the UnmergablePulls field if it's non-nil, zero value otherwise.

type PunchCard struct {
	Day     *int 
	Hour    *int 
	Commits *int 
}

PunchCard represents the number of commits made during a given hour of a day of the week.

func (p *PunchCard) GetCommits() int

GetCommits returns the Commits field if it's non-nil, zero value otherwise.

func (p *PunchCard) GetDay() int

GetDay returns the Day field if it's non-nil, zero value otherwise.

func (p *PunchCard) GetHour() int

GetHour returns the Hour field if it's non-nil, zero value otherwise.

type PushEvent struct {
	PushID       *int64            `json:"push_id,omitempty"`
	Head         *string           `json:"head,omitempty"`
	Ref          *string           `json:"ref,omitempty"`
	Size         *int              `json:"size,omitempty"`
	Commits      []PushEventCommit `json:"commits,omitempty"`
	Before       *string           `json:"before,omitempty"`
	DistinctSize *int              `json:"distinct_size,omitempty"`

	
	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"`
	Repo         *PushEventRepository `json:"repository,omitempty"`
	HeadCommit   *PushEventCommit     `json:"head_commit,omitempty"`
	Pusher       *User                `json:"pusher,omitempty"`
	Sender       *User                `json:"sender,omitempty"`
	Installation *Installation        `json:"installation,omitempty"`
}

PushEvent represents a git push to a GitHub repository.

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

GetAfter returns the After field if it's non-nil, zero value otherwise.

GetBaseRef returns the BaseRef field if it's non-nil, zero value otherwise.

GetBefore returns the Before field if it's non-nil, zero value otherwise.

GetCompare returns the Compare field if it's non-nil, zero value otherwise.

func (p *PushEvent) GetCreated() bool

GetCreated returns the Created field if it's non-nil, zero value otherwise.

func (p *PushEvent) GetDeleted() bool

GetDeleted returns the Deleted field if it's non-nil, zero value otherwise.

func (p *PushEvent) GetDistinctSize() int

GetDistinctSize returns the DistinctSize field if it's non-nil, zero value otherwise.

func (p *PushEvent) GetForced() bool

GetForced returns the Forced field if it's non-nil, zero value otherwise.

GetHead returns the Head field if it's non-nil, zero value otherwise.

func (p *PushEvent) GetHeadCommit() *PushEventCommit

GetHeadCommit returns the HeadCommit field.

func (p *PushEvent) GetInstallation() *Installation

GetInstallation returns the Installation field.

GetPushID returns the PushID field if it's non-nil, zero value otherwise.

func (p *PushEvent) GetPusher() *User

GetPusher returns the Pusher field.

GetRef returns the Ref field if it's non-nil, zero value otherwise.

func (p *PushEvent) GetRepo() *PushEventRepository

GetRepo returns the Repo field.

func (p *PushEvent) GetSender() *User

GetSender returns the Sender field.

func (p *PushEvent) GetSize() int

GetSize returns the Size field if it's non-nil, zero value otherwise.

type PushEventCommit struct {
	Message  *string       `json:"message,omitempty"`
	Author   *CommitAuthor `json:"author,omitempty"`
	URL      *string       `json:"url,omitempty"`
	Distinct *bool         `json:"distinct,omitempty"`

	
	SHA *string `json:"sha,omitempty"`

	
	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) GetAuthor() *CommitAuthor

GetAuthor returns the Author field.

func (p *PushEventCommit) GetCommitter() *CommitAuthor

GetCommitter returns the Committer field.

func (p *PushEventCommit) GetDistinct() bool

GetDistinct returns the Distinct field if it's non-nil, zero value otherwise.

GetID returns the ID field if it's non-nil, zero value otherwise.

GetMessage returns the Message field if it's non-nil, zero value otherwise.

GetSHA returns the SHA field if it's non-nil, zero value otherwise.

func (p *PushEventCommit) GetTimestamp() Timestamp

GetTimestamp returns the Timestamp field if it's non-nil, zero value otherwise.

GetTreeID returns the TreeID field if it's non-nil, zero value otherwise.

GetURL returns the URL field if it's non-nil, zero value otherwise.

type PushEventRepoOwner struct {
	Name  *string `json:"name,omitempty"`
	Email *string `json:"email,omitempty"`
}

PushEventRepoOwner is a basic representation of user/org in a PushEvent payload.

GetEmail returns the Email field if it's non-nil, zero value otherwise.

GetName returns the Name field if it's non-nil, zero value otherwise.

type PushEventRepository struct {
	ID              *int64              `json:"id,omitempty"`
	NodeID          *string             `json:"node_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"`
	URL             *string             `json:"url,omitempty"`
	ArchiveURL      *string             `json:"archive_url,omitempty"`
	HTMLURL         *string             `json:"html_url,omitempty"`
	StatusesURL     *string             `json:"statuses_url,omitempty"`
	GitURL          *string             `json:"git_url,omitempty"`
	SSHURL          *string             `json:"ssh_url,omitempty"`
	CloneURL        *string             `json:"clone_url,omitempty"`
	SVNURL          *string             `json:"svn_url,omitempty"`
}

PushEventRepository represents the repo object in a PushEvent payload.

GetArchiveURL returns the ArchiveURL field if it's non-nil, zero value otherwise.

GetCloneURL returns the CloneURL field if it's non-nil, zero value otherwise.

func (p *PushEventRepository) GetCreatedAt() Timestamp

GetCreatedAt returns the CreatedAt field if it's non-nil, zero value otherwise.

GetDefaultBranch returns the DefaultBranch field if it's non-nil, zero value otherwise.

GetDescription returns the Description field if it's non-nil, zero value otherwise.

GetFork returns the Fork field if it's non-nil, zero value otherwise.

func (p *PushEventRepository) GetForksCount() int

GetForksCount returns the ForksCount field if it's non-nil, zero value otherwise.

GetFullName returns the FullName field if it's non-nil, zero value otherwise.

GetGitURL returns the GitURL field if it's non-nil, zero value otherwise.

GetHTMLURL returns the HTMLURL field if it's non-nil, zero value otherwise.

func (p *PushEventRepository) GetHasDownloads() bool

GetHasDownloads returns the HasDownloads field if it's non-nil, zero value otherwise.

func (p *PushEventRepository) GetHasIssues() bool

GetHasIssues returns the HasIssues field if it's non-nil, zero value otherwise.

GetHasPages returns the HasPages field if it's non-nil, zero value otherwise.

GetHasWiki returns the HasWiki field if it's non-nil, zero value otherwise.

GetHomepage returns the Homepage field if it's non-nil, zero value otherwise.

GetID returns the ID field if it's non-nil, zero value otherwise.

GetLanguage returns the Language field if it's non-nil, zero value otherwise.

GetMasterBranch returns the MasterBranch field if it's non-nil, zero value otherwise.

GetName returns the Name field if it's non-nil, zero value otherwise.

GetNodeID returns the NodeID field if it's non-nil, zero value otherwise.

func (p *PushEventRepository) GetOpenIssuesCount() int

GetOpenIssuesCount returns the OpenIssuesCount field if it's non-nil, zero value otherwise.

GetOrganization returns the Organization field if it's non-nil, zero value otherwise.

func (p *PushEventRepository) GetOwner() *PushEventRepoOwner

GetOwner returns the Owner field.

GetPrivate returns the Private field if it's non-nil, zero value otherwise.

func (p *PushEventRepository) GetPushedAt() Timestamp

GetPushedAt returns the PushedAt field if it's non-nil, zero value otherwise.

GetSSHURL returns the SSHURL field if it's non-nil, zero value otherwise.

GetSVNURL returns the SVNURL field if it's non-nil, zero value otherwise.

GetSize returns the Size field if it's non-nil, zero value otherwise.

func (p *PushEventRepository) GetStargazersCount() int

GetStargazersCount returns the StargazersCount field if it's non-nil, zero value otherwise.

GetStatusesURL returns the StatusesURL field if it's non-nil, zero value otherwise.

GetURL returns the URL field if it's non-nil, zero value otherwise.

func (p *PushEventRepository) GetUpdatedAt() Timestamp

GetUpdatedAt returns the UpdatedAt field if it's non-nil, zero value otherwise.

func (p *PushEventRepository) GetWatchersCount() int

GetWatchersCount returns the WatchersCount field if it's non-nil, zero value otherwise.

type Rate struct {
	
	Limit int `json:"limit"`

	
	Remaining int `json:"remaining"`

	
	Reset Timestamp `json:"reset"`
}

Rate represents the rate limit for the current client.

type RateLimitError struct {
	Rate     Rate           
	Response *http.Response 
	Message  string         `json:"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 ".

type RateLimits struct {
	
	
	
	
	
	Core *Rate `json:"core"`

	
	
	
	
	
	Search *Rate `json:"search"`
}

RateLimits represents the rate limits for the current client.

func (r *RateLimits) GetCore() *Rate

GetCore returns the Core field.

func (r *RateLimits) GetSearch() *Rate

GetSearch returns the Search field.

type RawOptions struct {
	Type RawType
}

RawOptions specifies parameters when user wants to get raw format of a response instead of JSON.

RawType represents type of raw format of a request instead of JSON.

const (
	
	Diff RawType = 1 + iota
	
	Patch
)
type Reaction struct {
	
	ID     *int64  `json:"id,omitempty"`
	User   *User   `json:"user,omitempty"`
	NodeID *string `json:"node_id,omitempty"`
	
	
	
	Content *string `json:"content,omitempty"`
}

Reaction represents a GitHub reaction.

func (*Reaction) GetContent

GetContent returns the Content field if it's non-nil, zero value otherwise.

GetID returns the ID field if it's non-nil, zero value otherwise.

GetNodeID returns the NodeID field if it's non-nil, zero value otherwise.

func (r *Reaction) GetUser() *User

GetUser returns the User field.

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.

func (r *Reactions) GetConfused() int

GetConfused returns the Confused field if it's non-nil, zero value otherwise.

func (r *Reactions) GetHeart() int

GetHeart returns the Heart field if it's non-nil, zero value otherwise.

func (r *Reactions) GetHooray() int

GetHooray returns the Hooray field if it's non-nil, zero value otherwise.

func (r *Reactions) GetLaugh() int

GetLaugh returns the Laugh field if it's non-nil, zero value otherwise.

func (r *Reactions) GetMinusOne() int

GetMinusOne returns the MinusOne field if it's non-nil, zero value otherwise.

func (r *Reactions) GetPlusOne() int

GetPlusOne returns the PlusOne field if it's non-nil, zero value otherwise.

func (r *Reactions) GetTotalCount() int

GetTotalCount returns the TotalCount field if it's non-nil, zero value otherwise.

GetURL returns the URL field if it's non-nil, zero value otherwise.

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

Reference represents a GitHub reference.

GetNodeID returns the NodeID field if it's non-nil, zero value otherwise.

func (r *Reference) GetObject() *GitObject

GetObject returns the Object field.

GetRef returns the Ref field if it's non-nil, zero value otherwise.

GetURL returns the URL field if it's non-nil, zero value otherwise.

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

	ListOptions
}

ReferenceListOptions specifies optional parameters to the GitService.ListRefs method.

type ReleaseAsset struct {
	ID                 *int64     `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"`
	NodeID             *string    `json:"node_id,omitempty"`
}

ReleaseAsset represents a GitHub release asset in a repository.

func (r *ReleaseAsset) GetBrowserDownloadURL() string

GetBrowserDownloadURL returns the BrowserDownloadURL field if it's non-nil, zero value otherwise.

func (*ReleaseAsset) GetContentType

GetContentType returns the ContentType field if it's non-nil, zero value otherwise.

func (r *ReleaseAsset) GetCreatedAt() Timestamp

GetCreatedAt returns the CreatedAt field if it's non-nil, zero value otherwise.

func (r *ReleaseAsset) GetDownloadCount() int

GetDownloadCount returns the DownloadCount field if it's non-nil, zero value otherwise.

GetID returns the ID field if it's non-nil, zero value otherwise.

GetLabel returns the Label field if it's non-nil, zero value otherwise.

GetName returns the Name field if it's non-nil, zero value otherwise.

GetNodeID returns the NodeID field if it's non-nil, zero value otherwise.

func (r *ReleaseAsset) GetSize() int

GetSize returns the Size field if it's non-nil, zero value otherwise.

GetState returns the State field if it's non-nil, zero value otherwise.

GetURL returns the URL field if it's non-nil, zero value otherwise.

func (r *ReleaseAsset) GetUpdatedAt() Timestamp

GetUpdatedAt returns the UpdatedAt field if it's non-nil, zero value otherwise.

func (r *ReleaseAsset) GetUploader() *User

GetUploader returns the Uploader field.

type ReleaseEvent struct {
	
	Action  *string            `json:"action,omitempty"`
	Release *RepositoryRelease `json:"release,omitempty"`

	
	Repo         *Repository   `json:"repository,omitempty"`
	Sender       *User         `json:"sender,omitempty"`
	Installation *Installation `json:"installation,omitempty"`
}

ReleaseEvent is triggered when a release is published. The Webhook event name is "release".

GitHub API docs: https://developer.github.com/v3/activity/events/types/#releaseevent

GetAction returns the Action field if it's non-nil, zero value otherwise.

func (r *ReleaseEvent) GetInstallation() *Installation

GetInstallation returns the Installation field.

func (r *ReleaseEvent) GetRelease() *RepositoryRelease

GetRelease returns the Release field.

func (r *ReleaseEvent) GetRepo() *Repository

GetRepo returns the Repo field.

func (r *ReleaseEvent) GetSender() *User

GetSender returns the Sender field.

type Rename struct {
	From *string `json:"from,omitempty"`
	To   *string `json:"to,omitempty"`
}

Rename contains details for 'renamed' events.

GetFrom returns the From field if it's non-nil, zero value otherwise.

GetTo returns the To field if it's non-nil, zero value otherwise.

type RepoStats struct {
	TotalRepos  *int `json:"total_repos,omitempty"`
	RootRepos   *int `json:"root_repos,omitempty"`
	ForkRepos   *int `json:"fork_repos,omitempty"`
	OrgRepos    *int `json:"org_repos,omitempty"`
	TotalPushes *int `json:"total_pushes,omitempty"`
	TotalWikis  *int `json:"total_wikis,omitempty"`
}

RepoStats represents the number of total, root, fork, organization repositories together with the total number of pushes and wikis.

func (r *RepoStats) GetForkRepos() int

GetForkRepos returns the ForkRepos field if it's non-nil, zero value otherwise.

func (r *RepoStats) GetOrgRepos() int

GetOrgRepos returns the OrgRepos field if it's non-nil, zero value otherwise.

func (r *RepoStats) GetRootRepos() int

GetRootRepos returns the RootRepos field if it's non-nil, zero value otherwise.

func (r *RepoStats) GetTotalPushes() int

GetTotalPushes returns the TotalPushes field if it's non-nil, zero value otherwise.

func (r *RepoStats) GetTotalRepos() int

GetTotalRepos returns the TotalRepos field if it's non-nil, zero value otherwise.

func (r *RepoStats) GetTotalWikis() int

GetTotalWikis returns the TotalWikis field if it's non-nil, zero value otherwise.

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

	
	
	State *string `json:"state,omitempty"`

	
	
	TargetURL *string `json:"target_url,omitempty"`

	
	Description *string `json:"description,omitempty"`

	
	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.

GetContext returns the Context field if it's non-nil, zero value otherwise.

GetCreatedAt returns the CreatedAt field if it's non-nil, zero value otherwise.

func (r *RepoStatus) GetCreator() *User

GetCreator returns the Creator field.

GetDescription returns the Description field if it's non-nil, zero value otherwise.

GetID returns the ID field if it's non-nil, zero value otherwise.

GetState returns the State field if it's non-nil, zero value otherwise.

GetTargetURL returns the TargetURL field if it's non-nil, zero value otherwise.

GetURL returns the URL field if it's non-nil, zero value otherwise.

GetUpdatedAt returns the UpdatedAt field if it's non-nil, zero value otherwise.

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

RepositoriesSearchResult represents the result of a repositories search.

func (r *RepositoriesSearchResult) GetIncompleteResults() bool

GetIncompleteResults returns the IncompleteResults field if it's non-nil, zero value otherwise.

GetTotal returns the Total field if it's non-nil, zero value otherwise.

type RepositoriesService service

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

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

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: https://developer.github.com/v3/repos/#create

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

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

package main

import (
	"context"
	"fmt"

	"github.com/google/go-github/github"
)

func main() {
	// In this example we're creating a new file in a repository using the
	// Contents API. Only 1 file per commit can be managed through that API.

	// Note that authentication is needed here as you are performing a modification
	// so you will need to modify the example to provide an oauth client to
	// github.NewClient() instead of nil. See the following documentation for more
	// information on how to authenticate with the client:
	// https://godoc.org/github.com/google/go-github/github#hdr-Authentication
	client := github.NewClient(nil)

	ctx := context.Background()
	fileContent := []byte("This is the content of my file\nand the 2nd line of it")

	// Note: the file needs to be absent from the repository as you are not
	// specifying a SHA reference here.
	opts := &github.RepositoryContentFileOptions{
		Message:   github.String("This is my commit message"),
		Content:   fileContent,
		Branch:    github.String("master"),
		Committer: &github.CommitAuthor{Name: github.String("FirstName LastName"), Email: github.String("user@example.com")},
	}
	_, _, err := client.Repositories.CreateFile(ctx, "myOrganization", "myRepository", "myNewFile.md", opts)
	if err != nil {
		fmt.Println(err)
		return
	}
}

CreateFork creates a fork of the specified repository.

This method might return an *AcceptedError and a status code of 202. This is because this is the status that GitHub returns to signify that it is now computing creating the fork in a background task. In this event, the Repository value will be returned, which includes the details about the pending fork. 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/forks/#create-a-fork

func (*RepositoriesService) DownloadContents

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.

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: https://developer.github.com/v3/repos/releases/#get-a-single-release-asset

GetByID fetches a repository.

Note: GetByID uses the undocumented GitHub API endpoint /repositories/:id.

GetCommitRaw fetches the specified commit in raw (diff or patch) format.

func (*RepositoriesService) GetContents

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: https://developer.github.com/v3/repos/contents/#get-contents

GetReadme gets the Readme file for the repository.

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

package main

import (
	"context"
	"fmt"

	"github.com/google/go-github/github"
)

func main() {
	client := github.NewClient(nil)

	readme, _, err := client.Repositories.GetReadme(context.Background(), "google", "go-github", nil)
	if err != nil {
		fmt.Println(err)
		return
	}

	content, err := readme.GetContent()
	if err != nil {
		fmt.Println(err)
		return
	}

	fmt.Printf("google/go-github README:\n%v\n", content)
}

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

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

package main

import (
	"context"
	"fmt"

	"github.com/google/go-github/github"
)

func main() {
	client := github.NewClient(nil)

	user := "willnorris"
	opt := &github.RepositoryListOptions{Type: "owner", Sort: "updated", Direction: "desc"}

	repos, _, err := client.Repositories.List(context.Background(), user, opt)
	if err != nil {
		fmt.Println(err)
	}

	fmt.Printf("Recently updated repositories by %q: %v", user, github.Stringify(repos))
}

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.

If this is the first time these statistics are requested for the given repository, this method will return an *AcceptedError 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/#code-frequency

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 an *AcceptedError 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

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 an *AcceptedError 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

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: https://developer.github.com/v3/repos/#list-languages

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 an *AcceptedError 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

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

If this is the first time these statistics are requested for the given repository, this method will return an *AcceptedError 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/#punch-card

Transfer transfers a repository from one account or organization to another.

This method might return an *AcceptedError and a status code of 202. This is because this is the status that GitHub returns to signify that it has now scheduled the transfer of the repository in a background task. 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/#transfer-a-repository

type Repository struct {
	ID               *int64           `json:"id,omitempty"`
	NodeID           *string          `json:"node_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"`
	CodeOfConduct    *CodeOfConduct   `json:"code_of_conduct,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,omitempty"`
	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"`
	AllowRebaseMerge *bool            `json:"allow_rebase_merge,omitempty"`
	AllowSquashMerge *bool            `json:"allow_squash_merge,omitempty"`
	AllowMergeCommit *bool            `json:"allow_merge_commit,omitempty"`
	Topics           []string         `json:"topics,omitempty"`

	
	License *License `json:"license,omitempty"`

	
	Private           *bool   `json:"private,omitempty"`
	HasIssues         *bool   `json:"has_issues,omitempty"`
	HasWiki           *bool   `json:"has_wiki,omitempty"`
	HasPages          *bool   `json:"has_pages,omitempty"`
	HasProjects       *bool   `json:"has_projects,omitempty"`
	HasDownloads      *bool   `json:"has_downloads,omitempty"`
	LicenseTemplate   *string `json:"license_template,omitempty"`
	GitignoreTemplate *string `json:"gitignore_template,omitempty"`
	Archived          *bool   `json:"archived,omitempty"`

	
	TeamID *int64 `json:"team_id,omitempty"`

	
	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"`
	CommitsURL       *string `json:"commits_url,omitempty"`
	CompareURL       *string `json:"compare_url,omitempty"`
	ContentsURL      *string `json:"contents_url,omitempty"`
	ContributorsURL  *string `json:"contributors_url,omitempty"`
	DeploymentsURL   *string `json:"deployments_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"`
	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 []TextMatch `json:"text_matches,omitempty"`
}

Repository represents a GitHub repository.

func (r *Repository) GetAllowMergeCommit() bool

GetAllowMergeCommit returns the AllowMergeCommit field if it's non-nil, zero value otherwise.

func (r *Repository) GetAllowRebaseMerge() bool

GetAllowRebaseMerge returns the AllowRebaseMerge field if it's non-nil, zero value otherwise.

func (r *Repository) GetAllowSquashMerge() bool

GetAllowSquashMerge returns the AllowSquashMerge field if it's non-nil, zero value otherwise.

GetArchiveURL returns the ArchiveURL field if it's non-nil, zero value otherwise.

func (r *Repository) GetArchived() bool

GetArchived returns the Archived field if it's non-nil, zero value otherwise.

func (r *Repository) GetAssigneesURL() string

GetAssigneesURL returns the AssigneesURL field if it's non-nil, zero value otherwise.

func (r *Repository) GetAutoInit() bool

GetAutoInit returns the AutoInit field if it's non-nil, zero value otherwise.

GetBlobsURL returns the BlobsURL field if it's non-nil, zero value otherwise.

GetBranchesURL returns the BranchesURL field if it's non-nil, zero value otherwise.

GetCloneURL returns the CloneURL field if it's non-nil, zero value otherwise.

func (r *Repository) GetCodeOfConduct() *CodeOfConduct

GetCodeOfConduct returns the CodeOfConduct field.

func (r *Repository) GetCollaboratorsURL() string

GetCollaboratorsURL returns the CollaboratorsURL field if it's non-nil, zero value otherwise.

GetCommentsURL returns the CommentsURL field if it's non-nil, zero value otherwise.

GetCommitsURL returns the CommitsURL field if it's non-nil, zero value otherwise.

GetCompareURL returns the CompareURL field if it's non-nil, zero value otherwise.

func (*Repository) GetContentsURL

GetContentsURL returns the ContentsURL field if it's non-nil, zero value otherwise.

func (r *Repository) GetContributorsURL() string

GetContributorsURL returns the ContributorsURL field if it's non-nil, zero value otherwise.

func (r *Repository) GetCreatedAt() Timestamp

GetCreatedAt returns the CreatedAt field if it's non-nil, zero value otherwise.

func (r *Repository) GetDefaultBranch() string

GetDefaultBranch returns the DefaultBranch field if it's non-nil, zero value otherwise.

func (r *Repository) GetDeploymentsURL() string

GetDeploymentsURL returns the DeploymentsURL field if it's non-nil, zero value otherwise.

GetDescription returns the Description field if it's non-nil, zero value otherwise.

func (r *Repository) GetDownloadsURL() string

GetDownloadsURL returns the DownloadsURL field if it's non-nil, zero value otherwise.

GetEventsURL returns the EventsURL field if it's non-nil, zero value otherwise.

func (r *Repository) GetFork() bool

GetFork returns the Fork field if it's non-nil, zero value otherwise.

func (r *Repository) GetForksCount() int

GetForksCount returns the ForksCount field if it's non-nil, zero value otherwise.

GetForksURL returns the ForksURL field if it's non-nil, zero value otherwise.

GetFullName returns the FullName field if it's non-nil, zero value otherwise.

func (r *Repository) GetGitCommitsURL() string

GetGitCommitsURL returns the GitCommitsURL field if it's non-nil, zero value otherwise.

GetGitRefsURL returns the GitRefsURL field if it's non-nil, zero value otherwise.

GetGitTagsURL returns the GitTagsURL field if it's non-nil, zero value otherwise.

GetGitURL returns the GitURL field if it's non-nil, zero value otherwise.

func (r *Repository) GetGitignoreTemplate() string

GetGitignoreTemplate returns the GitignoreTemplate field if it's non-nil, zero value otherwise.

GetHTMLURL returns the HTMLURL field if it's non-nil, zero value otherwise.

func (r *Repository) GetHasDownloads() bool

GetHasDownloads returns the HasDownloads field if it's non-nil, zero value otherwise.

func (r *Repository) GetHasIssues() bool

GetHasIssues returns the HasIssues field if it's non-nil, zero value otherwise.

func (r *Repository) GetHasPages() bool

GetHasPages returns the HasPages field if it's non-nil, zero value otherwise.

func (r *Repository) GetHasProjects() bool

GetHasProjects returns the HasProjects field if it's non-nil, zero value otherwise.

func (r *Repository) GetHasWiki() bool

GetHasWiki returns the HasWiki field if it's non-nil, zero value otherwise.

GetHomepage returns the Homepage field if it's non-nil, zero value otherwise.

GetHooksURL returns the HooksURL field if it's non-nil, zero value otherwise.

GetID returns the ID field if it's non-nil, zero value otherwise.

func (r *Repository) GetIssueCommentURL() string

GetIssueCommentURL returns the IssueCommentURL field if it's non-nil, zero value otherwise.

func (r *Repository) GetIssueEventsURL() string

GetIssueEventsURL returns the IssueEventsURL field if it's non-nil, zero value otherwise.

GetIssuesURL returns the IssuesURL field if it's non-nil, zero value otherwise.

GetKeysURL returns the KeysURL field if it's non-nil, zero value otherwise.

GetLabelsURL returns the LabelsURL field if it's non-nil, zero value otherwise.

GetLanguage returns the Language field if it's non-nil, zero value otherwise.

func (r *Repository) GetLanguagesURL() string

GetLanguagesURL returns the LanguagesURL field if it's non-nil, zero value otherwise.

func (r *Repository) GetLicense() *License

GetLicense returns the License field.

func (r *Repository) GetLicenseTemplate() string

GetLicenseTemplate returns the LicenseTemplate field if it's non-nil, zero value otherwise.

func (r *Repository) GetMasterBranch() string

GetMasterBranch returns the MasterBranch field if it's non-nil, zero value otherwise.

GetMergesURL returns the MergesURL field if it's non-nil, zero value otherwise.

func (r *Repository) GetMilestonesURL() string

GetMilestonesURL returns the MilestonesURL field if it's non-nil, zero value otherwise.

GetMirrorURL returns the MirrorURL field if it's non-nil, zero value otherwise.

GetName returns the Name field if it's non-nil, zero value otherwise.

func (r *Repository) GetNetworkCount() int

GetNetworkCount returns the NetworkCount field if it's non-nil, zero value otherwise.

GetNodeID returns the NodeID field if it's non-nil, zero value otherwise.

func (r *Repository) GetNotificationsURL() string

GetNotificationsURL returns the NotificationsURL field if it's non-nil, zero value otherwise.

func (r *Repository) GetOpenIssuesCount() int

GetOpenIssuesCount returns the OpenIssuesCount field if it's non-nil, zero value otherwise.

func (r *Repository) GetOrganization() *Organization

GetOrganization returns the Organization field.

func (r *Repository) GetOwner() *User

GetOwner returns the Owner field.

func (r *Repository) GetParent() *Repository

GetParent returns the Parent field.

GetPermissions returns the Permissions field if it's non-nil, zero value otherwise.

func (r *Repository) GetPrivate() bool

GetPrivate returns the Private field if it's non-nil, zero value otherwise.

GetPullsURL returns the PullsURL field if it's non-nil, zero value otherwise.

func (r *Repository) GetPushedAt() Timestamp

GetPushedAt returns the PushedAt field if it's non-nil, zero value otherwise.

GetReleasesURL returns the ReleasesURL field if it's non-nil, zero value otherwise.

GetSSHURL returns the SSHURL field if it's non-nil, zero value otherwise.

GetSVNURL returns the SVNURL field if it's non-nil, zero value otherwise.

func (r *Repository) GetSize() int

GetSize returns the Size field if it's non-nil, zero value otherwise.

func (r *Repository) GetSource() *Repository

GetSource returns the Source field.

func (r *Repository) GetStargazersCount() int

GetStargazersCount returns the StargazersCount field if it's non-nil, zero value otherwise.

func (r *Repository) GetStargazersURL() string

GetStargazersURL returns the StargazersURL field if it's non-nil, zero value otherwise.

GetStatusesURL returns the StatusesURL field if it's non-nil, zero value otherwise.

func (r *Repository) GetSubscribersCount() int

GetSubscribersCount returns the SubscribersCount field if it's non-nil, zero value otherwise.

func (r *Repository) GetSubscribersURL() string

GetSubscribersURL returns the SubscribersURL field if it's non-nil, zero value otherwise.

func (r *Repository) GetSubscriptionURL() string

GetSubscriptionURL returns the SubscriptionURL field if it's non-nil, zero value otherwise.

GetTagsURL returns the TagsURL field if it's non-nil, zero value otherwise.

GetTeamID returns the TeamID field if it's non-nil, zero value otherwise.

GetTeamsURL returns the TeamsURL field if it's non-nil, zero value otherwise.

GetTreesURL returns the TreesURL field if it's non-nil, zero value otherwise.

GetURL returns the URL field if it's non-nil, zero value otherwise.

func (r *Repository) GetUpdatedAt() Timestamp

GetUpdatedAt returns the UpdatedAt field if it's non-nil, zero value otherwise.

func (r *Repository) GetWatchersCount() int

GetWatchersCount returns the WatchersCount field if it's non-nil, zero value otherwise.

type RepositoryAddCollaboratorOptions struct {
	
	
	
	
	
	
	
	Permission string `json:"permission,omitempty"`
}

RepositoryAddCollaboratorOptions specifies the optional parameters to the RepositoriesService.AddCollaborator method.

type RepositoryComment struct {

	
	Body *string `json:"body"`
	
}

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

func (*RepositoryComment) GetBody

GetBody returns the Body field if it's non-nil, zero value otherwise.

GetCommitID returns the CommitID field if it's non-nil, zero value otherwise.

GetCreatedAt returns the CreatedAt field if it's non-nil, zero value otherwise.

GetHTMLURL returns the HTMLURL field if it's non-nil, zero value otherwise.

GetID returns the ID field if it's non-nil, zero value otherwise.

GetPath returns the Path field if it's non-nil, zero value otherwise.

func (r *RepositoryComment) GetPosition() int

GetPosition returns the Position field if it's non-nil, zero value otherwise.

func (r *RepositoryComment) GetReactions() *Reactions

GetReactions returns the Reactions field.

GetURL returns the URL field if it's non-nil, zero value otherwise.

GetUpdatedAt returns the UpdatedAt field if it's non-nil, zero value otherwise.

func (r *RepositoryComment) GetUser() *User

GetUser returns the User field.

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"`
	HTMLURL     *string  `json:"html_url,omitempty"`
	URL         *string  `json:"url,omitempty"`

	
	Stats *CommitStats `json:"stats,omitempty"`
	
	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) GetAuthor() *User

GetAuthor returns the Author field.

GetCommentsURL returns the CommentsURL field if it's non-nil, zero value otherwise.

func (r *RepositoryCommit) GetCommit() *Commit

GetCommit returns the Commit field.

func (r *RepositoryCommit) GetCommitter() *User

GetCommitter returns the Committer field.

GetHTMLURL returns the HTMLURL field if it's non-nil, zero value otherwise.

GetSHA returns the SHA field if it's non-nil, zero value otherwise.

func (r *RepositoryCommit) GetStats() *CommitStats

GetStats returns the Stats field.

GetURL returns the URL field if it's non-nil, zero value otherwise.

type RepositoryContent

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

RepositoryContent represents a file or directory in a github repository.

func (*RepositoryContent) GetContent

GetContent returns the content of r, decoding it if necessary.

func (*RepositoryContent) GetDownloadURL

GetDownloadURL returns the DownloadURL field if it's non-nil, zero value otherwise.

func (*RepositoryContent) GetEncoding

GetEncoding returns the Encoding field if it's non-nil, zero value otherwise.

func (*RepositoryContent) GetGitURL

GetGitURL returns the GitURL field if it's non-nil, zero value otherwise.

func (*RepositoryContent) GetHTMLURL

GetHTMLURL returns the HTMLURL field if it's non-nil, zero value otherwise.

func (*RepositoryContent) GetName

GetName returns the Name field if it's non-nil, zero value otherwise.

func (*RepositoryContent) GetPath

GetPath returns the Path field if it's non-nil, zero value otherwise.

func (*RepositoryContent) GetSHA

GetSHA returns the SHA field if it's non-nil, zero value otherwise.

func (*RepositoryContent) GetSize

func (r *RepositoryContent) GetSize() int

GetSize returns the Size field if it's non-nil, zero value otherwise.

func (*RepositoryContent) GetType

GetType returns the Type field if it's non-nil, zero value otherwise.

func (*RepositoryContent) GetURL

GetURL returns the URL field if it's non-nil, zero value otherwise.

func (RepositoryContent) String

String converts RepositoryContent to a string. It's primarily for testing.

type RepositoryContentFileOptions

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

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

func (*RepositoryContentFileOptions) GetAuthor

GetAuthor returns the Author field.

func (*RepositoryContentFileOptions) GetBranch

GetBranch returns the Branch field if it's non-nil, zero value otherwise.

func (*RepositoryContentFileOptions) GetCommitter

func (r *RepositoryContentFileOptions) GetCommitter() *CommitAuthor

GetCommitter returns the Committer field.

func (*RepositoryContentFileOptions) GetMessage

GetMessage returns the Message field if it's non-nil, zero value otherwise.

func (*RepositoryContentFileOptions) GetSHA

GetSHA returns the SHA field if it's non-nil, zero value otherwise.

type RepositoryContentGetOptions

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

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

type RepositoryContentResponse

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

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

func (*RepositoryContentResponse) GetContent

GetContent returns the Content field.

type RepositoryCreateForkOptions struct {
	
	Organization string `url:"organization,omitempty"`
}

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

type RepositoryEvent struct {
	
	
	Action *string     `json:"action,omitempty"`
	Repo   *Repository `json:"repository,omitempty"`

	
	Org          *Organization `json:"organization,omitempty"`
	Sender       *User         `json:"sender,omitempty"`
	Installation *Installation `json:"installation,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 API docs: https://developer.github.com/v3/activity/events/types/#repositoryevent

GetAction returns the Action field if it's non-nil, zero value otherwise.

func (r *RepositoryEvent) GetInstallation() *Installation

GetInstallation returns the Installation field.

func (r *RepositoryEvent) GetOrg() *Organization

GetOrg returns the Org field.

func (r *RepositoryEvent) GetRepo() *Repository

GetRepo returns the Repo field.

func (r *RepositoryEvent) GetSender() *User

GetSender returns the Sender field.

type RepositoryInvitation struct {
	ID      *int64      `json:"id,omitempty"`
	Repo    *Repository `json:"repository,omitempty"`
	Invitee *User       `json:"invitee,omitempty"`
	Inviter *User       `json:"inviter,omitempty"`

	
	
	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.

func (r *RepositoryInvitation) GetCreatedAt() Timestamp

GetCreatedAt returns the CreatedAt field if it's non-nil, zero value otherwise.

GetHTMLURL returns the HTMLURL field if it's non-nil, zero value otherwise.

GetID returns the ID field if it's non-nil, zero value otherwise.

func (r *RepositoryInvitation) GetInvitee() *User

GetInvitee returns the Invitee field.

func (r *RepositoryInvitation) GetInviter() *User

GetInviter returns the Inviter field.

GetPermissions returns the Permissions field if it's non-nil, zero value otherwise.

func (r *RepositoryInvitation) GetRepo() *Repository

GetRepo returns the Repo field.

GetURL returns the URL field if it's non-nil, zero value otherwise.

type RepositoryLicense struct {
	Name *string `json:"name,omitempty"`
	Path *string `json:"path,omitempty"`

	SHA         *string  `json:"sha,omitempty"`
	Size        *int     `json:"size,omitempty"`
	URL         *string  `json:"url,omitempty"`
	HTMLURL     *string  `json:"html_url,omitempty"`
	GitURL      *string  `json:"git_url,omitempty"`
	DownloadURL *string  `json:"download_url,omitempty"`
	Type        *string  `json:"type,omitempty"`
	Content     *string  `json:"content,omitempty"`
	Encoding    *string  `json:"encoding,omitempty"`
	License     *License `json:"license,omitempty"`
}

RepositoryLicense represents the license for a repository.

func (*RepositoryLicense) GetContent

GetContent returns the Content field if it's non-nil, zero value otherwise.

GetDownloadURL returns the DownloadURL field if it's non-nil, zero value otherwise.

GetEncoding returns the Encoding field if it's non-nil, zero value otherwise.

GetGitURL returns the GitURL field if it's non-nil, zero value otherwise.

GetHTMLURL returns the HTMLURL field if it's non-nil, zero value otherwise.

func (r *RepositoryLicense) GetLicense() *License

GetLicense returns the License field.

GetName returns the Name field if it's non-nil, zero value otherwise.

GetPath returns the Path field if it's non-nil, zero value otherwise.

GetSHA returns the SHA field if it's non-nil, zero value otherwise.

func (r *RepositoryLicense) GetSize() int

GetSize returns the Size field if it's non-nil, zero value otherwise.

GetType returns the Type field if it's non-nil, zero value otherwise.

GetURL returns the URL field if it's non-nil, zero value otherwise.

type RepositoryListAllOptions struct {
	
	Since int64 `url:"since,omitempty"`
}

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

type RepositoryListByOrgOptions struct {
	
	
	Type string `url:"type,omitempty"`

	ListOptions
}

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

type RepositoryListForksOptions struct {
	
	
	Sort string `url:"sort,omitempty"`

	ListOptions
}

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

type RepositoryListOptions struct {
	
	
	Visibility string `url:"visibility,omitempty"`

	
	
	
	
	
	
	
	
	
	Affiliation string `url:"affiliation,omitempty"`

	
	
	
	
	Type string `url:"type,omitempty"`

	
	
	Sort string `url:"sort,omitempty"`

	
	
	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.

GetBase returns the Base field if it's non-nil, zero value otherwise.

GetCommitMessage returns the CommitMessage field if it's non-nil, zero value otherwise.

GetHead returns the Head field if it's non-nil, zero value otherwise.

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.

type RepositoryPermissionLevel struct {
	
	Permission *string `json:"permission,omitempty"`

	User *User `json:"user,omitempty"`
}

RepositoryPermissionLevel represents the permission level an organization member has for a given repository.

GetPermission returns the Permission field if it's non-nil, zero value otherwise.

func (r *RepositoryPermissionLevel) GetUser() *User

GetUser returns the User field.

type RepositoryRelease struct {
	ID              *int64         `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          *User          `json:"author,omitempty"`
	NodeID          *string        `json:"node_id,omitempty"`
}

RepositoryRelease represents a GitHub release in a repository.

GetAssetsURL returns the AssetsURL field if it's non-nil, zero value otherwise.

func (r *RepositoryRelease) GetAuthor() *User

GetAuthor returns the Author field.

func (*RepositoryRelease) GetBody

GetBody returns the Body field if it's non-nil, zero value otherwise.

func (r *RepositoryRelease) GetCreatedAt() Timestamp

GetCreatedAt returns the CreatedAt field if it's non-nil, zero value otherwise.

GetDraft returns the Draft field if it's non-nil, zero value otherwise.

GetHTMLURL returns the HTMLURL field if it's non-nil, zero value otherwise.

GetID returns the ID field if it's non-nil, zero value otherwise.

GetName returns the Name field if it's non-nil, zero value otherwise.

GetNodeID returns the NodeID field if it's non-nil, zero value otherwise.

func (r *RepositoryRelease) GetPrerelease() bool

GetPrerelease returns the Prerelease field if it's non-nil, zero value otherwise.

func (r *RepositoryRelease) GetPublishedAt() Timestamp

GetPublishedAt returns the PublishedAt field if it's non-nil, zero value otherwise.

GetTagName returns the TagName field if it's non-nil, zero value otherwise.

GetTarballURL returns the TarballURL field if it's non-nil, zero value otherwise.

GetTargetCommitish returns the TargetCommitish field if it's non-nil, zero value otherwise.

GetURL returns the URL field if it's non-nil, zero value otherwise.

GetUploadURL returns the UploadURL field if it's non-nil, zero value otherwise.

GetZipballURL returns the ZipballURL field if it's non-nil, zero value otherwise.

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.

func (r *RepositoryTag) GetCommit() *Commit

GetCommit returns the Commit field.

GetName returns the Name field if it's non-nil, zero value otherwise.

GetTarballURL returns the TarballURL field if it's non-nil, zero value otherwise.

GetZipballURL returns the ZipballURL field if it's non-nil, zero value otherwise.

type RequestCheckSuiteOptions struct {
	HeadSHA string `json:"head_sha"` 
}

RequestCheckSuiteOptions sets up the parameters for a request check suite endpoint.

type RequiredStatusChecks struct {
	
	Strict bool `json:"strict"`
	
	
	Contexts []string `json:"contexts"`
}

RequiredStatusChecks represents the protection status of a individual branch.

type RequiredStatusChecksRequest struct {
	Strict   *bool    `json:"strict,omitempty"`
	Contexts []string `json:"contexts,omitempty"`
}

RequiredStatusChecksRequest represents a request to edit a protected branch's status checks.

GetStrict returns the Strict field if it's non-nil, zero value otherwise.

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 Reviewers struct {
	Users []*User `json:"users,omitempty"`
	Teams []*Team `json:"teams,omitempty"`
}

Reviewers represents reviewers of a pull request.

type ReviewersRequest struct {
	Reviewers     []string `json:"reviewers,omitempty"`
	TeamReviewers []string `json:"team_reviewers,omitempty"`
}

ReviewersRequest specifies users and teams for a pull request review request.

Scope models a GitHub authorization scope.

GitHub API docs: https://developer.github.com/v3/oauth/#scopes

const (
	ScopeNone           Scope = "(no scope)" 
	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 {
	
	
	
	
	
	
	
	
	Sort string `url:"sort,omitempty"`

	
	
	Order string `url:"order,omitempty"`

	
	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.

Each method takes a query string defining the search keywords and any search qualifiers. For example, when searching issues, the query "gopher is:issue language:go" will search for issues containing the word "gopher" in Go repositories. The method call

opts :=  &github.SearchOptions{Sort: "created", Order: "asc"}
cl.Search.Issues(ctx, "gopher is:issue language:go", opts)

will search for such issues, sorting by creation date in ascending order (i.e., oldest first).

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

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.

GetName returns the Name field if it's non-nil, zero value otherwise.

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.

GetPayload returns the Payload field if it's non-nil, zero value otherwise.

GetReason returns the Reason field if it's non-nil, zero value otherwise.

GetSignature returns the Signature field if it's non-nil, zero value otherwise.

GetVerified returns the Verified field if it's non-nil, zero value otherwise.

type Source struct {
	ID    *int64  `json:"id,omitempty"`
	URL   *string `json:"url,omitempty"`
	Actor *User   `json:"actor,omitempty"`
}

Source represents a reference's source.

func (s *Source) GetActor() *User

GetActor returns the Actor field.

GetID returns the ID field if it's non-nil, zero value otherwise.

GetURL returns the URL field if it's non-nil, zero value otherwise.

type SourceImportAuthor struct {
	ID         *int64  `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

GetEmail returns the Email field if it's non-nil, zero value otherwise.

GetID returns the ID field if it's non-nil, zero value otherwise.

GetImportURL returns the ImportURL field if it's non-nil, zero value otherwise.

GetName returns the Name field if it's non-nil, zero value otherwise.

GetRemoteID returns the RemoteID field if it's non-nil, zero value otherwise.

GetRemoteName returns the RemoteName field if it's non-nil, zero value otherwise.

GetURL returns the URL field if it's non-nil, zero value otherwise.

type Stargazer struct {
	StarredAt *Timestamp `json:"starred_at,omitempty"`
	User      *User      `json:"user,omitempty"`
}

Stargazer represents a user that has starred a repository.

func (s *Stargazer) GetStarredAt() Timestamp

GetStarredAt returns the StarredAt field if it's non-nil, zero value otherwise.

func (s *Stargazer) GetUser() *User

GetUser returns the User field.

type StarredRepository struct {
	StarredAt  *Timestamp  `json:"starred_at,omitempty"`
	Repository *Repository `json:"repo,omitempty"`
}

StarredRepository is returned by ListStarred.

func (s *StarredRepository) GetRepository() *Repository

GetRepository returns the Repository field.

func (s *StarredRepository) GetStarredAt() Timestamp

GetStarredAt returns the StarredAt field if it's non-nil, zero value otherwise.

type StatusEvent struct {
	SHA *string `json:"sha,omitempty"`
	
	State       *string   `json:"state,omitempty"`
	Description *string   `json:"description,omitempty"`
	TargetURL   *string   `json:"target_url,omitempty"`
	Branches    []*Branch `json:"branches,omitempty"`

	
	ID           *int64            `json:"id,omitempty"`
	Name         *string           `json:"name,omitempty"`
	Context      *string           `json:"context,omitempty"`
	Commit       *RepositoryCommit `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"`
	Installation *Installation     `json:"installation,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 API docs: https://developer.github.com/v3/activity/events/types/#statusevent

func (s *StatusEvent) GetCommit() *RepositoryCommit

GetCommit returns the Commit field.

GetContext returns the Context field if it's non-nil, zero value otherwise.

func (s *StatusEvent) GetCreatedAt() Timestamp

GetCreatedAt returns the CreatedAt field if it's non-nil, zero value otherwise.

GetDescription returns the Description field if it's non-nil, zero value otherwise.

GetID returns the ID field if it's non-nil, zero value otherwise.

func (s *StatusEvent) GetInstallation() *Installation

GetInstallation returns the Installation field.

GetName returns the Name field if it's non-nil, zero value otherwise.

func (s *StatusEvent) GetRepo() *Repository

GetRepo returns the Repo field.

GetSHA returns the SHA field if it's non-nil, zero value otherwise.

func (s *StatusEvent) GetSender() *User

GetSender returns the Sender field.

GetState returns the State field if it's non-nil, zero value otherwise.

GetTargetURL returns the TargetURL field if it's non-nil, zero value otherwise.

func (s *StatusEvent) GetUpdatedAt() Timestamp

GetUpdatedAt returns the UpdatedAt field if it's non-nil, zero value otherwise.

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"`

	
	RepositoryURL *string `json:"repository_url,omitempty"`

	
	ThreadURL *string `json:"thread_url,omitempty"`
}

Subscription identifies a repository or thread subscription.

func (s *Subscription) GetCreatedAt() Timestamp

GetCreatedAt returns the CreatedAt field if it's non-nil, zero value otherwise.

func (s *Subscription) GetIgnored() bool

GetIgnored returns the Ignored field if it's non-nil, zero value otherwise.

GetReason returns the Reason field if it's non-nil, zero value otherwise.

func (s *Subscription) GetRepositoryURL() string

GetRepositoryURL returns the RepositoryURL field if it's non-nil, zero value otherwise.

func (s *Subscription) GetSubscribed() bool

GetSubscribed returns the Subscribed field if it's non-nil, zero value otherwise.

GetThreadURL returns the ThreadURL field if it's non-nil, zero value otherwise.

GetURL returns the URL field if it's non-nil, zero value otherwise.

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"`
	NodeID       *string                `json:"node_id,omitempty"`
}

Tag represents a tag object.

GetMessage returns the Message field if it's non-nil, zero value otherwise.

GetNodeID returns the NodeID field if it's non-nil, zero value otherwise.

func (t *Tag) GetObject() *GitObject

GetObject returns the Object field.

GetSHA returns the SHA field if it's non-nil, zero value otherwise.

GetTag returns the Tag field if it's non-nil, zero value otherwise.

func (t *Tag) GetTagger() *CommitAuthor

GetTagger returns the Tagger field.

GetURL returns the URL field if it's non-nil, zero value otherwise.

func (t *Tag) GetVerification() *SignatureVerification

GetVerification returns the Verification field.

type Team struct {
	ID          *int64  `json:"id,omitempty"`
	Name        *string `json:"name,omitempty"`
	Description *string `json:"description,omitempty"`
	URL         *string `json:"url,omitempty"`
	Slug        *string `json:"slug,omitempty"`

	
	Permission *string `json:"permission,omitempty"`

	
	
	
	
	
	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"`
	Parent          *Team         `json:"parent,omitempty"`

	
	
	LDAPDN *string `json:"ldap_dn,omitempty"`
}

Team represents a team within a GitHub organization. Teams are used to manage access to an organization's repositories.

func (t *Team) GetDescription() string

GetDescription returns the Description field if it's non-nil, zero value otherwise.

GetID returns the ID field if it's non-nil, zero value otherwise.

GetLDAPDN returns the LDAPDN field if it's non-nil, zero value otherwise.

func (t *Team) GetMembersCount() int

GetMembersCount returns the MembersCount field if it's non-nil, zero value otherwise.

func (t *Team) GetMembersURL() string

GetMembersURL returns the MembersURL field if it's non-nil, zero value otherwise.

GetName returns the Name field if it's non-nil, zero value otherwise.

func (t *Team) GetOrganization() *Organization

GetOrganization returns the Organization field.

func (t *Team) GetParent() *Team

GetParent returns the Parent field.

func (t *Team) GetPermission() string

GetPermission returns the Permission field if it's non-nil, zero value otherwise.

GetPrivacy returns the Privacy field if it's non-nil, zero value otherwise.

func (t *Team) GetReposCount() int

GetReposCount returns the ReposCount field if it's non-nil, zero value otherwise.

func (t *Team) GetRepositoriesURL() string

GetRepositoriesURL returns the RepositoriesURL field if it's non-nil, zero value otherwise.

GetSlug returns the Slug field if it's non-nil, zero value otherwise.

GetURL returns the URL field if it's non-nil, zero value otherwise.

type TeamAddEvent struct {
	Team *Team       `json:"team,omitempty"`
	Repo *Repository `json:"repository,omitempty"`

	
	Org          *Organization `json:"organization,omitempty"`
	Sender       *User         `json:"sender,omitempty"`
	Installation *Installation `json:"installation,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 API docs: https://developer.github.com/v3/activity/events/types/#teamaddevent

func (t *TeamAddEvent) GetInstallation() *Installation

GetInstallation returns the Installation field.

func (t *TeamAddEvent) GetOrg() *Organization

GetOrg returns the Org field.

func (t *TeamAddEvent) GetRepo() *Repository

GetRepo returns the Repo field.

func (t *TeamAddEvent) GetSender() *User

GetSender returns the Sender field.

func (t *TeamAddEvent) GetTeam() *Team

GetTeam returns the Team field.

type TeamAddTeamMembershipOptions struct {
	
	
	
	
	
	
	
	
	Role string `json:"role,omitempty"`
}

TeamAddTeamMembershipOptions specifies the optional parameters to the TeamsService.AddTeamMembership method.

type TeamAddTeamRepoOptions struct {
	
	
	
	
	
	
	
	Permission string `json:"permission,omitempty"`
}

TeamAddTeamRepoOptions specifies the optional parameters to the TeamsService.AddTeamRepo method.

type TeamChange struct {
	Description *struct {
		From *string `json:"from,omitempty"`
	} `json:"description,omitempty"`
	Name *struct {
		From *string `json:"from,omitempty"`
	} `json:"name,omitempty"`
	Privacy *struct {
		From *string `json:"from,omitempty"`
	} `json:"privacy,omitempty"`
	Repository *struct {
		Permissions *struct {
			From *struct {
				Admin *bool `json:"admin,omitempty"`
				Pull  *bool `json:"pull,omitempty"`
				Push  *bool `json:"push,omitempty"`
			} `json:"from,omitempty"`
		} `json:"permissions,omitempty"`
	} `json:"repository,omitempty"`
}

TeamChange represents the changes when a team has been edited.

type TeamDiscussion struct {
	Author        *User      `json:"author,omitempty"`
	Body          *string    `json:"body,omitempty"`
	BodyHTML      *string    `json:"body_html,omitempty"`
	BodyVersion   *string    `json:"body_version,omitempty"`
	CreatedAt     *Timestamp `json:"created_at,omitempty"`
	LastEditedAt  *Timestamp `json:"last_edited_at,omitempty"`
	HTMLURL       *string    `json:"html_url,omitempty"`
	NodeID        *string    `json:"node_id,omitempty"`
	Number        *int       `json:"number,omitempty"`
	Pinned        *bool      `json:"pinned,omitempty"`
	Private       *bool      `json:"private,omitempty"`
	TeamURL       *string    `json:"team_url,omitempty"`
	Title         *string    `json:"title,omitempty"`
	UpdatedAt     *Timestamp `json:"updated_at,omitempty"`
	URL           *string    `json:"url,omitempty"`
}

TeamDiscussion represents a GitHub dicussion in a team.

func (t *TeamDiscussion) GetAuthor() *User

GetAuthor returns the Author field.

func (*TeamDiscussion) GetBody

GetBody returns the Body field if it's non-nil, zero value otherwise.

func (*TeamDiscussion) GetBodyHTML

GetBodyHTML returns the BodyHTML field if it's non-nil, zero value otherwise.

func (*TeamDiscussion) GetBodyVersion

GetBodyVersion returns the BodyVersion field if it's non-nil, zero value otherwise.

func (t *TeamDiscussion) GetCommentsCount() int

GetCommentsCount returns the CommentsCount field if it's non-nil, zero value otherwise.

GetCommentsURL returns the CommentsURL field if it's non-nil, zero value otherwise.

func (t *TeamDiscussion) GetCreatedAt() Timestamp

GetCreatedAt returns the CreatedAt field if it's non-nil, zero value otherwise.

GetHTMLURL returns the HTMLURL field if it's non-nil, zero value otherwise.

func (t *TeamDiscussion) GetLastEditedAt() Timestamp

GetLastEditedAt returns the LastEditedAt field if it's non-nil, zero value otherwise.

GetNodeID returns the NodeID field if it's non-nil, zero value otherwise.

func (t *TeamDiscussion) GetNumber() int

GetNumber returns the Number field if it's non-nil, zero value otherwise.

func (t *TeamDiscussion) GetPinned() bool

GetPinned returns the Pinned field if it's non-nil, zero value otherwise.

func (t *TeamDiscussion) GetPrivate() bool

GetPrivate returns the Private field if it's non-nil, zero value otherwise.

GetTeamURL returns the TeamURL field if it's non-nil, zero value otherwise.

GetTitle returns the Title field if it's non-nil, zero value otherwise.

GetURL returns the URL field if it's non-nil, zero value otherwise.

func (t *TeamDiscussion) GetUpdatedAt() Timestamp

GetUpdatedAt returns the UpdatedAt field if it's non-nil, zero value otherwise.

type TeamEvent struct {
	Action  *string     `json:"action,omitempty"`
	Team    *Team       `json:"team,omitempty"`
	Changes *TeamChange `json:"changes,omitempty"`
	Repo    *Repository `json:"repository,omitempty"`

	
	Org          *Organization `json:"organization,omitempty"`
	Sender       *User         `json:"sender,omitempty"`
	Installation *Installation `json:"installation,omitempty"`
}

TeamEvent is triggered when an organization's team is created, modified or deleted. The Webhook event name is "team".

Events of this type are not visible in timelines. These events are only used to trigger hooks.

GitHub API docs: https://developer.github.com/v3/activity/events/types/#teamevent

GetAction returns the Action field if it's non-nil, zero value otherwise.

func (t *TeamEvent) GetChanges() *TeamChange

GetChanges returns the Changes field.

func (t *TeamEvent) GetInstallation() *Installation

GetInstallation returns the Installation field.

func (t *TeamEvent) GetOrg() *Organization

GetOrg returns the Org field.

func (t *TeamEvent) GetRepo() *Repository

GetRepo returns the Repo field.

func (t *TeamEvent) GetSender() *User

GetSender returns the Sender field.

func (t *TeamEvent) GetTeam() *Team

GetTeam returns the Team field.

type TeamLDAPMapping struct {
	ID          *int64  `json:"id,omitempty"`
	LDAPDN      *string `json:"ldap_dn,omitempty"`
	URL         *string `json:"url,omitempty"`
	Name        *string `json:"name,omitempty"`
	Slug        *string `json:"slug,omitempty"`
	Description *string `json:"description,omitempty"`
	Privacy     *string `json:"privacy,omitempty"`
	Permission  *string `json:"permission,omitempty"`

	MembersURL      *string `json:"members_url,omitempty"`
	RepositoriesURL *string `json:"repositories_url,omitempty"`
}

TeamLDAPMapping represents the mapping between a GitHub team and an LDAP group.

GetDescription returns the Description field if it's non-nil, zero value otherwise.

GetID returns the ID field if it's non-nil, zero value otherwise.

GetLDAPDN returns the LDAPDN field if it's non-nil, zero value otherwise.

GetMembersURL returns the MembersURL field if it's non-nil, zero value otherwise.

GetName returns the Name field if it's non-nil, zero value otherwise.

GetPermission returns the Permission field if it's non-nil, zero value otherwise.

GetPrivacy returns the Privacy field if it's non-nil, zero value otherwise.

func (t *TeamLDAPMapping) GetRepositoriesURL() string

GetRepositoriesURL returns the RepositoriesURL field if it's non-nil, zero value otherwise.

GetSlug returns the Slug field if it's non-nil, zero value otherwise.

GetURL returns the URL field if it's non-nil, zero value otherwise.

type TeamListTeamMembersOptions struct {
	
	
	Role string `url:"role,omitempty"`

	ListOptions
}

TeamListTeamMembersOptions specifies the optional parameters to the TeamsService.ListTeamMembers method.

type TeamsService service

TeamsService provides access to the team-related functions in the GitHub API.

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

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/teams/members/#add-or-update-team-membership

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: https://developer.github.com/v3/teams/#add-team-repo

ListTeams lists all of the teams for an organization.

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

package main

import (
	"context"
	"fmt"

	"github.com/google/go-github/github"
)

func main() {
	// This example shows how to get a team ID corresponding to a given team name.

	// Note that authentication is needed here as you are performing a lookup on
	// an organization's administrative configuration, so you will need to modify
	// the example to provide an oauth client to github.NewClient() instead of nil.
	// See the following documentation for more information on how to authenticate
	// with the client:
	// https://godoc.org/github.com/google/go-github/github#hdr-Authentication
	client := github.NewClient(nil)

	teamName := "Developers team"
	ctx := context.Background()
	opts := &github.ListOptions{}

	for {
		teams, resp, err := client.Teams.ListTeams(ctx, "myOrganization", opts)
		if err != nil {
			fmt.Println(err)
			return
		}
		for _, t := range teams {
			if t.GetName() == teamName {
				fmt.Printf("Team %q has ID %d\n", teamName, t.GetID())
				return
			}
		}
		if resp.NextPage == 0 {
			break
		}
		opts.Page = resp.NextPage
	}

	fmt.Printf("Team %q was not found\n", teamName)
}
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

GetFragment returns the Fragment field if it's non-nil, zero value otherwise.

GetObjectType returns the ObjectType field if it's non-nil, zero value otherwise.

GetObjectURL returns the ObjectURL field if it's non-nil, zero value otherwise.

GetProperty returns the Property field if it's non-nil, zero value otherwise.

type Timeline struct {
	ID        *int64  `json:"id,omitempty"`
	URL       *string `json:"url,omitempty"`
	CommitURL *string `json:"commit_url,omitempty"`

	
	Actor *User `json:"actor,omitempty"`

	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	Event *string `json:"event,omitempty"`

	
	CommitID *string `json:"commit_id,omitempty"`
	
	CreatedAt *time.Time `json:"created_at,omitempty"`
	
	
	Label *Label `json:"label,omitempty"`
	
	
	Assignee *User `json:"assignee,omitempty"`
	
	
	Milestone *Milestone `json:"milestone,omitempty"`
	
	
	Source *Source `json:"source,omitempty"`
	
	
	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/

func (t *Timeline) GetActor() *User

GetActor returns the Actor field.

func (t *Timeline) GetAssignee() *User

GetAssignee returns the Assignee field.

GetCommitID returns the CommitID field if it's non-nil, zero value otherwise.

GetCommitURL returns the CommitURL field if it's non-nil, zero value otherwise.

GetCreatedAt returns the CreatedAt field if it's non-nil, zero value otherwise.

GetEvent returns the Event field if it's non-nil, zero value otherwise.

GetID returns the ID field if it's non-nil, zero value otherwise.

func (t *Timeline) GetLabel() *Label

GetLabel returns the Label field.

func (t *Timeline) GetMilestone() *Milestone

GetMilestone returns the Milestone field.

func (t *Timeline) GetRename() *Rename

GetRename returns the Rename field.

func (t *Timeline) GetSource() *Source

GetSource returns the Source field.

GetURL returns the URL field if it's non-nil, zero value otherwise.

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.

Equal reports whether t and u are equal based on time.Equal

UnmarshalJSON implements the json.Unmarshaler interface. Time is expected in RFC3339 or Unix format.

type TrafficBreakdownOptions struct {
	Per string `url:"per,omitempty"`
}

TrafficBreakdownOptions specifies the parameters to methods that support breakdown per day or week. Can be one of: day, week. Default: day.

type TrafficClones struct {
	Clones  []*TrafficData `json:"clones,omitempty"`
	Count   *int           `json:"count,omitempty"`
	Uniques *int           `json:"uniques,omitempty"`
}

TrafficClones represent information about the number of clones in the last 14 days.

func (t *TrafficClones) GetCount() int

GetCount returns the Count field if it's non-nil, zero value otherwise.

func (t *TrafficClones) GetUniques() int

GetUniques returns the Uniques field if it's non-nil, zero value otherwise.

type TrafficData struct {
	Timestamp *Timestamp `json:"timestamp,omitempty"`
	Count     *int       `json:"count,omitempty"`
	Uniques   *int       `json:"uniques,omitempty"`
}

TrafficData represent information about a specific timestamp in views or clones list.

func (t *TrafficData) GetCount() int

GetCount returns the Count field if it's non-nil, zero value otherwise.

func (t *TrafficData) GetTimestamp() Timestamp

GetTimestamp returns the Timestamp field if it's non-nil, zero value otherwise.

func (t *TrafficData) GetUniques() int

GetUniques returns the Uniques field if it's non-nil, zero value otherwise.

type TrafficPath struct {
	Path    *string `json:"path,omitempty"`
	Title   *string `json:"title,omitempty"`
	Count   *int    `json:"count,omitempty"`
	Uniques *int    `json:"uniques,omitempty"`
}

TrafficPath represent information about the traffic on a path of the repo.

func (t *TrafficPath) GetCount() int

GetCount returns the Count field if it's non-nil, zero value otherwise.

GetPath returns the Path field if it's non-nil, zero value otherwise.

GetTitle returns the Title field if it's non-nil, zero value otherwise.

func (t *TrafficPath) GetUniques() int

GetUniques returns the Uniques field if it's non-nil, zero value otherwise.

type TrafficReferrer struct {
	Referrer *string `json:"referrer,omitempty"`
	Count    *int    `json:"count,omitempty"`
	Uniques  *int    `json:"uniques,omitempty"`
}

TrafficReferrer represent information about traffic from a referrer .

func (t *TrafficReferrer) GetCount() int

GetCount returns the Count field if it's non-nil, zero value otherwise.

GetReferrer returns the Referrer field if it's non-nil, zero value otherwise.

func (t *TrafficReferrer) GetUniques() int

GetUniques returns the Uniques field if it's non-nil, zero value otherwise.

type TrafficViews struct {
	Views   []*TrafficData `json:"views,omitempty"`
	Count   *int           `json:"count,omitempty"`
	Uniques *int           `json:"uniques,omitempty"`
}

TrafficViews represent information about the number of views in the last 14 days.

func (t *TrafficViews) GetCount() int

GetCount returns the Count field if it's non-nil, zero value otherwise.

func (t *TrafficViews) GetUniques() int

GetUniques returns the Uniques field if it's non-nil, zero value otherwise.

type TransferRequest struct {
	NewOwner string  `json:"new_owner"`
	TeamID   []int64 `json:"team_ids,omitempty"`
}

TransferRequest represents a request to transfer a repository.

type Tree struct {
	SHA     *string     `json:"sha,omitempty"`
	Entries []TreeEntry `json:"tree,omitempty"`

	
	
	
	
	Truncated *bool `json:"truncated,omitempty"`
}

Tree represents a GitHub tree.

GetSHA returns the SHA field if it's non-nil, zero value otherwise.

func (t *Tree) GetTruncated() bool

GetTruncated returns the Truncated field if it's non-nil, zero value otherwise.

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"`
	URL     *string `json:"url,omitempty"`
}

TreeEntry represents the contents of a tree structure. TreeEntry can represent either a blob, a commit (in the case of a submodule), or another tree.

func (*TreeEntry) GetContent

GetContent returns the Content field if it's non-nil, zero value otherwise.

GetMode returns the Mode field if it's non-nil, zero value otherwise.

GetPath returns the Path field if it's non-nil, zero value otherwise.

GetSHA returns the SHA field if it's non-nil, zero value otherwise.

func (t *TreeEntry) GetSize() int

GetSize returns the Size field if it's non-nil, zero value otherwise.

GetType returns the Type field if it's non-nil, zero value otherwise.

GetURL returns the URL field if it's non-nil, zero value otherwise.

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.

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 https://developer.github.com/v3/#unauthenticated-rate-limited-requests for more information.

Client returns an *http.Client that makes requests which are subject to the rate limit of your OAuth application.

RoundTrip implements the RoundTripper interface.

type UpdateCheckRunOptions struct {
	Name        string          `json:"name"`                   
	HeadBranch  *string         `json:"head_branch,omitempty"`  
	HeadSHA     *string         `json:"head_sha,omitempty"`     
	DetailsURL  *string         `json:"details_url,omitempty"`  
	ExternalID  *string         `json:"external_id,omitempty"`  
	Status      *string         `json:"status,omitempty"`       
	Conclusion  *string         `json:"conclusion,omitempty"`   
	CompletedAt *Timestamp      `json:"completed_at,omitempty"` 
	Output      *CheckRunOutput `json:"output,omitempty"`       
}

UpdateCheckRunOptions sets up parameters needed to update a CheckRun.

func (u *UpdateCheckRunOptions) GetCompletedAt() Timestamp

GetCompletedAt returns the CompletedAt field if it's non-nil, zero value otherwise.

GetConclusion returns the Conclusion field if it's non-nil, zero value otherwise.

GetDetailsURL returns the DetailsURL field if it's non-nil, zero value otherwise.

GetExternalID returns the ExternalID field if it's non-nil, zero value otherwise.

GetHeadBranch returns the HeadBranch field if it's non-nil, zero value otherwise.

GetHeadSHA returns the HeadSHA field if it's non-nil, zero value otherwise.

func (u *UpdateCheckRunOptions) GetOutput() *CheckRunOutput

GetOutput returns the Output field.

GetStatus returns the Status field if it's non-nil, zero value otherwise.

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                *int64     `json:"id,omitempty"`
	NodeID            *string    `json:"node_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"`

	
	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 []TextMatch `json:"text_matches,omitempty"`

	
	
	Permissions *map[string]bool `json:"permissions,omitempty"`
}

User represents a GitHub user.

func (u *User) GetAvatarURL() string

GetAvatarURL returns the AvatarURL field if it's non-nil, zero value otherwise.

GetBio returns the Bio field if it's non-nil, zero value otherwise.

GetBlog returns the Blog field if it's non-nil, zero value otherwise.

func (u *User) GetCollaborators() int

GetCollaborators returns the Collaborators field if it's non-nil, zero value otherwise.

GetCompany returns the Company field if it's non-nil, zero value otherwise.

func (u *User) GetCreatedAt() Timestamp

GetCreatedAt returns the CreatedAt field if it's non-nil, zero value otherwise.

func (u *User) GetDiskUsage() int

GetDiskUsage returns the DiskUsage field if it's non-nil, zero value otherwise.

GetEmail returns the Email field if it's non-nil, zero value otherwise.

func (u *User) GetEventsURL() string

GetEventsURL returns the EventsURL field if it's non-nil, zero value otherwise.

func (u *User) GetFollowers() int

GetFollowers returns the Followers field if it's non-nil, zero value otherwise.

func (u *User) GetFollowersURL() string

GetFollowersURL returns the FollowersURL field if it's non-nil, zero value otherwise.

func (u *User) GetFollowing() int

GetFollowing returns the Following field if it's non-nil, zero value otherwise.

func (u *User) GetFollowingURL() string

GetFollowingURL returns the FollowingURL field if it's non-nil, zero value otherwise.

GetGistsURL returns the GistsURL field if it's non-nil, zero value otherwise.

func (u *User) GetGravatarID() string

GetGravatarID returns the GravatarID field if it's non-nil, zero value otherwise.

GetHTMLURL returns the HTMLURL field if it's non-nil, zero value otherwise.

func (u *User) GetHireable() bool

GetHireable returns the Hireable field if it's non-nil, zero value otherwise.

GetID returns the ID field if it's non-nil, zero value otherwise.

GetLocation returns the Location field if it's non-nil, zero value otherwise.

GetLogin returns the Login field if it's non-nil, zero value otherwise.

GetName returns the Name field if it's non-nil, zero value otherwise.

GetNodeID returns the NodeID field if it's non-nil, zero value otherwise.

func (u *User) GetOrganizationsURL() string

GetOrganizationsURL returns the OrganizationsURL field if it's non-nil, zero value otherwise.

func (u *User) GetOwnedPrivateRepos() int

GetOwnedPrivateRepos returns the OwnedPrivateRepos field if it's non-nil, zero value otherwise.

GetPermissions returns the Permissions field if it's non-nil, zero value otherwise.

func (u *User) GetPlan() *Plan

GetPlan returns the Plan field.

func (u *User) GetPrivateGists() int

GetPrivateGists returns the PrivateGists field if it's non-nil, zero value otherwise.

func (u *User) GetPublicGists() int

GetPublicGists returns the PublicGists field if it's non-nil, zero value otherwise.

func (u *User) GetPublicRepos() int

GetPublicRepos returns the PublicRepos field if it's non-nil, zero value otherwise.

func (u *User) GetReceivedEventsURL() string

GetReceivedEventsURL returns the ReceivedEventsURL field if it's non-nil, zero value otherwise.

GetReposURL returns the ReposURL field if it's non-nil, zero value otherwise.

func (u *User) GetSiteAdmin() bool

GetSiteAdmin returns the SiteAdmin field if it's non-nil, zero value otherwise.

func (u *User) GetStarredURL() string

GetStarredURL returns the StarredURL field if it's non-nil, zero value otherwise.

func (u *User) GetSubscriptionsURL() string

GetSubscriptionsURL returns the SubscriptionsURL field if it's non-nil, zero value otherwise.

func (u *User) GetSuspendedAt() Timestamp

GetSuspendedAt returns the SuspendedAt field if it's non-nil, zero value otherwise.

func (u *User) GetTotalPrivateRepos() int

GetTotalPrivateRepos returns the TotalPrivateRepos field if it's non-nil, zero value otherwise.

GetType returns the Type field if it's non-nil, zero value otherwise.

GetURL returns the URL field if it's non-nil, zero value otherwise.

func (u *User) GetUpdatedAt() Timestamp

GetUpdatedAt returns the UpdatedAt field if it's non-nil, zero value otherwise.

type UserContext struct {
	Message *string `json:"message,omitempty"`
	Octicon *string `json:"octicon,omitempty"`
}

UserContext represents the contextual information about user.

GetMessage returns the Message field if it's non-nil, zero value otherwise.

GetOcticon returns the Octicon field if it's non-nil, zero value otherwise.

type UserEmail struct {
	Email    *string `json:"email,omitempty"`
	Primary  *bool   `json:"primary,omitempty"`
	Verified *bool   `json:"verified,omitempty"`
}

UserEmail represents user's email address

GetEmail returns the Email field if it's non-nil, zero value otherwise.

func (u *UserEmail) GetPrimary() bool

GetPrimary returns the Primary field if it's non-nil, zero value otherwise.

func (u *UserEmail) GetVerified() bool

GetVerified returns the Verified field if it's non-nil, zero value otherwise.

type UserLDAPMapping struct {
	ID         *int64  `json:"id,omitempty"`
	LDAPDN     *string `json:"ldap_dn,omitempty"`
	Login      *string `json:"login,omitempty"`
	AvatarURL  *string `json:"avatar_url,omitempty"`
	GravatarID *string `json:"gravatar_id,omitempty"`
	Type       *string `json:"type,omitempty"`
	SiteAdmin  *bool   `json:"site_admin,omitempty"`

	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"`
}

UserLDAPMapping represents the mapping between a GitHub user and an LDAP user.

GetAvatarURL returns the AvatarURL field if it's non-nil, zero value otherwise.

GetEventsURL returns the EventsURL field if it's non-nil, zero value otherwise.

GetFollowersURL returns the FollowersURL field if it's non-nil, zero value otherwise.

GetFollowingURL returns the FollowingURL field if it's non-nil, zero value otherwise.

GetGistsURL returns the GistsURL field if it's non-nil, zero value otherwise.

GetGravatarID returns the GravatarID field if it's non-nil, zero value otherwise.

GetID returns the ID field if it's non-nil, zero value otherwise.

GetLDAPDN returns the LDAPDN field if it's non-nil, zero value otherwise.

GetLogin returns the Login field if it's non-nil, zero value otherwise.

func (u *UserLDAPMapping) GetOrganizationsURL() string

GetOrganizationsURL returns the OrganizationsURL field if it's non-nil, zero value otherwise.

func (u *UserLDAPMapping) GetReceivedEventsURL() string

GetReceivedEventsURL returns the ReceivedEventsURL field if it's non-nil, zero value otherwise.

GetReposURL returns the ReposURL field if it's non-nil, zero value otherwise.

func (u *UserLDAPMapping) GetSiteAdmin() bool

GetSiteAdmin returns the SiteAdmin field if it's non-nil, zero value otherwise.

GetStarredURL returns the StarredURL field if it's non-nil, zero value otherwise.

func (u *UserLDAPMapping) GetSubscriptionsURL() string

GetSubscriptionsURL returns the SubscriptionsURL field if it's non-nil, zero value otherwise.

GetType returns the Type field if it's non-nil, zero value otherwise.

GetURL returns the URL field if it's non-nil, zero value otherwise.

type UserListOptions struct {
	
	Since int64 `url:"since,omitempty"`

	
	
	
	ListOptions
}

UserListOptions specifies optional parameters to the UsersService.ListAll method.

type UserMigration struct {
	ID   *int64  `json:"id,omitempty"`
	GUID *string `json:"guid,omitempty"`
	
	
	
	
	
	
	State *string `json:"state,omitempty"`
	
	
	LockRepositories *bool `json:"lock_repositories,omitempty"`
	
	
	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"`
}

UserMigration represents a GitHub migration (archival).

GetCreatedAt returns the CreatedAt field if it's non-nil, zero value otherwise.

func (u *UserMigration) GetExcludeAttachments() bool

GetExcludeAttachments returns the ExcludeAttachments field if it's non-nil, zero value otherwise.

GetGUID returns the GUID field if it's non-nil, zero value otherwise.

GetID returns the ID field if it's non-nil, zero value otherwise.

func (u *UserMigration) GetLockRepositories() bool

GetLockRepositories returns the LockRepositories field if it's non-nil, zero value otherwise.

GetState returns the State field if it's non-nil, zero value otherwise.

GetURL returns the URL field if it's non-nil, zero value otherwise.

GetUpdatedAt returns the UpdatedAt field if it's non-nil, zero value otherwise.

type UserMigrationOptions struct {
	
	
	LockRepositories bool

	
	
	ExcludeAttachments bool
}

UserMigrationOptions specifies the optional parameters to Migration methods.

type UserStats struct {
	TotalUsers     *int `json:"total_users,omitempty"`
	AdminUsers     *int `json:"admin_users,omitempty"`
	SuspendedUsers *int `json:"suspended_users,omitempty"`
}

UserStats represents the number of total, admin and suspended users.

func (u *UserStats) GetAdminUsers() int

GetAdminUsers returns the AdminUsers field if it's non-nil, zero value otherwise.

func (u *UserStats) GetSuspendedUsers() int

GetSuspendedUsers returns the SuspendedUsers field if it's non-nil, zero value otherwise.

func (u *UserStats) GetTotalUsers() int

GetTotalUsers returns the TotalUsers field if it's non-nil, zero value otherwise.

type UsersSearchResult struct {
}

UsersSearchResult represents the result of a users search.

func (u *UsersSearchResult) GetIncompleteResults() bool

GetIncompleteResults returns the IncompleteResults field if it's non-nil, zero value otherwise.

func (u *UsersSearchResult) GetTotal() int

GetTotal returns the Total field if it's non-nil, zero value otherwise.

type UsersService service

UsersService handles communication with the user related methods of the GitHub API.

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

GetByID fetches a user.

Note: GetByID uses the undocumented GitHub API endpoint /user/:id.

type WatchEvent struct {
	
	Action *string `json:"action,omitempty"`

	
	Repo         *Repository   `json:"repository,omitempty"`
	Sender       *User         `json:"sender,omitempty"`
	Installation *Installation `json:"installation,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 API docs: https://developer.github.com/v3/activity/events/types/#watchevent

GetAction returns the Action field if it's non-nil, zero value otherwise.

func (w *WatchEvent) GetInstallation() *Installation

GetInstallation returns the Installation field.

func (w *WatchEvent) GetRepo() *Repository

GetRepo returns the Repo field.

func (w *WatchEvent) GetSender() *User

GetSender returns the Sender field.

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.

GetEmail returns the Email field if it's non-nil, zero value otherwise.

GetName returns the Name field if it's non-nil, zero value otherwise.

GetUsername returns the Username field if it's non-nil, zero value otherwise.

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) GetAuthor() *WebHookAuthor

GetAuthor returns the Author field.

func (w *WebHookCommit) GetCommitter() *WebHookAuthor

GetCommitter returns the Committer field.

func (w *WebHookCommit) GetDistinct() bool

GetDistinct returns the Distinct field if it's non-nil, zero value otherwise.

GetID returns the ID field if it's non-nil, zero value otherwise.

GetMessage returns the Message field if it's non-nil, zero value otherwise.

GetTimestamp returns the Timestamp field if it's non-nil, zero value otherwise.

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

GetAfter returns the After field if it's non-nil, zero value otherwise.

GetBefore returns the Before field if it's non-nil, zero value otherwise.

GetCompare returns the Compare field if it's non-nil, zero value otherwise.

func (w *WebHookPayload) GetCreated() bool

GetCreated returns the Created field if it's non-nil, zero value otherwise.

func (w *WebHookPayload) GetDeleted() bool

GetDeleted returns the Deleted field if it's non-nil, zero value otherwise.

func (w *WebHookPayload) GetForced() bool

GetForced returns the Forced field if it's non-nil, zero value otherwise.

func (w *WebHookPayload) GetHeadCommit() *WebHookCommit

GetHeadCommit returns the HeadCommit field.

func (w *WebHookPayload) GetPusher() *User

GetPusher returns the Pusher field.

GetRef returns the Ref field if it's non-nil, zero value otherwise.

func (w *WebHookPayload) GetRepo() *Repository

GetRepo returns the Repo field.

func (w *WebHookPayload) GetSender() *User

GetSender returns the Sender field.

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) GetTotal() int

GetTotal returns the Total field if it's non-nil, zero value otherwise.

func (w *WeeklyCommitActivity) GetWeek() Timestamp

GetWeek returns the Week field if it's non-nil, zero value otherwise.

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) GetAdditions() int

GetAdditions returns the Additions field if it's non-nil, zero value otherwise.

func (w *WeeklyStats) GetCommits() int

GetCommits returns the Commits field if it's non-nil, zero value otherwise.

func (w *WeeklyStats) GetDeletions() int

GetDeletions returns the Deletions field if it's non-nil, zero value otherwise.

func (w *WeeklyStats) GetWeek() Timestamp

GetWeek returns the Week field if it's non-nil, zero value otherwise.