github.com/google/go-github/v33@v33.0.0/github/event_types.go (about) 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 }