|
|
|
@ -7,16 +7,292 @@ |
|
|
|
|
|
|
|
package github |
|
|
|
|
|
|
|
// CommitCommentEvent is triggered when a commit comment is created.
|
|
|
|
// The Webhook event name is "commit_comment".
|
|
|
|
//
|
|
|
|
// GitHub docs: https://developer.github.com/v3/activity/events/types/#commitcommentevent
|
|
|
|
type CommitCommentEvent struct { |
|
|
|
Comment *RepositoryComment `json:"comment,omitempty"` |
|
|
|
|
|
|
|
// The following fields are only populated by Webhook events.
|
|
|
|
Action *string `json:"action,omitempty"` |
|
|
|
Repo *Repository `json:"repository,omitempty"` |
|
|
|
Sender *User `json:"sender,omitempty"` |
|
|
|
} |
|
|
|
|
|
|
|
// CreateEvent represents a created repository, branch, or tag.
|
|
|
|
// The Webhook event name is "create".
|
|
|
|
//
|
|
|
|
// Note: webhooks will not receive this event for created repositories.
|
|
|
|
// Additionally, webhooks will not receive this event for tags if more
|
|
|
|
// than three tags are pushed at once.
|
|
|
|
//
|
|
|
|
// GitHub docs: https://developer.github.com/v3/activity/events/types/#createevent
|
|
|
|
type CreateEvent struct { |
|
|
|
Ref *string `json:"ref,omitempty"` |
|
|
|
// RefType is the object that was created. Possible values are: "repository", "branch", "tag".
|
|
|
|
RefType *string `json:"ref_type,omitempty"` |
|
|
|
MasterBranch *string `json:"master_branch,omitempty"` |
|
|
|
Description *string `json:"description,omitempty"` |
|
|
|
|
|
|
|
// The following fields are only populated by Webhook events.
|
|
|
|
PusherType *string `json:"pusher_type,omitempty"` |
|
|
|
Repo *Repository `json:"repository,omitempty"` |
|
|
|
Sender *User `json:"sender,omitempty"` |
|
|
|
} |
|
|
|
|
|
|
|
// DeleteEvent represents a deleted branch or tag.
|
|
|
|
// The Webhook event name is "delete".
|
|
|
|
//
|
|
|
|
// Note: webhooks will not receive this event for tags if more than three tags
|
|
|
|
// are deleted at once.
|
|
|
|
//
|
|
|
|
// GitHub docs: https://developer.github.com/v3/activity/events/types/#deleteevent
|
|
|
|
type DeleteEvent struct { |
|
|
|
Ref *string `json:"ref,omitempty"` |
|
|
|
// RefType is the object that was deleted. Possible values are: "branch", "tag".
|
|
|
|
RefType *string `json:"ref_type,omitempty"` |
|
|
|
|
|
|
|
// The following fields are only populated by Webhook events.
|
|
|
|
PusherType *string `json:"pusher_type,omitempty"` |
|
|
|
Repo *Repository `json:"repository,omitempty"` |
|
|
|
Sender *User `json:"sender,omitempty"` |
|
|
|
} |
|
|
|
|
|
|
|
// DeploymentEvent represents a deployment.
|
|
|
|
// The Webhook event name is "deployment".
|
|
|
|
//
|
|
|
|
// Events of this type are not visible in timelines, they are only used to trigger hooks.
|
|
|
|
//
|
|
|
|
// GitHub docs: https://developer.github.com/v3/activity/events/types/#deploymentevent
|
|
|
|
type DeploymentEvent struct { |
|
|
|
Deployment *Deployment `json:"deployment,omitempty"` |
|
|
|
Repo *Repository `json:"repository,omitempty"` |
|
|
|
|
|
|
|
// The following fields are only populated by Webhook events.
|
|
|
|
Sender *User `json:"sender,omitempty"` |
|
|
|
} |
|
|
|
|
|
|
|
// DeploymentStatusEvent represents a deployment status.
|
|
|
|
// The Webhook event name is "deployment_status".
|
|
|
|
//
|
|
|
|
// Events of this type are not visible in timelines, they are only used to trigger hooks.
|
|
|
|
//
|
|
|
|
// GitHub docs: https://developer.github.com/v3/activity/events/types/#deploymentstatusevent
|
|
|
|
type DeploymentStatusEvent struct { |
|
|
|
Deployment *Deployment `json:"deployment,omitempty"` |
|
|
|
DeploymentStatus *DeploymentStatus `json:"deployment_status,omitempty"` |
|
|
|
Repo *Repository `json:"repository,omitempty"` |
|
|
|
|
|
|
|
// The following fields are only populated by Webhook events.
|
|
|
|
Sender *User `json:"sender,omitempty"` |
|
|
|
} |
|
|
|
|
|
|
|
// ForkEvent is triggered when a user forks a repository.
|
|
|
|
// The Webhook event name is "fork".
|
|
|
|
//
|
|
|
|
// GitHub docs: https://developer.github.com/v3/activity/events/types/#forkevent
|
|
|
|
type ForkEvent struct { |
|
|
|
// Forkee is the created repository.
|
|
|
|
Forkee *Repository `json:"forkee,omitempty"` |
|
|
|
|
|
|
|
// The following fields are only populated by Webhook events.
|
|
|
|
Repo *Repository `json:"repository,omitempty"` |
|
|
|
Sender *User `json:"sender,omitempty"` |
|
|
|
} |
|
|
|
|
|
|
|
// Page represents a single Wiki page.
|
|
|
|
type Page struct { |
|
|
|
PageName *string `json:"page_name,omitempty"` |
|
|
|
Title *string `json:"title,omitempty"` |
|
|
|
Summary *string `json:"summary,omitempty"` |
|
|
|
Action *string `json:"action,omitempty"` |
|
|
|
SHA *string `json:"sha,omitempty"` |
|
|
|
HTMLURL *string `json:"html_url,omitempty"` |
|
|
|
} |
|
|
|
|
|
|
|
// GollumEvent is triggered when a Wiki page is created or updated.
|
|
|
|
// The Webhook event name is "gollum".
|
|
|
|
//
|
|
|
|
// GitHub docs: https://developer.github.com/v3/activity/events/types/#gollumevent
|
|
|
|
type GollumEvent struct { |
|
|
|
Pages []*Page `json:"pages,omitempty"` |
|
|
|
|
|
|
|
// The following fields are only populated by Webhook events.
|
|
|
|
Repo *Repository `json:"repository,omitempty"` |
|
|
|
Sender *User `json:"sender,omitempty"` |
|
|
|
} |
|
|
|
|
|
|
|
// DEPRECATED: IssueActivityEvent represents the payload delivered by Issue webhook
|
|
|
|
// Use IssuesEvent instead.
|
|
|
|
type IssueActivityEvent struct { |
|
|
|
Action *string `json:"action,omitempty"` |
|
|
|
Issue *Issue `json:"issue,omitempty"` |
|
|
|
|
|
|
|
// The following fields are only populated by Webhook events.
|
|
|
|
Repo *Repository `json:"repository,omitempty"` |
|
|
|
Sender *User `json:"sender,omitempty"` |
|
|
|
} |
|
|
|
|
|
|
|
// IssueCommentEvent is triggered when an issue comment is created on an issue
|
|
|
|
// or pull request.
|
|
|
|
// The Webhook event name is "issue_comment".
|
|
|
|
//
|
|
|
|
// GitHub docs: https://developer.github.com/v3/activity/events/types/#issuecommentevent
|
|
|
|
type IssueCommentEvent struct { |
|
|
|
// Action is the action that was performed on the comment.
|
|
|
|
// Possible value is: "created".
|
|
|
|
Action *string `json:"action,omitempty"` |
|
|
|
Issue *Issue `json:"issue,omitempty"` |
|
|
|
Comment *IssueComment `json:"comment,omitempty"` |
|
|
|
|
|
|
|
// The following fields are only populated by Webhook events.
|
|
|
|
Repo *Repository `json:"repository,omitempty"` |
|
|
|
Sender *User `json:"sender,omitempty"` |
|
|
|
} |
|
|
|
|
|
|
|
// IssuesEvent is triggered when an issue is assigned, unassigned, labeled,
|
|
|
|
// unlabeled, opened, closed, or reopened.
|
|
|
|
// The Webhook event name is "issues".
|
|
|
|
//
|
|
|
|
// GitHub docs: https://developer.github.com/v3/activity/events/types/#issuesevent
|
|
|
|
type IssuesEvent struct { |
|
|
|
// Action is the action that was performed. Possible values are: "assigned",
|
|
|
|
// "unassigned", "labeled", "unlabeled", "opened", "closed", "reopened".
|
|
|
|
Action *string `json:"action,omitempty"` |
|
|
|
Issue *Issue `json:"issue,omitempty"` |
|
|
|
Assignee *User `json:"assignee,omitempty"` |
|
|
|
Label *Label `json:"label,omitempty"` |
|
|
|
|
|
|
|
// The following fields are only populated by Webhook events.
|
|
|
|
Repo *Repository `json:"repository,omitempty"` |
|
|
|
Sender *User `json:"sender,omitempty"` |
|
|
|
} |
|
|
|
|
|
|
|
// MemberEvent is triggered when a user is added as a collaborator to a repository.
|
|
|
|
// The Webhook event name is "member".
|
|
|
|
//
|
|
|
|
// GitHub docs: https://developer.github.com/v3/activity/events/types/#memberevent
|
|
|
|
type MemberEvent struct { |
|
|
|
// Action is the action that was performed. Possible value is: "added".
|
|
|
|
Action *string `json:"action,omitempty"` |
|
|
|
Member *User `json:"member,omitempty"` |
|
|
|
|
|
|
|
// The following fields are only populated by Webhook events.
|
|
|
|
Repo *Repository `json:"repository,omitempty"` |
|
|
|
Sender *User `json:"sender,omitempty"` |
|
|
|
} |
|
|
|
|
|
|
|
// MembershipEvent is triggered when a user is added or removed from a team.
|
|
|
|
// The Webhook event name is "membership".
|
|
|
|
//
|
|
|
|
// Events of this type are not visible in timelines, they are only used to
|
|
|
|
// trigger organization webhooks.
|
|
|
|
//
|
|
|
|
// GitHub docs: https://developer.github.com/v3/activity/events/types/#membershipevent
|
|
|
|
type MembershipEvent struct { |
|
|
|
// Action is the action that was performed. Possible values are: "added", "removed".
|
|
|
|
Action *string `json:"action,omitempty"` |
|
|
|
// Scope is the scope of the membership. Possible value is: "team".
|
|
|
|
Scope *string `json:"scope,omitempty"` |
|
|
|
Member *User `json:"member,omitempty"` |
|
|
|
Team *Team `json:"team,omitempty"` |
|
|
|
|
|
|
|
// The following fields are only populated by Webhook events.
|
|
|
|
Org *Organization `json:"organization,omitempty"` |
|
|
|
Sender *User `json:"sender,omitempty"` |
|
|
|
} |
|
|
|
|
|
|
|
// PageBuildEvent represents an attempted build of a GitHub Pages site, whether
|
|
|
|
// successful or not.
|
|
|
|
// The Webhook event name is "page_build".
|
|
|
|
//
|
|
|
|
// This event is triggered on push to a GitHub Pages enabled branch (gh-pages
|
|
|
|
// for project pages, master for user and organization pages).
|
|
|
|
//
|
|
|
|
// Events of this type are not visible in timelines, they are only used to trigger hooks.
|
|
|
|
//
|
|
|
|
// GitHub docs: https://developer.github.com/v3/activity/events/types/#pagebuildevent
|
|
|
|
type PageBuildEvent struct { |
|
|
|
Build *PagesBuild `json:"build,omitempty"` |
|
|
|
|
|
|
|
// The following fields are only populated by Webhook events.
|
|
|
|
ID *string `json:"id,omitempty"` |
|
|
|
Repo *Repository `json:"repository,omitempty"` |
|
|
|
Sender *User `json:"sender,omitempty"` |
|
|
|
} |
|
|
|
|
|
|
|
// PublicEvent is triggered when a private repository is open sourced.
|
|
|
|
// According to GitHub: "Without a doubt: the best GitHub event."
|
|
|
|
// The Webhook event name is "public".
|
|
|
|
//
|
|
|
|
// GitHub docs: https://developer.github.com/v3/activity/events/types/#publicevent
|
|
|
|
type PublicEvent struct { |
|
|
|
// The following fields are only populated by Webhook events.
|
|
|
|
Repo *Repository `json:"repository,omitempty"` |
|
|
|
Sender *User `json:"sender,omitempty"` |
|
|
|
} |
|
|
|
|
|
|
|
// PullRequestEvent is triggered when a pull request is assigned, unassigned,
|
|
|
|
// labeled, unlabeled, opened, closed, reopened, or synchronized.
|
|
|
|
// The Webhook event name is "pull_request".
|
|
|
|
//
|
|
|
|
// GitHub docs: https://developer.github.com/v3/activity/events/types/#pullrequestevent
|
|
|
|
type PullRequestEvent struct { |
|
|
|
// Action is the action that was performed. Possible values are: "assigned",
|
|
|
|
// "unassigned", "labeled", "unlabeled", "opened", "closed", or "reopened",
|
|
|
|
// "synchronize". If the action is "closed" and the merged key is false, the
|
|
|
|
// pull request was closed with unmerged commits. If the action is "closed" and
|
|
|
|
// the merged key is true, the pull request was merged.
|
|
|
|
Action *string `json:"action,omitempty"` |
|
|
|
Number *int `json:"number,omitempty"` |
|
|
|
PullRequest *PullRequest `json:"pull_request,omitempty"` |
|
|
|
|
|
|
|
// The following fields are only populated by Webhook events.
|
|
|
|
Repo *Repository `json:"repository,omitempty"` |
|
|
|
Sender *User `json:"sender,omitempty"` |
|
|
|
} |
|
|
|
|
|
|
|
// PullRequestReviewCommentEvent is triggered when a comment is created on a
|
|
|
|
// portion of the unified diff of a pull request.
|
|
|
|
// The Webhook event name is "pull_request_review_comment".
|
|
|
|
//
|
|
|
|
// GitHub docs: https://developer.github.com/v3/activity/events/types/#pullrequestreviewcommentevent
|
|
|
|
type PullRequestReviewCommentEvent struct { |
|
|
|
// Action is the action that was performed on the comment.
|
|
|
|
// Possible value is: "created".
|
|
|
|
Action *string `json:"action,omitempty"` |
|
|
|
PullRequest *PullRequest `json:"pull_request,omitempty"` |
|
|
|
Comment *PullRequestComment `json:"comment,omitempty"` |
|
|
|
|
|
|
|
// The following fields are only populated by Webhook events.
|
|
|
|
Repo *Repository `json:"repository,omitempty"` |
|
|
|
Sender *User `json:"sender,omitempty"` |
|
|
|
} |
|
|
|
|
|
|
|
// PushEvent represents a git push to a GitHub repository.
|
|
|
|
//
|
|
|
|
// GitHub API docs: http://developer.github.com/v3/activity/events/types/#pushevent
|
|
|
|
type PushEvent struct { |
|
|
|
PushID *int `json:"push_id,omitempty"` |
|
|
|
Head *string `json:"head,omitempty"` |
|
|
|
Ref *string `json:"ref,omitempty"` |
|
|
|
Size *int `json:"size,omitempty"` |
|
|
|
Commits []PushEventCommit `json:"commits,omitempty"` |
|
|
|
Repo *PushEventRepository `json:"repository,omitempty"` |
|
|
|
PushID *int `json:"push_id,omitempty"` |
|
|
|
Head *string `json:"head,omitempty"` |
|
|
|
Ref *string `json:"ref,omitempty"` |
|
|
|
Size *int `json:"size,omitempty"` |
|
|
|
Commits []PushEventCommit `json:"commits,omitempty"` |
|
|
|
Repo *PushEventRepository `json:"repository,omitempty"` |
|
|
|
Before *string `json:"before,omitempty"` |
|
|
|
DistinctSize *int `json:"distinct_size,omitempty"` |
|
|
|
|
|
|
|
// The following fields are only populated by Webhook events.
|
|
|
|
After *string `json:"after,omitempty"` |
|
|
|
Created *bool `json:"created,omitempty"` |
|
|
|
Deleted *bool `json:"deleted,omitempty"` |
|
|
|
Forced *bool `json:"forced,omitempty"` |
|
|
|
BaseRef *string `json:"base_ref,omitempty"` |
|
|
|
Compare *string `json:"compare,omitempty"` |
|
|
|
HeadCommit *PushEventCommit `json:"head_commit,omitempty"` |
|
|
|
Pusher *User `json:"pusher,omitempty"` |
|
|
|
Sender *User `json:"sender,omitempty"` |
|
|
|
} |
|
|
|
|
|
|
|
func (p PushEvent) String() string { |
|
|
|
@ -73,34 +349,89 @@ type PushEventRepoOwner struct { |
|
|
|
Email *string `json:"email,omitempty"` |
|
|
|
} |
|
|
|
|
|
|
|
//PullRequestEvent represents the payload delivered by PullRequestEvent webhook
|
|
|
|
type PullRequestEvent struct { |
|
|
|
Action *string `json:"action,omitempty"` |
|
|
|
Number *int `json:"number,omitempty"` |
|
|
|
PullRequest *PullRequest `json:"pull_request,omitempty"` |
|
|
|
// ReleaseEvent is triggered when a release is published.
|
|
|
|
// The Webhook event name is "release".
|
|
|
|
//
|
|
|
|
// GitHub docs: https://developer.github.com/v3/activity/events/types/#releaseevent
|
|
|
|
type ReleaseEvent struct { |
|
|
|
// Action is the action that was performed. Possible value is: "published".
|
|
|
|
Action *string `json:"action,omitempty"` |
|
|
|
Release *RepositoryRelease `json:"release,omitempty"` |
|
|
|
|
|
|
|
// The following fields are only populated by Webhook events.
|
|
|
|
Repo *Repository `json:"repository,omitempty"` |
|
|
|
Sender *User `json:"sender,omitempty"` |
|
|
|
} |
|
|
|
|
|
|
|
// IssueActivityEvent represents the payload delivered by Issue webhook
|
|
|
|
type IssueActivityEvent struct { |
|
|
|
Action *string `json:"action,omitempty"` |
|
|
|
Issue *Issue `json:"issue,omitempty"` |
|
|
|
// RepositoryEvent is triggered when a repository is created.
|
|
|
|
// The Webhook event name is "repository".
|
|
|
|
//
|
|
|
|
// Events of this type are not visible in timelines, they are only used to
|
|
|
|
// trigger organization webhooks.
|
|
|
|
//
|
|
|
|
// GitHub docs: https://developer.github.com/v3/activity/events/types/#repositoryevent
|
|
|
|
type RepositoryEvent struct { |
|
|
|
// Action is the action that was performed. Possible value is: "created".
|
|
|
|
Action *string `json:"action,omitempty"` |
|
|
|
Repo *Repository `json:"repository,omitempty"` |
|
|
|
|
|
|
|
// The following fields are only populated by Webhook events.
|
|
|
|
Repo *Repository `json:"repository,omitempty"` |
|
|
|
Sender *User `json:"sender,omitempty"` |
|
|
|
Org *Organization `json:"organization,omitempty"` |
|
|
|
Sender *User `json:"sender,omitempty"` |
|
|
|
} |
|
|
|
|
|
|
|
// IssueCommentEvent represents the payload delivered by IssueComment webhook
|
|
|
|
// StatusEvent is triggered when the status of a Git commit changes.
|
|
|
|
// The Webhook event name is "status".
|
|
|
|
//
|
|
|
|
// This webhook also gets fired for comments on pull requests
|
|
|
|
type IssueCommentEvent struct { |
|
|
|
Action *string `json:"action,omitempty"` |
|
|
|
Issue *Issue `json:"issue,omitempty"` |
|
|
|
Comment *IssueComment `json:"comment,omitempty"` |
|
|
|
// Events of this type are not visible in timelines, they are only used to
|
|
|
|
// trigger hooks.
|
|
|
|
//
|
|
|
|
// GitHub docs: https://developer.github.com/v3/activity/events/types/#statusevent
|
|
|
|
type StatusEvent struct { |
|
|
|
SHA *string `json:"sha,omitempty"` |
|
|
|
// State is the new state. Possible values are: "pending", "success", "failure", "error".
|
|
|
|
State *string `json:"state,omitempty"` |
|
|
|
Description *string `json:"description,omitempty"` |
|
|
|
TargetURL *string `json:"target_url,omitempty"` |
|
|
|
Branches []*Branch `json:"branches,omitempty"` |
|
|
|
|
|
|
|
// The following fields are only populated by Webhook events.
|
|
|
|
ID *int `json:"id,omitempty"` |
|
|
|
Name *string `json:"name,omitempty"` |
|
|
|
Context *string `json:"context,omitempty"` |
|
|
|
Commit *PushEventCommit `json:"commit,omitempty"` |
|
|
|
CreatedAt *Timestamp `json:"created_at,omitempty"` |
|
|
|
UpdatedAt *Timestamp `json:"updated_at,omitempty"` |
|
|
|
Repo *Repository `json:"repository,omitempty"` |
|
|
|
Sender *User `json:"sender,omitempty"` |
|
|
|
} |
|
|
|
|
|
|
|
// TeamAddEvent is triggered when a repository is added to a team.
|
|
|
|
// The Webhook event name is "team_add".
|
|
|
|
//
|
|
|
|
// Events of this type are not visible in timelines. These events are only used
|
|
|
|
// to trigger hooks.
|
|
|
|
//
|
|
|
|
// GitHub docs: https://developer.github.com/v3/activity/events/types/#teamaddevent
|
|
|
|
type TeamAddEvent struct { |
|
|
|
Team *Team `json:"team,omitempty"` |
|
|
|
Repo *Repository `json:"repository,omitempty"` |
|
|
|
|
|
|
|
// The following fields are only populated by Webhook events.
|
|
|
|
Org *Organization `json:"organization,omitempty"` |
|
|
|
Sender *User `json:"sender,omitempty"` |
|
|
|
} |
|
|
|
|
|
|
|
// WatchEvent is related to starring a repository, not watching. See this API
|
|
|
|
// blog post for an explanation: https://developer.github.com/changes/2012-09-05-watcher-api/
|
|
|
|
//
|
|
|
|
// The event’s actor is the user who starred a repository, and the event’s
|
|
|
|
// repository is the repository that was starred.
|
|
|
|
//
|
|
|
|
// GitHub docs: https://developer.github.com/v3/activity/events/types/#watchevent
|
|
|
|
type WatchEvent struct { |
|
|
|
// Action is the action that was performed. Possible value is: "started".
|
|
|
|
Action *string `json:"action,omitempty"` |
|
|
|
|
|
|
|
// The following fields are only populated by Webhook events.
|
|
|
|
Repo *Repository `json:"repository,omitempty"` |
|
|
|
|