...

Source file src/github.com/google/go-github/v33/github/event_types.go

Documentation: github.com/google/go-github/v33/github

     1  // Copyright 2016 The go-github AUTHORS. All rights reserved.
     2  //
     3  // Use of this source code is governed by a BSD-style
     4  // license that can be found in the LICENSE file.
     5  
     6  // These event types are shared between the Events API and used as Webhook payloads.
     7  
     8  package github
     9  
    10  import "encoding/json"
    11  
    12  // RequestedAction is included in a CheckRunEvent when a user has invoked an action,
    13  // i.e. when the CheckRunEvent's Action field is "requested_action".
    14  type RequestedAction struct {
    15  	Identifier string `json:"identifier"` // The integrator reference of the action requested by the user.
    16  }
    17  
    18  // CheckRunEvent is triggered when a check run is "created", "updated", or "rerequested".
    19  // The Webhook event name is "check_run".
    20  //
    21  // GitHub API docs: https://docs.github.com/en/free-pro-team@latest/rest/reference/activity/events/types/#checkrunevent
    22  type CheckRunEvent struct {
    23  	CheckRun *CheckRun `json:"check_run,omitempty"`
    24  	// The action performed. Possible values are: "created", "updated", "rerequested" or "requested_action".
    25  	Action *string `json:"action,omitempty"`
    26  
    27  	// The following fields are only populated by Webhook events.
    28  	Repo         *Repository   `json:"repository,omitempty"`
    29  	Org          *Organization `json:"organization,omitempty"`
    30  	Sender       *User         `json:"sender,omitempty"`
    31  	Installation *Installation `json:"installation,omitempty"`
    32  
    33  	// The action requested by the user. Populated when the Action is "requested_action".
    34  	RequestedAction *RequestedAction `json:"requested_action,omitempty"` //
    35  }
    36  
    37  // CheckSuiteEvent is triggered when a check suite is "completed", "requested", or "rerequested".
    38  // The Webhook event name is "check_suite".
    39  //
    40  // GitHub API docs: https://docs.github.com/en/free-pro-team@latest/rest/reference/activity/events/types/#checksuiteevent
    41  type CheckSuiteEvent struct {
    42  	CheckSuite *CheckSuite `json:"check_suite,omitempty"`
    43  	// The action performed. Possible values are: "completed", "requested" or "rerequested".
    44  	Action *string `json:"action,omitempty"`
    45  
    46  	// The following fields are only populated by Webhook events.
    47  	Repo         *Repository   `json:"repository,omitempty"`
    48  	Org          *Organization `json:"organization,omitempty"`
    49  	Sender       *User         `json:"sender,omitempty"`
    50  	Installation *Installation `json:"installation,omitempty"`
    51  }
    52  
    53  // CommitCommentEvent is triggered when a commit comment is created.
    54  // The Webhook event name is "commit_comment".
    55  //
    56  // GitHub API docs: https://docs.github.com/en/free-pro-team@latest/rest/reference/activity/events/types/#commitcommentevent
    57  type CommitCommentEvent struct {
    58  	Comment *RepositoryComment `json:"comment,omitempty"`
    59  
    60  	// The following fields are only populated by Webhook events.
    61  	Action       *string       `json:"action,omitempty"`
    62  	Repo         *Repository   `json:"repository,omitempty"`
    63  	Sender       *User         `json:"sender,omitempty"`
    64  	Installation *Installation `json:"installation,omitempty"`
    65  }
    66  
    67  // ContentReferenceEvent is triggered when the body or comment of an issue or
    68  // pull request includes a URL that matches a configured content reference
    69  // domain.
    70  // The Webhook event name is "content_reference".
    71  //
    72  // GitHub API docs: https://developer.github.com/webhooks/event-payloads/#content_reference
    73  type ContentReferenceEvent struct {
    74  	Action           *string           `json:"action,omitempty"`
    75  	ContentReference *ContentReference `json:"content_reference,omitempty"`
    76  	Repo             *Repository       `json:"repository,omitempty"`
    77  	Sender           *User             `json:"sender,omitempty"`
    78  	Installation     *Installation     `json:"installation,omitempty"`
    79  }
    80  
    81  // CreateEvent represents a created repository, branch, or tag.
    82  // The Webhook event name is "create".
    83  //
    84  // Note: webhooks will not receive this event for created repositories.
    85  // Additionally, webhooks will not receive this event for tags if more
    86  // than three tags are pushed at once.
    87  //
    88  // GitHub API docs: https://docs.github.com/en/free-pro-team@latest/rest/reference/activity/events/types/#createevent
    89  type CreateEvent struct {
    90  	Ref *string `json:"ref,omitempty"`
    91  	// RefType is the object that was created. Possible values are: "repository", "branch", "tag".
    92  	RefType      *string `json:"ref_type,omitempty"`
    93  	MasterBranch *string `json:"master_branch,omitempty"`
    94  	Description  *string `json:"description,omitempty"`
    95  
    96  	// The following fields are only populated by Webhook events.
    97  	PusherType   *string       `json:"pusher_type,omitempty"`
    98  	Repo         *Repository   `json:"repository,omitempty"`
    99  	Sender       *User         `json:"sender,omitempty"`
   100  	Installation *Installation `json:"installation,omitempty"`
   101  }
   102  
   103  // DeleteEvent represents a deleted branch or tag.
   104  // The Webhook event name is "delete".
   105  //
   106  // Note: webhooks will not receive this event for tags if more than three tags
   107  // are deleted at once.
   108  //
   109  // GitHub API docs: https://docs.github.com/en/free-pro-team@latest/rest/reference/activity/events/types/#deleteevent
   110  type DeleteEvent struct {
   111  	Ref *string `json:"ref,omitempty"`
   112  	// RefType is the object that was deleted. Possible values are: "branch", "tag".
   113  	RefType *string `json:"ref_type,omitempty"`
   114  
   115  	// The following fields are only populated by Webhook events.
   116  	PusherType   *string       `json:"pusher_type,omitempty"`
   117  	Repo         *Repository   `json:"repository,omitempty"`
   118  	Sender       *User         `json:"sender,omitempty"`
   119  	Installation *Installation `json:"installation,omitempty"`
   120  }
   121  
   122  // DeployKeyEvent is triggered when a deploy key is added or removed from a repository.
   123  // The Webhook event name is "deploy_key".
   124  //
   125  // GitHub API docs: https://docs.github.com/en/free-pro-team@latest/rest/reference/activity/events/types/#deploykeyevent
   126  type DeployKeyEvent struct {
   127  	// Action is the action that was performed. Possible values are:
   128  	// "created" or "deleted".
   129  	Action *string `json:"action,omitempty"`
   130  
   131  	// The deploy key resource.
   132  	Key *Key `json:"key,omitempty"`
   133  }
   134  
   135  // DeploymentEvent represents a deployment.
   136  // The Webhook event name is "deployment".
   137  //
   138  // Events of this type are not visible in timelines, they are only used to trigger hooks.
   139  //
   140  // GitHub API docs: https://docs.github.com/en/free-pro-team@latest/rest/reference/activity/events/types/#deploymentevent
   141  type DeploymentEvent struct {
   142  	Deployment *Deployment `json:"deployment,omitempty"`
   143  	Repo       *Repository `json:"repository,omitempty"`
   144  
   145  	// The following fields are only populated by Webhook events.
   146  	Sender       *User         `json:"sender,omitempty"`
   147  	Installation *Installation `json:"installation,omitempty"`
   148  }
   149  
   150  // DeploymentStatusEvent represents a deployment status.
   151  // The Webhook event name is "deployment_status".
   152  //
   153  // Events of this type are not visible in timelines, they are only used to trigger hooks.
   154  //
   155  // GitHub API docs: https://docs.github.com/en/free-pro-team@latest/rest/reference/activity/events/types/#deploymentstatusevent
   156  type DeploymentStatusEvent struct {
   157  	Deployment       *Deployment       `json:"deployment,omitempty"`
   158  	DeploymentStatus *DeploymentStatus `json:"deployment_status,omitempty"`
   159  	Repo             *Repository       `json:"repository,omitempty"`
   160  
   161  	// The following fields are only populated by Webhook events.
   162  	Sender       *User         `json:"sender,omitempty"`
   163  	Installation *Installation `json:"installation,omitempty"`
   164  }
   165  
   166  // ForkEvent is triggered when a user forks a repository.
   167  // The Webhook event name is "fork".
   168  //
   169  // GitHub API docs: https://docs.github.com/en/free-pro-team@latest/rest/reference/activity/events/types/#forkevent
   170  type ForkEvent struct {
   171  	// Forkee is the created repository.
   172  	Forkee *Repository `json:"forkee,omitempty"`
   173  
   174  	// The following fields are only populated by Webhook events.
   175  	Repo         *Repository   `json:"repository,omitempty"`
   176  	Sender       *User         `json:"sender,omitempty"`
   177  	Installation *Installation `json:"installation,omitempty"`
   178  }
   179  
   180  // GitHubAppAuthorizationEvent is triggered when a user's authorization for a
   181  // GitHub Application is revoked.
   182  //
   183  // GitHub API docs: https://docs.github.com/en/free-pro-team@latest/rest/reference/activity/events/types/#githubappauthorizationevent
   184  type GitHubAppAuthorizationEvent struct {
   185  	// The action performed. Possible value is: "revoked".
   186  	Action *string `json:"action,omitempty"`
   187  
   188  	// The following fields are only populated by Webhook events.
   189  	Sender *User `json:"sender,omitempty"`
   190  }
   191  
   192  // Page represents a single Wiki page.
   193  type Page struct {
   194  	PageName *string `json:"page_name,omitempty"`
   195  	Title    *string `json:"title,omitempty"`
   196  	Summary  *string `json:"summary,omitempty"`
   197  	Action   *string `json:"action,omitempty"`
   198  	SHA      *string `json:"sha,omitempty"`
   199  	HTMLURL  *string `json:"html_url,omitempty"`
   200  }
   201  
   202  // GollumEvent is triggered when a Wiki page is created or updated.
   203  // The Webhook event name is "gollum".
   204  //
   205  // GitHub API docs: https://docs.github.com/en/free-pro-team@latest/rest/reference/activity/events/types/#gollumevent
   206  type GollumEvent struct {
   207  	Pages []*Page `json:"pages,omitempty"`
   208  
   209  	// The following fields are only populated by Webhook events.
   210  	Repo         *Repository   `json:"repository,omitempty"`
   211  	Sender       *User         `json:"sender,omitempty"`
   212  	Installation *Installation `json:"installation,omitempty"`
   213  }
   214  
   215  // EditChange represents the changes when an issue, pull request, or comment has
   216  // been edited.
   217  type EditChange struct {
   218  	Title *struct {
   219  		From *string `json:"from,omitempty"`
   220  	} `json:"title,omitempty"`
   221  	Body *struct {
   222  		From *string `json:"from,omitempty"`
   223  	} `json:"body,omitempty"`
   224  	Base *struct {
   225  		Ref *struct {
   226  			From *string `json:"from,omitempty"`
   227  		} `json:"ref,omitempty"`
   228  		SHA *struct {
   229  			From *string `json:"from,omitempty"`
   230  		} `json:"sha,omitempty"`
   231  	} `json:"base,omitempty"`
   232  }
   233  
   234  // ProjectChange represents the changes when a project has been edited.
   235  type ProjectChange struct {
   236  	Name *struct {
   237  		From *string `json:"from,omitempty"`
   238  	} `json:"name,omitempty"`
   239  	Body *struct {
   240  		From *string `json:"from,omitempty"`
   241  	} `json:"body,omitempty"`
   242  }
   243  
   244  // ProjectCardChange represents the changes when a project card has been edited.
   245  type ProjectCardChange struct {
   246  	Note *struct {
   247  		From *string `json:"from,omitempty"`
   248  	} `json:"note,omitempty"`
   249  }
   250  
   251  // ProjectColumnChange represents the changes when a project column has been edited.
   252  type ProjectColumnChange struct {
   253  	Name *struct {
   254  		From *string `json:"from,omitempty"`
   255  	} `json:"name,omitempty"`
   256  }
   257  
   258  // TeamChange represents the changes when a team has been edited.
   259  type TeamChange struct {
   260  	Description *struct {
   261  		From *string `json:"from,omitempty"`
   262  	} `json:"description,omitempty"`
   263  	Name *struct {
   264  		From *string `json:"from,omitempty"`
   265  	} `json:"name,omitempty"`
   266  	Privacy *struct {
   267  		From *string `json:"from,omitempty"`
   268  	} `json:"privacy,omitempty"`
   269  	Repository *struct {
   270  		Permissions *struct {
   271  			From *struct {
   272  				Admin *bool `json:"admin,omitempty"`
   273  				Pull  *bool `json:"pull,omitempty"`
   274  				Push  *bool `json:"push,omitempty"`
   275  			} `json:"from,omitempty"`
   276  		} `json:"permissions,omitempty"`
   277  	} `json:"repository,omitempty"`
   278  }
   279  
   280  // InstallationEvent is triggered when a GitHub App has been installed or uninstalled.
   281  // The Webhook event name is "installation".
   282  //
   283  // GitHub API docs: https://docs.github.com/en/free-pro-team@latest/rest/reference/activity/events/types/#installationevent
   284  type InstallationEvent struct {
   285  	// The action that was performed. Can be either "created" or "deleted".
   286  	Action       *string       `json:"action,omitempty"`
   287  	Repositories []*Repository `json:"repositories,omitempty"`
   288  	Sender       *User         `json:"sender,omitempty"`
   289  	Installation *Installation `json:"installation,omitempty"`
   290  }
   291  
   292  // InstallationRepositoriesEvent is triggered when a repository is added or
   293  // removed from an installation. The Webhook event name is "installation_repositories".
   294  //
   295  // GitHub API docs: https://docs.github.com/en/free-pro-team@latest/rest/reference/activity/events/types/#installationrepositoriesevent
   296  type InstallationRepositoriesEvent struct {
   297  	// The action that was performed. Can be either "added" or "removed".
   298  	Action              *string       `json:"action,omitempty"`
   299  	RepositoriesAdded   []*Repository `json:"repositories_added,omitempty"`
   300  	RepositoriesRemoved []*Repository `json:"repositories_removed,omitempty"`
   301  	RepositorySelection *string       `json:"repository_selection,omitempty"`
   302  	Sender              *User         `json:"sender,omitempty"`
   303  	Installation        *Installation `json:"installation,omitempty"`
   304  }
   305  
   306  // IssueCommentEvent is triggered when an issue comment is created on an issue
   307  // or pull request.
   308  // The Webhook event name is "issue_comment".
   309  //
   310  // GitHub API docs: https://docs.github.com/en/free-pro-team@latest/rest/reference/activity/events/types/#issuecommentevent
   311  type IssueCommentEvent struct {
   312  	// Action is the action that was performed on the comment.
   313  	// Possible values are: "created", "edited", "deleted".
   314  	Action  *string       `json:"action,omitempty"`
   315  	Issue   *Issue        `json:"issue,omitempty"`
   316  	Comment *IssueComment `json:"comment,omitempty"`
   317  
   318  	// The following fields are only populated by Webhook events.
   319  	Changes      *EditChange   `json:"changes,omitempty"`
   320  	Repo         *Repository   `json:"repository,omitempty"`
   321  	Sender       *User         `json:"sender,omitempty"`
   322  	Installation *Installation `json:"installation,omitempty"`
   323  }
   324  
   325  // IssuesEvent is triggered when an issue is opened, edited, deleted, transferred,
   326  // pinned, unpinned, closed, reopened, assigned, unassigned, labeled, unlabeled,
   327  // locked, unlocked, milestoned, or demilestoned.
   328  // The Webhook event name is "issues".
   329  //
   330  // GitHub API docs: https://docs.github.com/en/free-pro-team@latest/rest/reference/activity/events/types/#issuesevent
   331  type IssuesEvent struct {
   332  	// Action is the action that was performed. Possible values are: "opened",
   333  	// "edited", "deleted", "transferred", "pinned", "unpinned", "closed", "reopened",
   334  	// "assigned", "unassigned", "labeled", "unlabeled", "locked", "unlocked",
   335  	// "milestoned", or "demilestoned".
   336  	Action   *string `json:"action,omitempty"`
   337  	Issue    *Issue  `json:"issue,omitempty"`
   338  	Assignee *User   `json:"assignee,omitempty"`
   339  	Label    *Label  `json:"label,omitempty"`
   340  
   341  	// The following fields are only populated by Webhook events.
   342  	Changes      *EditChange   `json:"changes,omitempty"`
   343  	Repo         *Repository   `json:"repository,omitempty"`
   344  	Sender       *User         `json:"sender,omitempty"`
   345  	Installation *Installation `json:"installation,omitempty"`
   346  }
   347  
   348  // LabelEvent is triggered when a repository's label is created, edited, or deleted.
   349  // The Webhook event name is "label"
   350  //
   351  // GitHub API docs: https://docs.github.com/en/free-pro-team@latest/rest/reference/activity/events/types/#labelevent
   352  type LabelEvent struct {
   353  	// Action is the action that was performed. Possible values are:
   354  	// "created", "edited", "deleted"
   355  	Action *string `json:"action,omitempty"`
   356  	Label  *Label  `json:"label,omitempty"`
   357  
   358  	// The following fields are only populated by Webhook events.
   359  	Changes      *EditChange   `json:"changes,omitempty"`
   360  	Repo         *Repository   `json:"repository,omitempty"`
   361  	Org          *Organization `json:"organization,omitempty"`
   362  	Installation *Installation `json:"installation,omitempty"`
   363  }
   364  
   365  // MarketplacePurchaseEvent is triggered when a user purchases, cancels, or changes
   366  // their GitHub Marketplace plan.
   367  // Webhook event name "marketplace_purchase".
   368  //
   369  // GitHub API docs: https://docs.github.com/en/free-pro-team@latest/rest/reference/activity/events/types/#marketplacepurchaseevent
   370  type MarketplacePurchaseEvent struct {
   371  	// Action is the action that was performed. Possible values are:
   372  	// "purchased", "cancelled", "pending_change", "pending_change_cancelled", "changed".
   373  	Action *string `json:"action,omitempty"`
   374  
   375  	// The following fields are only populated by Webhook events.
   376  	EffectiveDate               *Timestamp           `json:"effective_date,omitempty"`
   377  	MarketplacePurchase         *MarketplacePurchase `json:"marketplace_purchase,omitempty"`
   378  	PreviousMarketplacePurchase *MarketplacePurchase `json:"previous_marketplace_purchase,omitempty"`
   379  	Sender                      *User                `json:"sender,omitempty"`
   380  	Installation                *Installation        `json:"installation,omitempty"`
   381  }
   382  
   383  // MemberEvent is triggered when a user is added as a collaborator to a repository.
   384  // The Webhook event name is "member".
   385  //
   386  // GitHub API docs: https://docs.github.com/en/free-pro-team@latest/rest/reference/activity/events/types/#memberevent
   387  type MemberEvent struct {
   388  	// Action is the action that was performed. Possible value is: "added".
   389  	Action *string `json:"action,omitempty"`
   390  	Member *User   `json:"member,omitempty"`
   391  
   392  	// The following fields are only populated by Webhook events.
   393  	Repo         *Repository   `json:"repository,omitempty"`
   394  	Sender       *User         `json:"sender,omitempty"`
   395  	Installation *Installation `json:"installation,omitempty"`
   396  }
   397  
   398  // MembershipEvent is triggered when a user is added or removed from a team.
   399  // The Webhook event name is "membership".
   400  //
   401  // Events of this type are not visible in timelines, they are only used to
   402  // trigger organization webhooks.
   403  //
   404  // GitHub API docs: https://docs.github.com/en/free-pro-team@latest/rest/reference/activity/events/types/#membershipevent
   405  type MembershipEvent struct {
   406  	// Action is the action that was performed. Possible values are: "added", "removed".
   407  	Action *string `json:"action,omitempty"`
   408  	// Scope is the scope of the membership. Possible value is: "team".
   409  	Scope  *string `json:"scope,omitempty"`
   410  	Member *User   `json:"member,omitempty"`
   411  	Team   *Team   `json:"team,omitempty"`
   412  
   413  	// The following fields are only populated by Webhook events.
   414  	Org          *Organization `json:"organization,omitempty"`
   415  	Sender       *User         `json:"sender,omitempty"`
   416  	Installation *Installation `json:"installation,omitempty"`
   417  }
   418  
   419  // MetaEvent is triggered when the webhook that this event is configured on is deleted.
   420  // This event will only listen for changes to the particular hook the event is installed on.
   421  // Therefore, it must be selected for each hook that you'd like to receive meta events for.
   422  // The Webhook event name is "meta".
   423  //
   424  // GitHub API docs: https://docs.github.com/en/free-pro-team@latest/rest/reference/activity/events/types/#metaevent
   425  type MetaEvent struct {
   426  	// Action is the action that was performed. Possible value is: "deleted".
   427  	Action *string `json:"action,omitempty"`
   428  	// The ID of the modified webhook.
   429  	HookID *int64 `json:"hook_id,omitempty"`
   430  	// The modified webhook.
   431  	// This will contain different keys based on the type of webhook it is: repository,
   432  	// organization, business, app, or GitHub Marketplace.
   433  	Hook *Hook `json:"hook,omitempty"`
   434  }
   435  
   436  // MilestoneEvent is triggered when a milestone is created, closed, opened, edited, or deleted.
   437  // The Webhook event name is "milestone".
   438  //
   439  // GitHub API docs: https://docs.github.com/en/free-pro-team@latest/rest/reference/activity/events/types/#milestoneevent
   440  type MilestoneEvent struct {
   441  	// Action is the action that was performed. Possible values are:
   442  	// "created", "closed", "opened", "edited", "deleted"
   443  	Action    *string    `json:"action,omitempty"`
   444  	Milestone *Milestone `json:"milestone,omitempty"`
   445  
   446  	// The following fields are only populated by Webhook events.
   447  	Changes      *EditChange   `json:"changes,omitempty"`
   448  	Repo         *Repository   `json:"repository,omitempty"`
   449  	Sender       *User         `json:"sender,omitempty"`
   450  	Org          *Organization `json:"organization,omitempty"`
   451  	Installation *Installation `json:"installation,omitempty"`
   452  }
   453  
   454  // OrganizationEvent is triggered when an organization is deleted and renamed, and when a user is added,
   455  // removed, or invited to an organization.
   456  // Events of this type are not visible in timelines. These events are only used to trigger organization hooks.
   457  // Webhook event name is "organization".
   458  //
   459  // GitHub API docs: https://docs.github.com/en/free-pro-team@latest/rest/reference/activity/events/types/#organizationevent
   460  type OrganizationEvent struct {
   461  	// Action is the action that was performed.
   462  	// Possible values are: "deleted", "renamed", "member_added", "member_removed", or "member_invited".
   463  	Action *string `json:"action,omitempty"`
   464  
   465  	// Invitation is the invitation for the user or email if the action is "member_invited".
   466  	Invitation *Invitation `json:"invitation,omitempty"`
   467  
   468  	// Membership is the membership between the user and the organization.
   469  	// Not present when the action is "member_invited".
   470  	Membership *Membership `json:"membership,omitempty"`
   471  
   472  	Organization *Organization `json:"organization,omitempty"`
   473  	Sender       *User         `json:"sender,omitempty"`
   474  	Installation *Installation `json:"installation,omitempty"`
   475  }
   476  
   477  // OrgBlockEvent is triggered when an organization blocks or unblocks a user.
   478  // The Webhook event name is "org_block".
   479  //
   480  // GitHub API docs: https://docs.github.com/en/free-pro-team@latest/rest/reference/activity/events/types/#orgblockevent
   481  type OrgBlockEvent struct {
   482  	// Action is the action that was performed.
   483  	// Can be "blocked" or "unblocked".
   484  	Action       *string       `json:"action,omitempty"`
   485  	BlockedUser  *User         `json:"blocked_user,omitempty"`
   486  	Organization *Organization `json:"organization,omitempty"`
   487  	Sender       *User         `json:"sender,omitempty"`
   488  
   489  	// The following fields are only populated by Webhook events.
   490  	Installation *Installation `json:"installation,omitempty"`
   491  }
   492  
   493  // PackageEvent represents activity related to GitHub Packages.
   494  // The Webhook event name is "package".
   495  //
   496  // This event is triggered when a GitHub Package is published or updated.
   497  //
   498  // GitHub API docs: https://developer.github.com/webhooks/event-payloads/#package
   499  type PackageEvent struct {
   500  	// Action is the action that was performed.
   501  	// Can be "published" or "updated".
   502  	Action  *string       `json:"action,omitempty"`
   503  	Package *Package      `json:"package,omitempty"`
   504  	Repo    *Repository   `json:"repository,omitempty"`
   505  	Org     *Organization `json:"organization,omitempty"`
   506  	Sender  *User         `json:"sender,omitempty"`
   507  }
   508  
   509  // PageBuildEvent represents an attempted build of a GitHub Pages site, whether
   510  // successful or not.
   511  // The Webhook event name is "page_build".
   512  //
   513  // This event is triggered on push to a GitHub Pages enabled branch (gh-pages
   514  // for project pages, master for user and organization pages).
   515  //
   516  // Events of this type are not visible in timelines, they are only used to trigger hooks.
   517  //
   518  // GitHub API docs: https://docs.github.com/en/free-pro-team@latest/rest/reference/activity/events/types/#pagebuildevent
   519  type PageBuildEvent struct {
   520  	Build *PagesBuild `json:"build,omitempty"`
   521  
   522  	// The following fields are only populated by Webhook events.
   523  	ID           *int64        `json:"id,omitempty"`
   524  	Repo         *Repository   `json:"repository,omitempty"`
   525  	Sender       *User         `json:"sender,omitempty"`
   526  	Installation *Installation `json:"installation,omitempty"`
   527  }
   528  
   529  // PingEvent is triggered when a Webhook is added to GitHub.
   530  //
   531  // GitHub API docs: https://developer.github.com/webhooks/#ping-event
   532  type PingEvent struct {
   533  	// Random string of GitHub zen.
   534  	Zen *string `json:"zen,omitempty"`
   535  	// The ID of the webhook that triggered the ping.
   536  	HookID *int64 `json:"hook_id,omitempty"`
   537  	// The webhook configuration.
   538  	Hook         *Hook         `json:"hook,omitempty"`
   539  	Installation *Installation `json:"installation,omitempty"`
   540  }
   541  
   542  // ProjectEvent is triggered when project is created, modified or deleted.
   543  // The webhook event name is "project".
   544  //
   545  // GitHub API docs: https://docs.github.com/en/free-pro-team@latest/rest/reference/activity/events/types/#projectevent
   546  type ProjectEvent struct {
   547  	Action  *string        `json:"action,omitempty"`
   548  	Changes *ProjectChange `json:"changes,omitempty"`
   549  	Project *Project       `json:"project,omitempty"`
   550  
   551  	// The following fields are only populated by Webhook events.
   552  	Repo         *Repository   `json:"repository,omitempty"`
   553  	Org          *Organization `json:"organization,omitempty"`
   554  	Sender       *User         `json:"sender,omitempty"`
   555  	Installation *Installation `json:"installation,omitempty"`
   556  }
   557  
   558  // ProjectCardEvent is triggered when a project card is created, updated, moved, converted to an issue, or deleted.
   559  // The webhook event name is "project_card".
   560  //
   561  // GitHub API docs: https://docs.github.com/en/free-pro-team@latest/rest/reference/activity/events/types/#projectcardevent
   562  type ProjectCardEvent struct {
   563  	Action      *string            `json:"action,omitempty"`
   564  	Changes     *ProjectCardChange `json:"changes,omitempty"`
   565  	AfterID     *int64             `json:"after_id,omitempty"`
   566  	ProjectCard *ProjectCard       `json:"project_card,omitempty"`
   567  
   568  	// The following fields are only populated by Webhook events.
   569  	Repo         *Repository   `json:"repository,omitempty"`
   570  	Org          *Organization `json:"organization,omitempty"`
   571  	Sender       *User         `json:"sender,omitempty"`
   572  	Installation *Installation `json:"installation,omitempty"`
   573  }
   574  
   575  // ProjectColumnEvent is triggered when a project column is created, updated, moved, or deleted.
   576  // The webhook event name is "project_column".
   577  //
   578  // GitHub API docs: https://docs.github.com/en/free-pro-team@latest/rest/reference/activity/events/types/#projectcolumnevent
   579  type ProjectColumnEvent struct {
   580  	Action        *string              `json:"action,omitempty"`
   581  	Changes       *ProjectColumnChange `json:"changes,omitempty"`
   582  	AfterID       *int64               `json:"after_id,omitempty"`
   583  	ProjectColumn *ProjectColumn       `json:"project_column,omitempty"`
   584  
   585  	// The following fields are only populated by Webhook events.
   586  	Repo         *Repository   `json:"repository,omitempty"`
   587  	Org          *Organization `json:"organization,omitempty"`
   588  	Sender       *User         `json:"sender,omitempty"`
   589  	Installation *Installation `json:"installation,omitempty"`
   590  }
   591  
   592  // PublicEvent is triggered when a private repository is open sourced.
   593  // According to GitHub: "Without a doubt: the best GitHub event."
   594  // The Webhook event name is "public".
   595  //
   596  // GitHub API docs: https://docs.github.com/en/free-pro-team@latest/rest/reference/activity/events/types/#publicevent
   597  type PublicEvent struct {
   598  	// The following fields are only populated by Webhook events.
   599  	Repo         *Repository   `json:"repository,omitempty"`
   600  	Sender       *User         `json:"sender,omitempty"`
   601  	Installation *Installation `json:"installation,omitempty"`
   602  }
   603  
   604  // PullRequestEvent is triggered when a pull request is assigned, unassigned, labeled,
   605  // unlabeled, opened, edited, closed, reopened, synchronize, ready_for_review,
   606  // locked, unlocked, a pull request review is requested, or a review request is removed.
   607  // The Webhook event name is "pull_request".
   608  //
   609  // GitHub API docs: https://docs.github.com/en/free-pro-team@latest/rest/reference/activity/events/types/#pullrequestevent
   610  type PullRequestEvent struct {
   611  	// Action is the action that was performed. Possible values are:
   612  	// "assigned", "unassigned", "review_requested", "review_request_removed", "labeled", "unlabeled",
   613  	// "opened", "edited", "closed", "ready_for_review", "locked", "unlocked", or "reopened".
   614  	// If the action is "closed" and the "merged" key is "false", the pull request was closed with unmerged commits.
   615  	// If the action is "closed" and the "merged" key is "true", the pull request was merged.
   616  	// While webhooks are also triggered when a pull request is synchronized, Events API timelines
   617  	// don't include pull request events with the "synchronize" action.
   618  	Action      *string      `json:"action,omitempty"`
   619  	Assignee    *User        `json:"assignee,omitempty"`
   620  	Number      *int         `json:"number,omitempty"`
   621  	PullRequest *PullRequest `json:"pull_request,omitempty"`
   622  
   623  	// The following fields are only populated by Webhook events.
   624  	Changes *EditChange `json:"changes,omitempty"`
   625  	// RequestedReviewer is populated in "review_requested", "review_request_removed" event deliveries.
   626  	// A request affecting multiple reviewers at once is split into multiple
   627  	// such event deliveries, each with a single, different RequestedReviewer.
   628  	RequestedReviewer *User `json:"requested_reviewer,omitempty"`
   629  	// In the event that a team is requested instead of a user, "requested_team" gets sent in place of
   630  	// "requested_user" with the same delivery behavior.
   631  	RequestedTeam *Team         `json:"requested_team,omitempty"`
   632  	Repo          *Repository   `json:"repository,omitempty"`
   633  	Sender        *User         `json:"sender,omitempty"`
   634  	Installation  *Installation `json:"installation,omitempty"`
   635  	Label         *Label        `json:"label,omitempty"` // Populated in "labeled" event deliveries.
   636  
   637  	// The following field is only present when the webhook is triggered on
   638  	// a repository belonging to an organization.
   639  	Organization *Organization `json:"organization,omitempty"`
   640  
   641  	// The following fields are only populated when the Action is "synchronize".
   642  	Before *string `json:"before,omitempty"`
   643  	After  *string `json:"after,omitempty"`
   644  }
   645  
   646  // PullRequestReviewEvent is triggered when a review is submitted on a pull
   647  // request.
   648  // The Webhook event name is "pull_request_review".
   649  //
   650  // GitHub API docs: https://docs.github.com/en/free-pro-team@latest/rest/reference/activity/events/types/#pullrequestreviewevent
   651  type PullRequestReviewEvent struct {
   652  	// Action is always "submitted".
   653  	Action      *string            `json:"action,omitempty"`
   654  	Review      *PullRequestReview `json:"review,omitempty"`
   655  	PullRequest *PullRequest       `json:"pull_request,omitempty"`
   656  
   657  	// The following fields are only populated by Webhook events.
   658  	Repo         *Repository   `json:"repository,omitempty"`
   659  	Sender       *User         `json:"sender,omitempty"`
   660  	Installation *Installation `json:"installation,omitempty"`
   661  
   662  	// The following field is only present when the webhook is triggered on
   663  	// a repository belonging to an organization.
   664  	Organization *Organization `json:"organization,omitempty"`
   665  }
   666  
   667  // PullRequestReviewCommentEvent is triggered when a comment is created on a
   668  // portion of the unified diff of a pull request.
   669  // The Webhook event name is "pull_request_review_comment".
   670  //
   671  // GitHub API docs: https://docs.github.com/en/free-pro-team@latest/rest/reference/activity/events/types/#pullrequestreviewcommentevent
   672  type PullRequestReviewCommentEvent struct {
   673  	// Action is the action that was performed on the comment.
   674  	// Possible values are: "created", "edited", "deleted".
   675  	Action      *string             `json:"action,omitempty"`
   676  	PullRequest *PullRequest        `json:"pull_request,omitempty"`
   677  	Comment     *PullRequestComment `json:"comment,omitempty"`
   678  
   679  	// The following fields are only populated by Webhook events.
   680  	Changes      *EditChange   `json:"changes,omitempty"`
   681  	Repo         *Repository   `json:"repository,omitempty"`
   682  	Sender       *User         `json:"sender,omitempty"`
   683  	Installation *Installation `json:"installation,omitempty"`
   684  }
   685  
   686  // PushEvent represents a git push to a GitHub repository.
   687  //
   688  // GitHub API docs: https://docs.github.com/en/free-pro-team@latest/rest/reference/activity/events/types/#pushevent
   689  type PushEvent struct {
   690  	PushID       *int64        `json:"push_id,omitempty"`
   691  	Head         *string       `json:"head,omitempty"`
   692  	Ref          *string       `json:"ref,omitempty"`
   693  	Size         *int          `json:"size,omitempty"`
   694  	Commits      []*HeadCommit `json:"commits,omitempty"`
   695  	Before       *string       `json:"before,omitempty"`
   696  	DistinctSize *int          `json:"distinct_size,omitempty"`
   697  
   698  	// The following fields are only populated by Webhook events.
   699  	After        *string              `json:"after,omitempty"`
   700  	Created      *bool                `json:"created,omitempty"`
   701  	Deleted      *bool                `json:"deleted,omitempty"`
   702  	Forced       *bool                `json:"forced,omitempty"`
   703  	BaseRef      *string              `json:"base_ref,omitempty"`
   704  	Compare      *string              `json:"compare,omitempty"`
   705  	Repo         *PushEventRepository `json:"repository,omitempty"`
   706  	HeadCommit   *HeadCommit          `json:"head_commit,omitempty"`
   707  	Pusher       *User                `json:"pusher,omitempty"`
   708  	Sender       *User                `json:"sender,omitempty"`
   709  	Installation *Installation        `json:"installation,omitempty"`
   710  }
   711  
   712  func (p PushEvent) String() string {
   713  	return Stringify(p)
   714  }
   715  
   716  // HeadCommit represents a git commit in a GitHub PushEvent.
   717  type HeadCommit struct {
   718  	Message  *string       `json:"message,omitempty"`
   719  	Author   *CommitAuthor `json:"author,omitempty"`
   720  	URL      *string       `json:"url,omitempty"`
   721  	Distinct *bool         `json:"distinct,omitempty"`
   722  
   723  	// The following fields are only populated by Events API.
   724  	SHA *string `json:"sha,omitempty"`
   725  
   726  	// The following fields are only populated by Webhook events.
   727  	ID        *string       `json:"id,omitempty"`
   728  	TreeID    *string       `json:"tree_id,omitempty"`
   729  	Timestamp *Timestamp    `json:"timestamp,omitempty"`
   730  	Committer *CommitAuthor `json:"committer,omitempty"`
   731  	Added     []string      `json:"added,omitempty"`
   732  	Removed   []string      `json:"removed,omitempty"`
   733  	Modified  []string      `json:"modified,omitempty"`
   734  }
   735  
   736  func (p HeadCommit) String() string {
   737  	return Stringify(p)
   738  }
   739  
   740  // PushEventRepository represents the repo object in a PushEvent payload.
   741  type PushEventRepository struct {
   742  	ID              *int64     `json:"id,omitempty"`
   743  	NodeID          *string    `json:"node_id,omitempty"`
   744  	Name            *string    `json:"name,omitempty"`
   745  	FullName        *string    `json:"full_name,omitempty"`
   746  	Owner           *User      `json:"owner,omitempty"`
   747  	Private         *bool      `json:"private,omitempty"`
   748  	Description     *string    `json:"description,omitempty"`
   749  	Fork            *bool      `json:"fork,omitempty"`
   750  	CreatedAt       *Timestamp `json:"created_at,omitempty"`
   751  	PushedAt        *Timestamp `json:"pushed_at,omitempty"`
   752  	UpdatedAt       *Timestamp `json:"updated_at,omitempty"`
   753  	Homepage        *string    `json:"homepage,omitempty"`
   754  	PullsURL        *string    `json:"pulls_url,omitempty"`
   755  	Size            *int       `json:"size,omitempty"`
   756  	StargazersCount *int       `json:"stargazers_count,omitempty"`
   757  	WatchersCount   *int       `json:"watchers_count,omitempty"`
   758  	Language        *string    `json:"language,omitempty"`
   759  	HasIssues       *bool      `json:"has_issues,omitempty"`
   760  	HasDownloads    *bool      `json:"has_downloads,omitempty"`
   761  	HasWiki         *bool      `json:"has_wiki,omitempty"`
   762  	HasPages        *bool      `json:"has_pages,omitempty"`
   763  	ForksCount      *int       `json:"forks_count,omitempty"`
   764  	Archived        *bool      `json:"archived,omitempty"`
   765  	Disabled        *bool      `json:"disabled,omitempty"`
   766  	OpenIssuesCount *int       `json:"open_issues_count,omitempty"`
   767  	DefaultBranch   *string    `json:"default_branch,omitempty"`
   768  	MasterBranch    *string    `json:"master_branch,omitempty"`
   769  	Organization    *string    `json:"organization,omitempty"`
   770  	URL             *string    `json:"url,omitempty"`
   771  	ArchiveURL      *string    `json:"archive_url,omitempty"`
   772  	HTMLURL         *string    `json:"html_url,omitempty"`
   773  	StatusesURL     *string    `json:"statuses_url,omitempty"`
   774  	GitURL          *string    `json:"git_url,omitempty"`
   775  	SSHURL          *string    `json:"ssh_url,omitempty"`
   776  	CloneURL        *string    `json:"clone_url,omitempty"`
   777  	SVNURL          *string    `json:"svn_url,omitempty"`
   778  }
   779  
   780  // PushEventRepoOwner is a basic representation of user/org in a PushEvent payload.
   781  type PushEventRepoOwner struct {
   782  	Name  *string `json:"name,omitempty"`
   783  	Email *string `json:"email,omitempty"`
   784  }
   785  
   786  // ReleaseEvent is triggered when a release is published, unpublished, created,
   787  // edited, deleted, or prereleased.
   788  // The Webhook event name is "release".
   789  //
   790  // GitHub API docs: https://docs.github.com/en/free-pro-team@latest/rest/reference/activity/events/types/#releaseevent
   791  type ReleaseEvent struct {
   792  	// Action is the action that was performed. Possible values are: "published", "unpublished",
   793  	// "created", "edited", "deleted", or "prereleased".
   794  	Action  *string            `json:"action,omitempty"`
   795  	Release *RepositoryRelease `json:"release,omitempty"`
   796  
   797  	// The following fields are only populated by Webhook events.
   798  	Repo         *Repository   `json:"repository,omitempty"`
   799  	Sender       *User         `json:"sender,omitempty"`
   800  	Installation *Installation `json:"installation,omitempty"`
   801  }
   802  
   803  // RepositoryEvent is triggered when a repository is created, archived, unarchived,
   804  // renamed, edited, transferred, made public, or made private. Organization hooks are
   805  // also trigerred when a repository is deleted.
   806  // The Webhook event name is "repository".
   807  //
   808  // Events of this type are not visible in timelines, they are only used to
   809  // trigger organization webhooks.
   810  //
   811  // GitHub API docs: https://docs.github.com/en/free-pro-team@latest/rest/reference/activity/events/types/#repositoryevent
   812  type RepositoryEvent struct {
   813  	// Action is the action that was performed. Possible values are: "created",
   814  	// "deleted" (organization hooks only), "archived", "unarchived", "edited", "renamed",
   815  	// "transferred", "publicized", or "privatized".
   816  	Action *string     `json:"action,omitempty"`
   817  	Repo   *Repository `json:"repository,omitempty"`
   818  
   819  	// The following fields are only populated by Webhook events.
   820  	Org          *Organization `json:"organization,omitempty"`
   821  	Sender       *User         `json:"sender,omitempty"`
   822  	Installation *Installation `json:"installation,omitempty"`
   823  }
   824  
   825  // RepositoryDispatchEvent is triggered when a client sends a POST request to the repository dispatch event endpoint.
   826  //
   827  // GitHub API docs: https://docs.github.com/en/free-pro-team@latest/rest/reference/activity/events/types/#repositorydispatchevent
   828  type RepositoryDispatchEvent struct {
   829  	// Action is the event_type that submitted with the repository dispatch payload. Value can be any string.
   830  	Action        *string         `json:"action,omitempty"`
   831  	Branch        *string         `json:"branch,omitempty"`
   832  	ClientPayload json.RawMessage `json:"client_payload,omitempty"`
   833  	Repo          *Repository     `json:"repository,omitempty"`
   834  
   835  	// The following fields are only populated by Webhook events.
   836  	Org          *Organization `json:"organization,omitempty"`
   837  	Sender       *User         `json:"sender,omitempty"`
   838  	Installation *Installation `json:"installation,omitempty"`
   839  }
   840  
   841  // RepositoryVulnerabilityAlertEvent is triggered when a security alert is created, dismissed, or resolved.
   842  //
   843  // GitHub API docs: https://docs.github.com/en/free-pro-team@latest/rest/reference/activity/events/types/#repositoryvulnerabilityalertevent
   844  type RepositoryVulnerabilityAlertEvent struct {
   845  	// Action is the action that was performed. Possible values are: "create", "dismiss", "resolve".
   846  	Action *string `json:"action,omitempty"`
   847  
   848  	//The security alert of the vulnerable dependency.
   849  	Alert *struct {
   850  		ID                  *int64     `json:"id,omitempty"`
   851  		AffectedRange       *string    `json:"affected_range,omitempty"`
   852  		AffectedPackageName *string    `json:"affected_package_name,omitempty"`
   853  		ExternalReference   *string    `json:"external_reference,omitempty"`
   854  		ExternalIdentifier  *string    `json:"external_identifier,omitempty"`
   855  		FixedIn             *string    `json:"fixed_in,omitempty"`
   856  		Dismisser           *User      `json:"dismisser,omitempty"`
   857  		DismissReason       *string    `json:"dismiss_reason,omitempty"`
   858  		DismissedAt         *Timestamp `json:"dismissed_at,omitempty"`
   859  	} `json:"alert,omitempty"`
   860  
   861  	//The repository of the vulnerable dependency.
   862  	Repository *Repository `json:"repository,omitempty"`
   863  }
   864  
   865  // StarEvent is triggered when a star is added or removed from a repository.
   866  // The Webhook event name is "star".
   867  //
   868  // GitHub API docs: https://docs.github.com/en/free-pro-team@latest/rest/reference/activity/events/types/#starevent
   869  type StarEvent struct {
   870  	// Action is the action that was performed. Possible values are: "created" or "deleted".
   871  	Action *string `json:"action,omitempty"`
   872  
   873  	// StarredAt is the time the star was created. It will be null for the "deleted" action.
   874  	StarredAt *Timestamp `json:"starred_at,omitempty"`
   875  }
   876  
   877  // StatusEvent is triggered when the status of a Git commit changes.
   878  // The Webhook event name is "status".
   879  //
   880  // Events of this type are not visible in timelines, they are only used to
   881  // trigger hooks.
   882  //
   883  // GitHub API docs: https://docs.github.com/en/free-pro-team@latest/rest/reference/activity/events/types/#statusevent
   884  type StatusEvent struct {
   885  	SHA *string `json:"sha,omitempty"`
   886  	// State is the new state. Possible values are: "pending", "success", "failure", "error".
   887  	State       *string   `json:"state,omitempty"`
   888  	Description *string   `json:"description,omitempty"`
   889  	TargetURL   *string   `json:"target_url,omitempty"`
   890  	Branches    []*Branch `json:"branches,omitempty"`
   891  
   892  	// The following fields are only populated by Webhook events.
   893  	ID           *int64            `json:"id,omitempty"`
   894  	Name         *string           `json:"name,omitempty"`
   895  	Context      *string           `json:"context,omitempty"`
   896  	Commit       *RepositoryCommit `json:"commit,omitempty"`
   897  	CreatedAt    *Timestamp        `json:"created_at,omitempty"`
   898  	UpdatedAt    *Timestamp        `json:"updated_at,omitempty"`
   899  	Repo         *Repository       `json:"repository,omitempty"`
   900  	Sender       *User             `json:"sender,omitempty"`
   901  	Installation *Installation     `json:"installation,omitempty"`
   902  }
   903  
   904  // TeamEvent is triggered when an organization's team is created, modified or deleted.
   905  // The Webhook event name is "team".
   906  //
   907  // Events of this type are not visible in timelines. These events are only used
   908  // to trigger hooks.
   909  //
   910  // GitHub API docs: https://docs.github.com/en/free-pro-team@latest/rest/reference/activity/events/types/#teamevent
   911  type TeamEvent struct {
   912  	Action  *string     `json:"action,omitempty"`
   913  	Team    *Team       `json:"team,omitempty"`
   914  	Changes *TeamChange `json:"changes,omitempty"`
   915  	Repo    *Repository `json:"repository,omitempty"`
   916  
   917  	// The following fields are only populated by Webhook events.
   918  	Org          *Organization `json:"organization,omitempty"`
   919  	Sender       *User         `json:"sender,omitempty"`
   920  	Installation *Installation `json:"installation,omitempty"`
   921  }
   922  
   923  // TeamAddEvent is triggered when a repository is added to a team.
   924  // The Webhook event name is "team_add".
   925  //
   926  // Events of this type are not visible in timelines. These events are only used
   927  // to trigger hooks.
   928  //
   929  // GitHub API docs: https://docs.github.com/en/free-pro-team@latest/rest/reference/activity/events/types/#teamaddevent
   930  type TeamAddEvent struct {
   931  	Team *Team       `json:"team,omitempty"`
   932  	Repo *Repository `json:"repository,omitempty"`
   933  
   934  	// The following fields are only populated by Webhook events.
   935  	Org          *Organization `json:"organization,omitempty"`
   936  	Sender       *User         `json:"sender,omitempty"`
   937  	Installation *Installation `json:"installation,omitempty"`
   938  }
   939  
   940  // UserEvent is triggered when a user is created or deleted.
   941  // The Webhook event name is "user".
   942  //
   943  // Only global webhooks can subscribe to this event type.
   944  //
   945  // GitHub API docs: https://developer.github.com/enterprise/v3/activity/events/types/#userevent-enterprise
   946  type UserEvent struct {
   947  	User *User `json:"user,omitempty"`
   948  	// The action performed. Possible values are: "created" or "deleted".
   949  	Action     *string     `json:"action,omitempty"`
   950  	Enterprise *Enterprise `json:"enterprise,omitempty"`
   951  	Sender     *User       `json:"sender,omitempty"`
   952  }
   953  
   954  // WatchEvent is related to starring a repository, not watching. See this API
   955  // blog post for an explanation: https://developer.github.com/changes/2012-09-05-watcher-api/
   956  //
   957  // The event’s actor is the user who starred a repository, and the event’s
   958  // repository is the repository that was starred.
   959  //
   960  // GitHub API docs: https://docs.github.com/en/free-pro-team@latest/rest/reference/activity/events/types/#watchevent
   961  type WatchEvent struct {
   962  	// Action is the action that was performed. Possible value is: "started".
   963  	Action *string `json:"action,omitempty"`
   964  
   965  	// The following fields are only populated by Webhook events.
   966  	Repo         *Repository   `json:"repository,omitempty"`
   967  	Sender       *User         `json:"sender,omitempty"`
   968  	Installation *Installation `json:"installation,omitempty"`
   969  }
   970  
   971  // WorkflowDispatchEvent is triggered when someone triggers a workflow run on GitHub or
   972  // sends a POST request to the create a workflow dispatch event endpoint.
   973  //
   974  // GitHub API docs: https://docs.github.com/en/developers/webhooks-and-events/webhook-events-and-payloads#workflow_dispatch
   975  type WorkflowDispatchEvent struct {
   976  	Inputs   json.RawMessage `json:"inputs,omitempty"`
   977  	Ref      *string         `json:"ref,omitempty"`
   978  	Workflow *string         `json:"workflow,omitempty"`
   979  
   980  	// The following fields are only populated by Webhook events.
   981  	Repo   *Repository   `json:"repository,omitempty"`
   982  	Org    *Organization `json:"organization,omitempty"`
   983  	Sender *User         `json:"sender,omitempty"`
   984  }
   985  
   986  // WorkflowRunEvent is triggered when a GitHub Actions workflow run is requested or completed.
   987  //
   988  // GitHub API docs: https://docs.github.com/en/developers/webhooks-and-events/webhook-events-and-payloads#workflow_run
   989  type WorkflowRunEvent struct {
   990  	Action *string `json:"action,omitempty"`
   991  
   992  	// The following fields are only populated by Webhook events.
   993  	Org    *Organization `json:"organization,omitempty"`
   994  	Repo   *Repository   `json:"repository,omitempty"`
   995  	Sender *User         `json:"sender,omitempty"`
   996  }
   997  

View as plain text