github.com/go-playground/webhooks/v6@v6.3.0/github/payload.go (about)

     1  package github
     2  
     3  import "time"
     4  
     5  // CheckRunPayload contains the information for GitHub's check_run hook event
     6  type CheckRunPayload struct {
     7  	Action   string `json:"action"`
     8  	CheckRun struct {
     9  		ID          int64     `json:"id"`
    10  		NodeID      string    `json:"node_id"`
    11  		Name        string    `json:"name"`
    12  		HeadSHA     string    `json:"head_sha"`
    13  		Status      string    `json:"status"`
    14  		Conclusion  string    `json:"conclusion"`
    15  		URL         string    `json:"url"`
    16  		HTMLURL     string    `json:"html_url"`
    17  		StartedAt   time.Time `json:"started_at"`
    18  		CompletedAt time.Time `json:"completed_at"`
    19  		Output      struct {
    20  			Title            string `json:"title"`
    21  			Summary          string `json:"summary"`
    22  			Text             string `json:"text"`
    23  			AnnotationsCount int64  `json:"annotations_count"`
    24  			AnnotationsURL   string `json:"annotations_url"`
    25  		}
    26  		CheckSuite struct {
    27  			ID           int64                `json:"id"`
    28  			HeadBranch   string               `json:"head_branch"`
    29  			HeadSHA      string               `json:"head_sha"`
    30  			Status       string               `json:"status"`
    31  			Conclusion   string               `json:"conclusion"`
    32  			URL          string               `json:"url"`
    33  			Before       string               `json:"before"`
    34  			After        string               `json:"after"`
    35  			PullRequests []PullRequestPayload `json:"pull_requests"`
    36  			App          struct {
    37  				ID     int64  `json:"id"`
    38  				NodeID string `json:"node_id"`
    39  				Owner  struct {
    40  					Login             string `json:"login"`
    41  					ID                int64  `json:"id"`
    42  					NodeID            string `json:"node_id"`
    43  					AvatarURL         string `json:"avatar_url"`
    44  					GravatarID        string `json:"gravatar_id"`
    45  					URL               string `json:"url"`
    46  					HTMLURL           string `json:"html_url"`
    47  					FollowersURL      string `json:"followers_url"`
    48  					FollowingURL      string `json:"following_url"`
    49  					GistsURL          string `json:"gists_url"`
    50  					StarredURL        string `json:"starred_url"`
    51  					SubscriptionsURL  string `json:"subscriptions_url"`
    52  					OrganizationsURL  string `json:"organizations_url"`
    53  					ReposURL          string `json:"repos_url"`
    54  					EventsURL         string `json:"events_url"`
    55  					ReceivedEventsURL string `json:"received_events_url"`
    56  					Type              string `json:"type"`
    57  					SiteAdmin         bool   `json:"site_admin"`
    58  				} `json:"owner"`
    59  				Name        string `json:"name"`
    60  				Description string `json:"description"`
    61  				ExternalURL string `json:"external_url"`
    62  				HTMLURL     string `json:"html_url"`
    63  				CreatedAt   string `json:"created_at"`
    64  				UpdatedAt   string `json:"updated_at"`
    65  			} `json:"app"`
    66  			CreatedAt time.Time `json:"created_at"`
    67  			UpdatedAt time.Time `json:"updated_at"`
    68  		} `json:"check_suite"`
    69  		App struct {
    70  			ID     int64  `json:"id"`
    71  			NodeID string `json:"node_id"`
    72  			Owner  struct {
    73  				Login             string `json:"login"`
    74  				ID                int64  `json:"id"`
    75  				NodeID            string `json:"node_id"`
    76  				AvatarURL         string `json:"avatar_url"`
    77  				GravatarID        string `json:"gravatar_id"`
    78  				URL               string `json:"url"`
    79  				HTMLURL           string `json:"html_url"`
    80  				FollowersURL      string `json:"followers_url"`
    81  				FollowingURL      string `json:"following_url"`
    82  				GistsURL          string `json:"gists_url"`
    83  				StarredURL        string `json:"starred_url"`
    84  				SubscriptionsURL  string `json:"subscriptions_url"`
    85  				OrganizationsURL  string `json:"organizations_url"`
    86  				ReposURL          string `json:"repos_url"`
    87  				EventsURL         string `json:"events_url"`
    88  				ReceivedEventsURL string `json:"received_events_url"`
    89  				Type              string `json:"type"`
    90  				SiteAdmin         bool   `json:"site_admin"`
    91  			} `json:"owner"`
    92  			Name        string `json:"name"`
    93  			Description string `json:"description"`
    94  			ExternalURL string `json:"external_url"`
    95  			HTMLURL     string `json:"html_url"`
    96  			CreatedAt   string `json:"created_at"`
    97  			UpdatedAt   string `json:"updated_at"`
    98  		} `json:"app"`
    99  		PullRequests []PullRequestPayload `json:"pull_requests"`
   100  	} `json:"check_run"`
   101  	Repository struct {
   102  		ID       int64  `json:"id"`
   103  		NodeID   string `json:"node_id"`
   104  		Name     string `json:"name"`
   105  		FullName string `json:"full_name"`
   106  		Owner    struct {
   107  			Login             string `json:"login"`
   108  			ID                int64  `json:"id"`
   109  			NodeID            string `json:"node_id"`
   110  			AvatarURL         string `json:"avatar_url"`
   111  			GravatarID        string `json:"gravatar_id"`
   112  			URL               string `json:"url"`
   113  			HTMLURL           string `json:"html_url"`
   114  			FollowersURL      string `json:"followers_url"`
   115  			FollowingURL      string `json:"following_url"`
   116  			GistsURL          string `json:"gists_url"`
   117  			StarredURL        string `json:"starred_url"`
   118  			SubscriptionsURL  string `json:"subscriptions_url"`
   119  			OrganizationsURL  string `json:"organizations_url"`
   120  			ReposURL          string `json:"repos_url"`
   121  			EventsURL         string `json:"events_url"`
   122  			ReceivedEventsURL string `json:"received_events_url"`
   123  			Type              string `json:"type"`
   124  			SiteAdmin         bool   `json:"site_admin"`
   125  		} `json:"owner"`
   126  		Private          bool      `json:"private"`
   127  		HTMLURL          string    `json:"html_url"`
   128  		Description      string    `json:"description"`
   129  		Fork             bool      `json:"fork"`
   130  		URL              string    `json:"url"`
   131  		ForksURL         string    `json:"forks_url"`
   132  		KeysURL          string    `json:"keys_url"`
   133  		CollaboratorsURL string    `json:"collaborators_url"`
   134  		TeamsURL         string    `json:"teams_url"`
   135  		HooksURL         string    `json:"hooks_url"`
   136  		IssueEventsURL   string    `json:"issue_events_url"`
   137  		EventsURL        string    `json:"events_url"`
   138  		AssigneesURL     string    `json:"assignees_url"`
   139  		BranchesURL      string    `json:"branches_url"`
   140  		TagsURL          string    `json:"tags_url"`
   141  		BlobsURL         string    `json:"blobs_url"`
   142  		GitTagsURL       string    `json:"git_tags_url"`
   143  		GitRefsURL       string    `json:"git_refs_url"`
   144  		TreesURL         string    `json:"trees_url"`
   145  		StatusesURL      string    `json:"statuses_url"`
   146  		LanguagesURL     string    `json:"languages_url"`
   147  		StargazersURL    string    `json:"stargazers_url"`
   148  		ContributorsURL  string    `json:"contributors_url"`
   149  		SubscribersURL   string    `json:"subscribers_url"`
   150  		SubscriptionURL  string    `json:"subscription_url"`
   151  		CommitsURL       string    `json:"commits_url"`
   152  		GitCommitsURL    string    `json:"git_commits_url"`
   153  		CommentsURL      string    `json:"comments_url"`
   154  		IssueCommentURL  string    `json:"issue_comment_url"`
   155  		ContentsURL      string    `json:"contents_url"`
   156  		CompareURL       string    `json:"compare_url"`
   157  		MergesURL        string    `json:"merges_url"`
   158  		ArchiveURL       string    `json:"archive_url"`
   159  		DownloadsURL     string    `json:"downloads_url"`
   160  		IssuesURL        string    `json:"issues_url"`
   161  		PullsURL         string    `json:"pulls_url"`
   162  		MilestonesURL    string    `json:"milestones_url"`
   163  		NotificationsURL string    `json:"notifications_url"`
   164  		LabelsURL        string    `json:"labels_url"`
   165  		ReleasesURL      string    `json:"releases_url"`
   166  		CreatedAt        time.Time `json:"created_at"`
   167  		UpdatedAt        time.Time `json:"updated_at"`
   168  		PushedAt         time.Time `json:"pushed_at"`
   169  		GitURL           string    `json:"git_url"`
   170  		SSHURL           string    `json:"ssh_url"`
   171  		CloneURL         string    `json:"clone_url"`
   172  		SvnURL           string    `json:"svn_url"`
   173  		Homepage         *string   `json:"homepage"`
   174  		Size             int64     `json:"size"`
   175  		StargazersCount  int64     `json:"stargazers_count"`
   176  		WatchersCount    int64     `json:"watchers_count"`
   177  		Language         *string   `json:"language"`
   178  		HasIssues        bool      `json:"has_issues"`
   179  		HasDownloads     bool      `json:"has_downloads"`
   180  		HasWiki          bool      `json:"has_wiki"`
   181  		HasPages         bool      `json:"has_pages"`
   182  		ForksCount       int64     `json:"forks_count"`
   183  		MirrorURL        *string   `json:"mirror_url"`
   184  		OpenIssuesCount  int64     `json:"open_issues_count"`
   185  		Forks            int64     `json:"forks"`
   186  		OpenIssues       int64     `json:"open_issues"`
   187  		Watchers         int64     `json:"watchers"`
   188  		DefaultBranch    string    `json:"default_branch"`
   189  	} `json:"repository"`
   190  	Installation struct {
   191  		ID int64 `json:"id"`
   192  	} `json:"installation,omitempty"`
   193  	Sender struct {
   194  		Login             string `json:"login"`
   195  		ID                int64  `json:"id"`
   196  		NodeID            string `json:"node_id"`
   197  		AvatarURL         string `json:"avatar_url"`
   198  		GravatarID        string `json:"gravatar_id"`
   199  		URL               string `json:"url"`
   200  		HTMLURL           string `json:"html_url"`
   201  		FollowersURL      string `json:"followers_url"`
   202  		FollowingURL      string `json:"following_url"`
   203  		GistsURL          string `json:"gists_url"`
   204  		StarredURL        string `json:"starred_url"`
   205  		SubscriptionsURL  string `json:"subscriptions_url"`
   206  		OrganizationsURL  string `json:"organizations_url"`
   207  		ReposURL          string `json:"repos_url"`
   208  		EventsURL         string `json:"events_url"`
   209  		ReceivedEventsURL string `json:"received_events_url"`
   210  		Type              string `json:"type"`
   211  		SiteAdmin         bool   `json:"site_admin"`
   212  	} `json:"sender"`
   213  }
   214  
   215  // CheckSuitePayload contains the information for GitHub's check_suite hook event
   216  type CheckSuitePayload struct {
   217  	Action     string `json:"action"`
   218  	CheckSuite struct {
   219  		ID           int64                `json:"id"`
   220  		NodeID       string               `json:"node_id"`
   221  		HeadBranch   string               `json:"head_branch"`
   222  		HeadSHA      string               `json:"head_sha"`
   223  		Status       string               `json:"status"`
   224  		Conclusion   string               `json:"conclusion"`
   225  		URL          string               `json:"url"`
   226  		Before       string               `json:"before"`
   227  		After        string               `json:"after"`
   228  		PullRequests []PullRequestPayload `json:"pull_requests"`
   229  		App          struct {
   230  			ID     int64  `json:"id"`
   231  			NodeID string `json:"node_id"`
   232  			Owner  struct {
   233  				Login             string `json:"login"`
   234  				ID                int64  `json:"id"`
   235  				NodeID            string `json:"node_id"`
   236  				AvatarURL         string `json:"avatar_url"`
   237  				GravatarID        string `json:"gravatar_id"`
   238  				URL               string `json:"url"`
   239  				HTMLURL           string `json:"html_url"`
   240  				FollowersURL      string `json:"followers_url"`
   241  				FollowingURL      string `json:"following_url"`
   242  				GistsURL          string `json:"gists_url"`
   243  				StarredURL        string `json:"starred_url"`
   244  				SubscriptionsURL  string `json:"subscriptions_url"`
   245  				OrganizationsURL  string `json:"organizations_url"`
   246  				ReposURL          string `json:"repos_url"`
   247  				EventsURL         string `json:"events_url"`
   248  				ReceivedEventsURL string `json:"received_events_url"`
   249  				Type              string `json:"type"`
   250  				SiteAdmin         bool   `json:"site_admin"`
   251  			} `json:"owner"`
   252  			Name        string `json:"name"`
   253  			Description string `json:"description"`
   254  			ExternalURL string `json:"external_url"`
   255  			HTMLURL     string `json:"html_url"`
   256  			CreatedAt   string `json:"created_at"`
   257  			UpdatedAt   string `json:"updated_at"`
   258  		} `json:"app"`
   259  		CreatedAt            time.Time `json:"created_at"`
   260  		UpdatedAt            time.Time `json:"updated_at"`
   261  		LatestCheckRunsCount int64     `json:"latest_check_runs_count"`
   262  		CheckRunsURL         string    `json:"check_runs_url"`
   263  		HeadCommit           struct {
   264  			ID        string    `json:"id"`
   265  			TreeID    string    `json:"tree_id"`
   266  			Message   string    `json:"message"`
   267  			Timestamp time.Time `json:"timestamp"`
   268  			Author    struct {
   269  				Name  string `json:"name"`
   270  				Email string `json:"email"`
   271  			} `json:"author"`
   272  			Commiter struct {
   273  				Name  string `json:"name"`
   274  				Email string `json:"email"`
   275  			} `json:"commiter"`
   276  		} `json:"head_commit"`
   277  	} `json:"check_suite"`
   278  	Repository struct {
   279  		ID       int64  `json:"id"`
   280  		Name     string `json:"name"`
   281  		FullName string `json:"full_name"`
   282  		Owner    struct {
   283  			Login             string `json:"login"`
   284  			ID                int64  `json:"id"`
   285  			AvatarURL         string `json:"avatar_url"`
   286  			GravatarID        string `json:"gravatar_id"`
   287  			URL               string `json:"url"`
   288  			HTMLURL           string `json:"html_url"`
   289  			FollowersURL      string `json:"followers_url"`
   290  			FollowingURL      string `json:"following_url"`
   291  			GistsURL          string `json:"gists_url"`
   292  			StarredURL        string `json:"starred_url"`
   293  			SubscriptionsURL  string `json:"subscriptions_url"`
   294  			OrganizationsURL  string `json:"organizations_url"`
   295  			ReposURL          string `json:"repos_url"`
   296  			EventsURL         string `json:"events_url"`
   297  			ReceivedEventsURL string `json:"received_events_url"`
   298  			Type              string `json:"type"`
   299  			SiteAdmin         bool   `json:"site_admin"`
   300  		} `json:"owner"`
   301  		Private          bool      `json:"private"`
   302  		HTMLURL          string    `json:"html_url"`
   303  		Description      string    `json:"description"`
   304  		Fork             bool      `json:"fork"`
   305  		URL              string    `json:"url"`
   306  		ForksURL         string    `json:"forks_url"`
   307  		KeysURL          string    `json:"keys_url"`
   308  		CollaboratorsURL string    `json:"collaborators_url"`
   309  		TeamsURL         string    `json:"teams_url"`
   310  		HooksURL         string    `json:"hooks_url"`
   311  		IssueEventsURL   string    `json:"issue_events_url"`
   312  		EventsURL        string    `json:"events_url"`
   313  		AssigneesURL     string    `json:"assignees_url"`
   314  		BranchesURL      string    `json:"branches_url"`
   315  		TagsURL          string    `json:"tags_url"`
   316  		BlobsURL         string    `json:"blobs_url"`
   317  		GitTagsURL       string    `json:"git_tags_url"`
   318  		GitRefsURL       string    `json:"git_refs_url"`
   319  		TreesURL         string    `json:"trees_url"`
   320  		StatusesURL      string    `json:"statuses_url"`
   321  		LanguagesURL     string    `json:"languages_url"`
   322  		StargazersURL    string    `json:"stargazers_url"`
   323  		ContributorsURL  string    `json:"contributors_url"`
   324  		SubscribersURL   string    `json:"subscribers_url"`
   325  		SubscriptionURL  string    `json:"subscription_url"`
   326  		CommitsURL       string    `json:"commits_url"`
   327  		GitCommitsURL    string    `json:"git_commits_url"`
   328  		CommentsURL      string    `json:"comments_url"`
   329  		IssueCommentURL  string    `json:"issue_comment_url"`
   330  		ContentsURL      string    `json:"contents_url"`
   331  		CompareURL       string    `json:"compare_url"`
   332  		MergesURL        string    `json:"merges_url"`
   333  		ArchiveURL       string    `json:"archive_url"`
   334  		DownloadsURL     string    `json:"downloads_url"`
   335  		IssuesURL        string    `json:"issues_url"`
   336  		PullsURL         string    `json:"pulls_url"`
   337  		MilestonesURL    string    `json:"milestones_url"`
   338  		NotificationsURL string    `json:"notifications_url"`
   339  		LabelsURL        string    `json:"labels_url"`
   340  		ReleasesURL      string    `json:"releases_url"`
   341  		CreatedAt        time.Time `json:"created_at"`
   342  		UpdatedAt        time.Time `json:"updated_at"`
   343  		PushedAt         time.Time `json:"pushed_at"`
   344  		GitURL           string    `json:"git_url"`
   345  		SSHURL           string    `json:"ssh_url"`
   346  		CloneURL         string    `json:"clone_url"`
   347  		SvnURL           string    `json:"svn_url"`
   348  		Homepage         *string   `json:"homepage"`
   349  		Size             int64     `json:"size"`
   350  		StargazersCount  int64     `json:"stargazers_count"`
   351  		WatchersCount    int64     `json:"watchers_count"`
   352  		Language         *string   `json:"language"`
   353  		HasIssues        bool      `json:"has_issues"`
   354  		HasDownloads     bool      `json:"has_downloads"`
   355  		HasWiki          bool      `json:"has_wiki"`
   356  		HasPages         bool      `json:"has_pages"`
   357  		ForksCount       int64     `json:"forks_count"`
   358  		MirrorURL        *string   `json:"mirror_url"`
   359  		OpenIssuesCount  int64     `json:"open_issues_count"`
   360  		Forks            int64     `json:"forks"`
   361  		OpenIssues       int64     `json:"open_issues"`
   362  		Watchers         int64     `json:"watchers"`
   363  		DefaultBranch    string    `json:"default_branch"`
   364  	} `json:"repository"`
   365  	Installation struct {
   366  		ID int64 `json:"id"`
   367  	} `json:"installation,omitempty"`
   368  	Sender struct {
   369  		Login             string `json:"login"`
   370  		ID                int64  `json:"id"`
   371  		NodeID            string `json:"node_id"`
   372  		AvatarURL         string `json:"avatar_url"`
   373  		GravatarID        string `json:"gravatar_id"`
   374  		URL               string `json:"url"`
   375  		HTMLURL           string `json:"html_url"`
   376  		FollowersURL      string `json:"followers_url"`
   377  		FollowingURL      string `json:"following_url"`
   378  		GistsURL          string `json:"gists_url"`
   379  		StarredURL        string `json:"starred_url"`
   380  		SubscriptionsURL  string `json:"subscriptions_url"`
   381  		OrganizationsURL  string `json:"organizations_url"`
   382  		ReposURL          string `json:"repos_url"`
   383  		EventsURL         string `json:"events_url"`
   384  		ReceivedEventsURL string `json:"received_events_url"`
   385  		Type              string `json:"type"`
   386  		SiteAdmin         bool   `json:"site_admin"`
   387  	} `json:"sender"`
   388  }
   389  
   390  // CommitCommentPayload contains the information for GitHub's commit_comment hook event
   391  type CommitCommentPayload struct {
   392  	Action  string `json:"action"`
   393  	Comment struct {
   394  		URL     string `json:"url"`
   395  		HTMLURL string `json:"html_url"`
   396  		ID      int64  `json:"id"`
   397  		NodeID  string `json:"node_id"`
   398  		User    struct {
   399  			Login             string `json:"login"`
   400  			ID                int64  `json:"id"`
   401  			NodeID            string `json:"node_id"`
   402  			AvatarURL         string `json:"avatar_url"`
   403  			GravatarID        string `json:"gravatar_id"`
   404  			URL               string `json:"url"`
   405  			HTMLURL           string `json:"html_url"`
   406  			FollowersURL      string `json:"followers_url"`
   407  			FollowingURL      string `json:"following_url"`
   408  			GistsURL          string `json:"gists_url"`
   409  			StarredURL        string `json:"starred_url"`
   410  			SubscriptionsURL  string `json:"subscriptions_url"`
   411  			OrganizationsURL  string `json:"organizations_url"`
   412  			ReposURL          string `json:"repos_url"`
   413  			EventsURL         string `json:"events_url"`
   414  			ReceivedEventsURL string `json:"received_events_url"`
   415  			Type              string `json:"type"`
   416  			SiteAdmin         bool   `json:"site_admin"`
   417  		} `json:"user"`
   418  		Position          *int64    `json:"position"`
   419  		Line              *int64    `json:"line"`
   420  		Path              *string   `json:"path"`
   421  		CommitID          string    `json:"commit_id"`
   422  		CreatedAt         time.Time `json:"created_at"`
   423  		UpdatedAt         time.Time `json:"updated_at"`
   424  		Body              string    `json:"body"`
   425  		AuthorAssociation string    `json:"author_association"`
   426  	} `json:"comment"`
   427  	Repository struct {
   428  		ID       int64  `json:"id"`
   429  		NodeID   string `json:"node_id"`
   430  		Name     string `json:"name"`
   431  		FullName string `json:"full_name"`
   432  		Owner    struct {
   433  			Login             string `json:"login"`
   434  			ID                int64  `json:"id"`
   435  			NodeID            string `json:"node_id"`
   436  			AvatarURL         string `json:"avatar_url"`
   437  			GravatarID        string `json:"gravatar_id"`
   438  			URL               string `json:"url"`
   439  			HTMLURL           string `json:"html_url"`
   440  			FollowersURL      string `json:"followers_url"`
   441  			FollowingURL      string `json:"following_url"`
   442  			GistsURL          string `json:"gists_url"`
   443  			StarredURL        string `json:"starred_url"`
   444  			SubscriptionsURL  string `json:"subscriptions_url"`
   445  			OrganizationsURL  string `json:"organizations_url"`
   446  			ReposURL          string `json:"repos_url"`
   447  			EventsURL         string `json:"events_url"`
   448  			ReceivedEventsURL string `json:"received_events_url"`
   449  			Type              string `json:"type"`
   450  			SiteAdmin         bool   `json:"site_admin"`
   451  		} `json:"owner"`
   452  		Private          bool      `json:"private"`
   453  		HTMLURL          string    `json:"html_url"`
   454  		Description      string    `json:"description"`
   455  		Fork             bool      `json:"fork"`
   456  		URL              string    `json:"url"`
   457  		ForksURL         string    `json:"forks_url"`
   458  		KeysURL          string    `json:"keys_url"`
   459  		CollaboratorsURL string    `json:"collaborators_url"`
   460  		TeamsURL         string    `json:"teams_url"`
   461  		HooksURL         string    `json:"hooks_url"`
   462  		IssueEventsURL   string    `json:"issue_events_url"`
   463  		EventsURL        string    `json:"events_url"`
   464  		AssigneesURL     string    `json:"assignees_url"`
   465  		BranchesURL      string    `json:"branches_url"`
   466  		TagsURL          string    `json:"tags_url"`
   467  		BlobsURL         string    `json:"blobs_url"`
   468  		GitTagsURL       string    `json:"git_tags_url"`
   469  		GitRefsURL       string    `json:"git_refs_url"`
   470  		TreesURL         string    `json:"trees_url"`
   471  		StatusesURL      string    `json:"statuses_url"`
   472  		LanguagesURL     string    `json:"languages_url"`
   473  		StargazersURL    string    `json:"stargazers_url"`
   474  		ContributorsURL  string    `json:"contributors_url"`
   475  		SubscribersURL   string    `json:"subscribers_url"`
   476  		SubscriptionURL  string    `json:"subscription_url"`
   477  		CommitsURL       string    `json:"commits_url"`
   478  		GitCommitsURL    string    `json:"git_commits_url"`
   479  		CommentsURL      string    `json:"comments_url"`
   480  		IssueCommentURL  string    `json:"issue_comment_url"`
   481  		ContentsURL      string    `json:"contents_url"`
   482  		CompareURL       string    `json:"compare_url"`
   483  		MergesURL        string    `json:"merges_url"`
   484  		ArchiveURL       string    `json:"archive_url"`
   485  		DownloadsURL     string    `json:"downloads_url"`
   486  		IssuesURL        string    `json:"issues_url"`
   487  		PullsURL         string    `json:"pulls_url"`
   488  		MilestonesURL    string    `json:"milestones_url"`
   489  		NotificationsURL string    `json:"notifications_url"`
   490  		LabelsURL        string    `json:"labels_url"`
   491  		ReleasesURL      string    `json:"releases_url"`
   492  		CreatedAt        time.Time `json:"created_at"`
   493  		UpdatedAt        time.Time `json:"updated_at"`
   494  		PushedAt         time.Time `json:"pushed_at"`
   495  		GitURL           string    `json:"git_url"`
   496  		SSHURL           string    `json:"ssh_url"`
   497  		CloneURL         string    `json:"clone_url"`
   498  		SvnURL           string    `json:"svn_url"`
   499  		Homepage         *string   `json:"homepage"`
   500  		Size             int64     `json:"size"`
   501  		StargazersCount  int64     `json:"stargazers_count"`
   502  		WatchersCount    int64     `json:"watchers_count"`
   503  		Language         *string   `json:"language"`
   504  		HasIssues        bool      `json:"has_issues"`
   505  		HasDownloads     bool      `json:"has_downloads"`
   506  		HasWiki          bool      `json:"has_wiki"`
   507  		HasPages         bool      `json:"has_pages"`
   508  		ForksCount       int64     `json:"forks_count"`
   509  		MirrorURL        *string   `json:"mirror_url"`
   510  		OpenIssuesCount  int64     `json:"open_issues_count"`
   511  		Forks            int64     `json:"forks"`
   512  		OpenIssues       int64     `json:"open_issues"`
   513  		Watchers         int64     `json:"watchers"`
   514  		DefaultBranch    string    `json:"default_branch"`
   515  	} `json:"repository"`
   516  	Sender struct {
   517  		Login             string `json:"login"`
   518  		ID                int64  `json:"id"`
   519  		NodeID            string `json:"node_id"`
   520  		AvatarURL         string `json:"avatar_url"`
   521  		GravatarID        string `json:"gravatar_id"`
   522  		URL               string `json:"url"`
   523  		HTMLURL           string `json:"html_url"`
   524  		FollowersURL      string `json:"followers_url"`
   525  		FollowingURL      string `json:"following_url"`
   526  		GistsURL          string `json:"gists_url"`
   527  		StarredURL        string `json:"starred_url"`
   528  		SubscriptionsURL  string `json:"subscriptions_url"`
   529  		OrganizationsURL  string `json:"organizations_url"`
   530  		ReposURL          string `json:"repos_url"`
   531  		EventsURL         string `json:"events_url"`
   532  		ReceivedEventsURL string `json:"received_events_url"`
   533  		Type              string `json:"type"`
   534  		SiteAdmin         bool   `json:"site_admin"`
   535  	} `json:"sender"`
   536  	Installation *struct {
   537  		ID int64 `json:"id"`
   538  	} `json:"installation"`
   539  }
   540  
   541  // CreatePayload contains the information for GitHub's create hook event
   542  type CreatePayload struct {
   543  	Ref          string `json:"ref"`
   544  	RefType      string `json:"ref_type"`
   545  	MasterBranch string `json:"master_branch"`
   546  	Description  string `json:"description"`
   547  	PusherType   string `json:"pusher_type"`
   548  	Repository   struct {
   549  		ID       int64  `json:"id"`
   550  		NodeID   string `json:"node_id"`
   551  		Name     string `json:"name"`
   552  		FullName string `json:"full_name"`
   553  		Owner    struct {
   554  			Login             string `json:"login"`
   555  			ID                int64  `json:"id"`
   556  			NodeID            string `json:"node_id"`
   557  			AvatarURL         string `json:"avatar_url"`
   558  			GravatarID        string `json:"gravatar_id"`
   559  			URL               string `json:"url"`
   560  			HTMLURL           string `json:"html_url"`
   561  			FollowersURL      string `json:"followers_url"`
   562  			FollowingURL      string `json:"following_url"`
   563  			GistsURL          string `json:"gists_url"`
   564  			StarredURL        string `json:"starred_url"`
   565  			SubscriptionsURL  string `json:"subscriptions_url"`
   566  			OrganizationsURL  string `json:"organizations_url"`
   567  			ReposURL          string `json:"repos_url"`
   568  			EventsURL         string `json:"events_url"`
   569  			ReceivedEventsURL string `json:"received_events_url"`
   570  			Type              string `json:"type"`
   571  			SiteAdmin         bool   `json:"site_admin"`
   572  		} `json:"owner"`
   573  		Private          bool      `json:"private"`
   574  		HTMLURL          string    `json:"html_url"`
   575  		Description      string    `json:"description"`
   576  		Fork             bool      `json:"fork"`
   577  		URL              string    `json:"url"`
   578  		ForksURL         string    `json:"forks_url"`
   579  		KeysURL          string    `json:"keys_url"`
   580  		CollaboratorsURL string    `json:"collaborators_url"`
   581  		TeamsURL         string    `json:"teams_url"`
   582  		HooksURL         string    `json:"hooks_url"`
   583  		IssueEventsURL   string    `json:"issue_events_url"`
   584  		EventsURL        string    `json:"events_url"`
   585  		AssigneesURL     string    `json:"assignees_url"`
   586  		BranchesURL      string    `json:"branches_url"`
   587  		TagsURL          string    `json:"tags_url"`
   588  		BlobsURL         string    `json:"blobs_url"`
   589  		GitTagsURL       string    `json:"git_tags_url"`
   590  		GitRefsURL       string    `json:"git_refs_url"`
   591  		TreesURL         string    `json:"trees_url"`
   592  		StatusesURL      string    `json:"statuses_url"`
   593  		LanguagesURL     string    `json:"languages_url"`
   594  		StargazersURL    string    `json:"stargazers_url"`
   595  		ContributorsURL  string    `json:"contributors_url"`
   596  		SubscribersURL   string    `json:"subscribers_url"`
   597  		SubscriptionURL  string    `json:"subscription_url"`
   598  		CommitsURL       string    `json:"commits_url"`
   599  		GitCommitsURL    string    `json:"git_commits_url"`
   600  		CommentsURL      string    `json:"comments_url"`
   601  		IssueCommentURL  string    `json:"issue_comment_url"`
   602  		ContentsURL      string    `json:"contents_url"`
   603  		CompareURL       string    `json:"compare_url"`
   604  		MergesURL        string    `json:"merges_url"`
   605  		ArchiveURL       string    `json:"archive_url"`
   606  		DownloadsURL     string    `json:"downloads_url"`
   607  		IssuesURL        string    `json:"issues_url"`
   608  		PullsURL         string    `json:"pulls_url"`
   609  		MilestonesURL    string    `json:"milestones_url"`
   610  		NotificationsURL string    `json:"notifications_url"`
   611  		LabelsURL        string    `json:"labels_url"`
   612  		ReleasesURL      string    `json:"releases_url"`
   613  		CreatedAt        time.Time `json:"created_at"`
   614  		UpdatedAt        time.Time `json:"updated_at"`
   615  		PushedAt         time.Time `json:"pushed_at"`
   616  		GitURL           string    `json:"git_url"`
   617  		SSHURL           string    `json:"ssh_url"`
   618  		CloneURL         string    `json:"clone_url"`
   619  		SvnURL           string    `json:"svn_url"`
   620  		Homepage         *string   `json:"homepage"`
   621  		Size             int64     `json:"size"`
   622  		StargazersCount  int64     `json:"stargazers_count"`
   623  		WatchersCount    int64     `json:"watchers_count"`
   624  		Language         *string   `json:"language"`
   625  		HasIssues        bool      `json:"has_issues"`
   626  		HasDownloads     bool      `json:"has_downloads"`
   627  		HasWiki          bool      `json:"has_wiki"`
   628  		HasPages         bool      `json:"has_pages"`
   629  		ForksCount       int64     `json:"forks_count"`
   630  		MirrorURL        *string   `json:"mirror_url"`
   631  		OpenIssuesCount  int64     `json:"open_issues_count"`
   632  		Forks            int64     `json:"forks"`
   633  		OpenIssues       int64     `json:"open_issues"`
   634  		Watchers         int64     `json:"watchers"`
   635  		DefaultBranch    string    `json:"default_branch"`
   636  	} `json:"repository"`
   637  	Sender struct {
   638  		Login             string `json:"login"`
   639  		ID                int64  `json:"id"`
   640  		NodeID            string `json:"node_id"`
   641  		AvatarURL         string `json:"avatar_url"`
   642  		GravatarID        string `json:"gravatar_id"`
   643  		URL               string `json:"url"`
   644  		HTMLURL           string `json:"html_url"`
   645  		FollowersURL      string `json:"followers_url"`
   646  		FollowingURL      string `json:"following_url"`
   647  		GistsURL          string `json:"gists_url"`
   648  		StarredURL        string `json:"starred_url"`
   649  		SubscriptionsURL  string `json:"subscriptions_url"`
   650  		OrganizationsURL  string `json:"organizations_url"`
   651  		ReposURL          string `json:"repos_url"`
   652  		EventsURL         string `json:"events_url"`
   653  		ReceivedEventsURL string `json:"received_events_url"`
   654  		Type              string `json:"type"`
   655  		SiteAdmin         bool   `json:"site_admin"`
   656  	} `json:"sender"`
   657  }
   658  
   659  // DeletePayload contains the information for GitHub's delete hook event
   660  type DeletePayload struct {
   661  	Ref        string `json:"ref"`
   662  	RefType    string `json:"ref_type"`
   663  	PusherType string `json:"pusher_type"`
   664  	Repository struct {
   665  		ID       int64  `json:"id"`
   666  		NodeID   string `json:"node_id"`
   667  		Name     string `json:"name"`
   668  		FullName string `json:"full_name"`
   669  		Owner    struct {
   670  			Login             string `json:"login"`
   671  			ID                int64  `json:"id"`
   672  			NodeID            string `json:"node_id"`
   673  			AvatarURL         string `json:"avatar_url"`
   674  			GravatarID        string `json:"gravatar_id"`
   675  			URL               string `json:"url"`
   676  			HTMLURL           string `json:"html_url"`
   677  			FollowersURL      string `json:"followers_url"`
   678  			FollowingURL      string `json:"following_url"`
   679  			GistsURL          string `json:"gists_url"`
   680  			StarredURL        string `json:"starred_url"`
   681  			SubscriptionsURL  string `json:"subscriptions_url"`
   682  			OrganizationsURL  string `json:"organizations_url"`
   683  			ReposURL          string `json:"repos_url"`
   684  			EventsURL         string `json:"events_url"`
   685  			ReceivedEventsURL string `json:"received_events_url"`
   686  			Type              string `json:"type"`
   687  			SiteAdmin         bool   `json:"site_admin"`
   688  		} `json:"owner"`
   689  		Private          bool      `json:"private"`
   690  		HTMLURL          string    `json:"html_url"`
   691  		Description      string    `json:"description"`
   692  		Fork             bool      `json:"fork"`
   693  		URL              string    `json:"url"`
   694  		ForksURL         string    `json:"forks_url"`
   695  		KeysURL          string    `json:"keys_url"`
   696  		CollaboratorsURL string    `json:"collaborators_url"`
   697  		TeamsURL         string    `json:"teams_url"`
   698  		HooksURL         string    `json:"hooks_url"`
   699  		IssueEventsURL   string    `json:"issue_events_url"`
   700  		EventsURL        string    `json:"events_url"`
   701  		AssigneesURL     string    `json:"assignees_url"`
   702  		BranchesURL      string    `json:"branches_url"`
   703  		TagsURL          string    `json:"tags_url"`
   704  		BlobsURL         string    `json:"blobs_url"`
   705  		GitTagsURL       string    `json:"git_tags_url"`
   706  		GitRefsURL       string    `json:"git_refs_url"`
   707  		TreesURL         string    `json:"trees_url"`
   708  		StatusesURL      string    `json:"statuses_url"`
   709  		LanguagesURL     string    `json:"languages_url"`
   710  		StargazersURL    string    `json:"stargazers_url"`
   711  		ContributorsURL  string    `json:"contributors_url"`
   712  		SubscribersURL   string    `json:"subscribers_url"`
   713  		SubscriptionURL  string    `json:"subscription_url"`
   714  		CommitsURL       string    `json:"commits_url"`
   715  		GitCommitsURL    string    `json:"git_commits_url"`
   716  		CommentsURL      string    `json:"comments_url"`
   717  		IssueCommentURL  string    `json:"issue_comment_url"`
   718  		ContentsURL      string    `json:"contents_url"`
   719  		CompareURL       string    `json:"compare_url"`
   720  		MergesURL        string    `json:"merges_url"`
   721  		ArchiveURL       string    `json:"archive_url"`
   722  		DownloadsURL     string    `json:"downloads_url"`
   723  		IssuesURL        string    `json:"issues_url"`
   724  		PullsURL         string    `json:"pulls_url"`
   725  		MilestonesURL    string    `json:"milestones_url"`
   726  		NotificationsURL string    `json:"notifications_url"`
   727  		LabelsURL        string    `json:"labels_url"`
   728  		ReleasesURL      string    `json:"releases_url"`
   729  		CreatedAt        time.Time `json:"created_at"`
   730  		UpdatedAt        time.Time `json:"updated_at"`
   731  		PushedAt         time.Time `json:"pushed_at"`
   732  		GitURL           string    `json:"git_url"`
   733  		SSHURL           string    `json:"ssh_url"`
   734  		CloneURL         string    `json:"clone_url"`
   735  		SvnURL           string    `json:"svn_url"`
   736  		Homepage         *string   `json:"homepage"`
   737  		Size             int64     `json:"size"`
   738  		StargazersCount  int64     `json:"stargazers_count"`
   739  		WatchersCount    int64     `json:"watchers_count"`
   740  		Language         *string   `json:"language"`
   741  		HasIssues        bool      `json:"has_issues"`
   742  		HasDownloads     bool      `json:"has_downloads"`
   743  		HasWiki          bool      `json:"has_wiki"`
   744  		HasPages         bool      `json:"has_pages"`
   745  		ForksCount       int64     `json:"forks_count"`
   746  		MirrorURL        *string   `json:"mirror_url"`
   747  		OpenIssuesCount  int64     `json:"open_issues_count"`
   748  		Forks            int64     `json:"forks"`
   749  		OpenIssues       int64     `json:"open_issues"`
   750  		Watchers         int64     `json:"watchers"`
   751  		DefaultBranch    string    `json:"default_branch"`
   752  	} `json:"repository"`
   753  	Sender struct {
   754  		Login             string `json:"login"`
   755  		ID                int64  `json:"id"`
   756  		NodeID            string `json:"node_id"`
   757  		AvatarURL         string `json:"avatar_url"`
   758  		GravatarID        string `json:"gravatar_id"`
   759  		URL               string `json:"url"`
   760  		HTMLURL           string `json:"html_url"`
   761  		FollowersURL      string `json:"followers_url"`
   762  		FollowingURL      string `json:"following_url"`
   763  		GistsURL          string `json:"gists_url"`
   764  		StarredURL        string `json:"starred_url"`
   765  		SubscriptionsURL  string `json:"subscriptions_url"`
   766  		OrganizationsURL  string `json:"organizations_url"`
   767  		ReposURL          string `json:"repos_url"`
   768  		EventsURL         string `json:"events_url"`
   769  		ReceivedEventsURL string `json:"received_events_url"`
   770  		Type              string `json:"type"`
   771  		SiteAdmin         bool   `json:"site_admin"`
   772  	} `json:"sender"`
   773  }
   774  
   775  // DependabotAlertPayload contains the information for GitHub's dependabot_alert hook event
   776  type DependabotAlertPayload struct {
   777  	Action string `json:"action"` // "created", "dissmissed", "fixed", "reintroduced", "reopened"
   778  	Alert  struct {
   779  		Number     uint32 `json:"number"`
   780  		State      string `json:"state"` // "dissmissed", "fixed", "open"
   781  		Dependency struct {
   782  			Package struct {
   783  				Ecosystem string `json:"ecosystem"`
   784  				Name      string `json:"name"`
   785  			} `json:"package"`
   786  			ManifestPath string `json:"manifest_path"`
   787  			Scope        string `json:"scope"` // "development", "runtime", null
   788  		} `json:"dependency"`
   789  		SecurityAdvisory struct {
   790  			GHSAID          string `json:"ghsa_id"`
   791  			CVEID           string `json:"cve_id"`
   792  			Summary         string `json:"summary"`
   793  			Description     string `json:"description"`
   794  			Vulnerabilities []struct {
   795  				Package struct {
   796  					Ecosystem string `json:"ecosystem"`
   797  					Name      string `json:"name"`
   798  				} `json:"package"`
   799  				Severity               string `json:"severity"` // "low", "midium", "high", "critical"
   800  				VulnerableVersionRange string `json:"vulnerable_version_range"`
   801  				FirstPatchedVersion    struct {
   802  					Identifier string `json:"identifier"`
   803  				} `json:"first_patched_version"`
   804  			} `json:"vulnerabilities"`
   805  			Severity string `json:"severity"` // "low", "medium", "high", "critical"
   806  			CVSS     struct {
   807  				Score        float64 `json:"score"`
   808  				VectorString string  `json:"vector_string"`
   809  			} `json:"cvss"`
   810  			CWEs []struct {
   811  				CWEID string `json:"cwe_id"`
   812  				Name  string `json:"name"`
   813  			} `json:"cwes"`
   814  			Identifiers []struct {
   815  				Type  string `json:"type"` // "CVE", "GHSA"
   816  				Value string `json:"value"`
   817  			} `json:"identifiers"`
   818  			References []struct {
   819  				URL string `json:"url"`
   820  			} `json:"references"`
   821  			PublishedAt string `json:"published_at"` // "YYYY-MM-DDTHH:MM:SSZ"
   822  			UpdatedAt   string `json:"updated_at"`   // "YYYY-MM-DDTHH:MM:SSZ"
   823  			WithdrawnAt string `json:"withdrawn_at"` // "YYYY-MM-DDTHH:MM:SSZ"
   824  		} `json:"security_advisory"`
   825  		SecurityVulnerability struct {
   826  			Package struct {
   827  				Ecosystem string `json:"ecosystem"`
   828  				Name      string `json:"name"`
   829  			} `json:"package"`
   830  			Severity               string `json:"severity"` // "low", "medium", "high", "critical"
   831  			VulnerableVersionRange string `json:"vulnerable_version_range"`
   832  			FirstPatchedVersion    struct {
   833  				Identifier string `json:"identifier"`
   834  			} `json:"first_patched_version"`
   835  		} `json:"secirty_vulnerability"`
   836  		URL          string `json:"url"`
   837  		HTMLURL      string `json:"html_url"`
   838  		CreatedAt    string `json:"created_at"`    // "YYYY-MM-DDTHH:MM:SSZ"
   839  		UpdatedAt    string `json:"updated_at"`    // "YYYY-MM-DDTHH:MM:SSZ"
   840  		DissmissedAt string `json:"dissmissed_at"` // "YYYY-MM-DDTHH:MM:SSZ"
   841  		DissmissedBy struct {
   842  			Name              string `json:"name"`
   843  			Email             string `json:"email"`
   844  			Login             string `json:"login"`
   845  			ID                uint64 `json:"id"`
   846  			NodeID            string `json:"node_id"`
   847  			AvatarURL         string `json:"avatar_url"`
   848  			GravatarID        string `json:"gravatar_id"`
   849  			URL               string `json:"url"`
   850  			HTMLURL           string `json:"html_url"`
   851  			FollowersURL      string `json:"followers_url"`
   852  			GistsURL          string `json:"gists_url"`
   853  			StarredURL        string `json:"starred_url"`
   854  			SubscriptionsURL  string `json:"subscriptions_url"`
   855  			OrganizationsURL  string `json:"organizations_url"`
   856  			ReposURL          string `json:"repos_url"`
   857  			EventsURL         string `json:"events_url"`
   858  			ReceivedEventsURL string `json:"received_events_url"`
   859  			Type              string `json:"type"`
   860  			SiteAdmin         bool   `json:"site_admin"`
   861  			StarredAt         string `json:"starred_at"`
   862  		} `json:"dissmissed_by"`
   863  		DissmissedReason  string `json:"dissmissed_reason"` // "fix_started", "inaccurate", "no_bandwidth", "not_used", "tolerable_risk", null
   864  		DissmissedComment string `json:"dissmissed_comment"`
   865  		FixedAt           string `json:"fixed_at"` // "YYYY-MM-DDTHH:MM:SSZ"
   866  	} `json:"alert"`
   867  	Repository struct {
   868  		ID       int    `json:"id"`
   869  		NodeID   string `json:"node_id"`
   870  		Name     string `json:"name"`
   871  		FullName string `json:"full_name"`
   872  		Owner    struct {
   873  			Login             string `json:"login"`
   874  			ID                int    `json:"id"`
   875  			NodeID            string `json:"node_id"`
   876  			AvatarURL         string `json:"avatar_url"`
   877  			GravatarID        string `json:"gravatar_id"`
   878  			URL               string `json:"url"`
   879  			HTMLURL           string `json:"html_url"`
   880  			FollowersURL      string `json:"followers_url"`
   881  			FollowingURL      string `json:"following_url"`
   882  			GistsURL          string `json:"gists_url"`
   883  			StarredURL        string `json:"starred_url"`
   884  			SubscriptionsURL  string `json:"subscriptions_url"`
   885  			OrganizationsURL  string `json:"organizations_url"`
   886  			ReposURL          string `json:"repos_url"`
   887  			EventsURL         string `json:"events_url"`
   888  			ReceivedEventsURL string `json:"received_events_url"`
   889  			Type              string `json:"type"`
   890  			SiteAdmin         bool   `json:"site_admin"`
   891  		} `json:"owner"`
   892  		Private          bool        `json:"private"`
   893  		HTMLURL          string      `json:"html_url"`
   894  		Description      interface{} `json:"description"`
   895  		Fork             bool        `json:"fork"`
   896  		URL              string      `json:"url"`
   897  		ForksURL         string      `json:"forks_url"`
   898  		KeysURL          string      `json:"keys_url"`
   899  		CollaboratorsURL string      `json:"collaborators_url"`
   900  		TeamsURL         string      `json:"teams_url"`
   901  		HooksURL         string      `json:"hooks_url"`
   902  		IssueEventsURL   string      `json:"issue_events_url"`
   903  		EventsURL        string      `json:"events_url"`
   904  		AssigneesURL     string      `json:"assignees_url"`
   905  		BranchesURL      string      `json:"branches_url"`
   906  		TagsURL          string      `json:"tags_url"`
   907  		BlobsURL         string      `json:"blobs_url"`
   908  		GitTagsURL       string      `json:"git_tags_url"`
   909  		GitRefsURL       string      `json:"git_refs_url"`
   910  		TreesURL         string      `json:"trees_url"`
   911  		StatusesURL      string      `json:"statuses_url"`
   912  		LanguagesURL     string      `json:"languages_url"`
   913  		StargazersURL    string      `json:"stargazers_url"`
   914  		ContributorsURL  string      `json:"contributors_url"`
   915  		SubscribersURL   string      `json:"subscribers_url"`
   916  		SubscriptionURL  string      `json:"subscription_url"`
   917  		CommitsURL       string      `json:"commits_url"`
   918  		GitCommitsURL    string      `json:"git_commits_url"`
   919  		CommentsURL      string      `json:"comments_url"`
   920  		IssueCommentURL  string      `json:"issue_comment_url"`
   921  		ContentsURL      string      `json:"contents_url"`
   922  		CompareURL       string      `json:"compare_url"`
   923  		MergesURL        string      `json:"merges_url"`
   924  		ArchiveURL       string      `json:"archive_url"`
   925  		DownloadsURL     string      `json:"downloads_url"`
   926  		IssuesURL        string      `json:"issues_url"`
   927  		PullsURL         string      `json:"pulls_url"`
   928  		MilestonesURL    string      `json:"milestones_url"`
   929  		NotificationsURL string      `json:"notifications_url"`
   930  		LabelsURL        string      `json:"labels_url"`
   931  		ReleasesURL      string      `json:"releases_url"`
   932  		DeploymentsURL   string      `json:"deployments_url"`
   933  		CreatedAt        time.Time   `json:"created_at"`
   934  		UpdatedAt        time.Time   `json:"updated_at"`
   935  		PushedAt         time.Time   `json:"pushed_at"`
   936  		GitURL           string      `json:"git_url"`
   937  		SSHURL           string      `json:"ssh_url"`
   938  		CloneURL         string      `json:"clone_url"`
   939  		SvnURL           string      `json:"svn_url"`
   940  		Homepage         interface{} `json:"homepage"`
   941  		Size             int         `json:"size"`
   942  		StargazersCount  int         `json:"stargazers_count"`
   943  		WatchersCount    int         `json:"watchers_count"`
   944  		Language         interface{} `json:"language"`
   945  		HasIssues        bool        `json:"has_issues"`
   946  		HasProjects      bool        `json:"has_projects"`
   947  		HasDownloads     bool        `json:"has_downloads"`
   948  		HasWiki          bool        `json:"has_wiki"`
   949  		HasPages         bool        `json:"has_pages"`
   950  		ForksCount       int         `json:"forks_count"`
   951  		MirrorURL        interface{} `json:"mirror_url"`
   952  		Archived         bool        `json:"archived"`
   953  		OpenIssuesCount  int         `json:"open_issues_count"`
   954  		License          interface{} `json:"license"`
   955  		Forks            int         `json:"forks"`
   956  		OpenIssues       int         `json:"open_issues"`
   957  		Watchers         int         `json:"watchers"`
   958  		DefaultBranch    string      `json:"default_branch"`
   959  	} `json:"repository"`
   960  	Sender struct {
   961  		Login             string `json:"login"`
   962  		ID                int    `json:"id"`
   963  		NodeID            string `json:"node_id"`
   964  		AvatarURL         string `json:"avatar_url"`
   965  		GravatarID        string `json:"gravatar_id"`
   966  		URL               string `json:"url"`
   967  		HTMLURL           string `json:"html_url"`
   968  		FollowersURL      string `json:"followers_url"`
   969  		FollowingURL      string `json:"following_url"`
   970  		GistsURL          string `json:"gists_url"`
   971  		StarredURL        string `json:"starred_url"`
   972  		SubscriptionsURL  string `json:"subscriptions_url"`
   973  		OrganizationsURL  string `json:"organizations_url"`
   974  		ReposURL          string `json:"repos_url"`
   975  		EventsURL         string `json:"events_url"`
   976  		ReceivedEventsURL string `json:"received_events_url"`
   977  		Type              string `json:"type"`
   978  		SiteAdmin         bool   `json:"site_admin"`
   979  	} `json:"sender"`
   980  }
   981  
   982  // DeployKeyPayload contains the information for GitHub's deploy_key hook
   983  type DeployKeyPayload struct {
   984  	Action string `json:"action"`
   985  	Key    struct {
   986  		ID        int       `json:"id"`
   987  		Key       string    `json:"key"`
   988  		URL       string    `json:"url"`
   989  		Title     string    `json:"title"`
   990  		Verified  bool      `json:"verified"`
   991  		CreatedAt time.Time `json:"created_at"`
   992  		ReadOnly  bool      `json:"read_only"`
   993  	} `json:"key"`
   994  	Repository struct {
   995  		ID       int    `json:"id"`
   996  		NodeID   string `json:"node_id"`
   997  		Name     string `json:"name"`
   998  		FullName string `json:"full_name"`
   999  		Owner    struct {
  1000  			Login             string `json:"login"`
  1001  			ID                int    `json:"id"`
  1002  			NodeID            string `json:"node_id"`
  1003  			AvatarURL         string `json:"avatar_url"`
  1004  			GravatarID        string `json:"gravatar_id"`
  1005  			URL               string `json:"url"`
  1006  			HTMLURL           string `json:"html_url"`
  1007  			FollowersURL      string `json:"followers_url"`
  1008  			FollowingURL      string `json:"following_url"`
  1009  			GistsURL          string `json:"gists_url"`
  1010  			StarredURL        string `json:"starred_url"`
  1011  			SubscriptionsURL  string `json:"subscriptions_url"`
  1012  			OrganizationsURL  string `json:"organizations_url"`
  1013  			ReposURL          string `json:"repos_url"`
  1014  			EventsURL         string `json:"events_url"`
  1015  			ReceivedEventsURL string `json:"received_events_url"`
  1016  			Type              string `json:"type"`
  1017  			SiteAdmin         bool   `json:"site_admin"`
  1018  		} `json:"owner"`
  1019  		Private          bool        `json:"private"`
  1020  		HTMLURL          string      `json:"html_url"`
  1021  		Description      interface{} `json:"description"`
  1022  		Fork             bool        `json:"fork"`
  1023  		URL              string      `json:"url"`
  1024  		ForksURL         string      `json:"forks_url"`
  1025  		KeysURL          string      `json:"keys_url"`
  1026  		CollaboratorsURL string      `json:"collaborators_url"`
  1027  		TeamsURL         string      `json:"teams_url"`
  1028  		HooksURL         string      `json:"hooks_url"`
  1029  		IssueEventsURL   string      `json:"issue_events_url"`
  1030  		EventsURL        string      `json:"events_url"`
  1031  		AssigneesURL     string      `json:"assignees_url"`
  1032  		BranchesURL      string      `json:"branches_url"`
  1033  		TagsURL          string      `json:"tags_url"`
  1034  		BlobsURL         string      `json:"blobs_url"`
  1035  		GitTagsURL       string      `json:"git_tags_url"`
  1036  		GitRefsURL       string      `json:"git_refs_url"`
  1037  		TreesURL         string      `json:"trees_url"`
  1038  		StatusesURL      string      `json:"statuses_url"`
  1039  		LanguagesURL     string      `json:"languages_url"`
  1040  		StargazersURL    string      `json:"stargazers_url"`
  1041  		ContributorsURL  string      `json:"contributors_url"`
  1042  		SubscribersURL   string      `json:"subscribers_url"`
  1043  		SubscriptionURL  string      `json:"subscription_url"`
  1044  		CommitsURL       string      `json:"commits_url"`
  1045  		GitCommitsURL    string      `json:"git_commits_url"`
  1046  		CommentsURL      string      `json:"comments_url"`
  1047  		IssueCommentURL  string      `json:"issue_comment_url"`
  1048  		ContentsURL      string      `json:"contents_url"`
  1049  		CompareURL       string      `json:"compare_url"`
  1050  		MergesURL        string      `json:"merges_url"`
  1051  		ArchiveURL       string      `json:"archive_url"`
  1052  		DownloadsURL     string      `json:"downloads_url"`
  1053  		IssuesURL        string      `json:"issues_url"`
  1054  		PullsURL         string      `json:"pulls_url"`
  1055  		MilestonesURL    string      `json:"milestones_url"`
  1056  		NotificationsURL string      `json:"notifications_url"`
  1057  		LabelsURL        string      `json:"labels_url"`
  1058  		ReleasesURL      string      `json:"releases_url"`
  1059  		DeploymentsURL   string      `json:"deployments_url"`
  1060  		CreatedAt        time.Time   `json:"created_at"`
  1061  		UpdatedAt        time.Time   `json:"updated_at"`
  1062  		PushedAt         time.Time   `json:"pushed_at"`
  1063  		GitURL           string      `json:"git_url"`
  1064  		SSHURL           string      `json:"ssh_url"`
  1065  		CloneURL         string      `json:"clone_url"`
  1066  		SvnURL           string      `json:"svn_url"`
  1067  		Homepage         interface{} `json:"homepage"`
  1068  		Size             int         `json:"size"`
  1069  		StargazersCount  int         `json:"stargazers_count"`
  1070  		WatchersCount    int         `json:"watchers_count"`
  1071  		Language         interface{} `json:"language"`
  1072  		HasIssues        bool        `json:"has_issues"`
  1073  		HasProjects      bool        `json:"has_projects"`
  1074  		HasDownloads     bool        `json:"has_downloads"`
  1075  		HasWiki          bool        `json:"has_wiki"`
  1076  		HasPages         bool        `json:"has_pages"`
  1077  		ForksCount       int         `json:"forks_count"`
  1078  		MirrorURL        interface{} `json:"mirror_url"`
  1079  		Archived         bool        `json:"archived"`
  1080  		OpenIssuesCount  int         `json:"open_issues_count"`
  1081  		License          interface{} `json:"license"`
  1082  		Forks            int         `json:"forks"`
  1083  		OpenIssues       int         `json:"open_issues"`
  1084  		Watchers         int         `json:"watchers"`
  1085  		DefaultBranch    string      `json:"default_branch"`
  1086  	} `json:"repository"`
  1087  	Sender struct {
  1088  		Login             string `json:"login"`
  1089  		ID                int    `json:"id"`
  1090  		NodeID            string `json:"node_id"`
  1091  		AvatarURL         string `json:"avatar_url"`
  1092  		GravatarID        string `json:"gravatar_id"`
  1093  		URL               string `json:"url"`
  1094  		HTMLURL           string `json:"html_url"`
  1095  		FollowersURL      string `json:"followers_url"`
  1096  		FollowingURL      string `json:"following_url"`
  1097  		GistsURL          string `json:"gists_url"`
  1098  		StarredURL        string `json:"starred_url"`
  1099  		SubscriptionsURL  string `json:"subscriptions_url"`
  1100  		OrganizationsURL  string `json:"organizations_url"`
  1101  		ReposURL          string `json:"repos_url"`
  1102  		EventsURL         string `json:"events_url"`
  1103  		ReceivedEventsURL string `json:"received_events_url"`
  1104  		Type              string `json:"type"`
  1105  		SiteAdmin         bool   `json:"site_admin"`
  1106  	} `json:"sender"`
  1107  }
  1108  
  1109  // DeploymentPayload contains the information for GitHub's deployment hook
  1110  type DeploymentPayload struct {
  1111  	Deployment struct {
  1112  		URL         string   `json:"url"`
  1113  		ID          int64    `json:"id"`
  1114  		NodeID      string   `json:"node_id"`
  1115  		Sha         string   `json:"sha"`
  1116  		Ref         string   `json:"ref"`
  1117  		Task        string   `json:"task"`
  1118  		Payload     struct{} `json:"payload"`
  1119  		Environment string   `json:"environment"`
  1120  		Description *string  `json:"description"`
  1121  		Creator     struct {
  1122  			Login             string `json:"login"`
  1123  			ID                int64  `json:"id"`
  1124  			NodeID            string `json:"node_id"`
  1125  			AvatarURL         string `json:"avatar_url"`
  1126  			GravatarID        string `json:"gravatar_id"`
  1127  			URL               string `json:"url"`
  1128  			HTMLURL           string `json:"html_url"`
  1129  			FollowersURL      string `json:"followers_url"`
  1130  			FollowingURL      string `json:"following_url"`
  1131  			GistsURL          string `json:"gists_url"`
  1132  			StarredURL        string `json:"starred_url"`
  1133  			SubscriptionsURL  string `json:"subscriptions_url"`
  1134  			OrganizationsURL  string `json:"organizations_url"`
  1135  			ReposURL          string `json:"repos_url"`
  1136  			EventsURL         string `json:"events_url"`
  1137  			ReceivedEventsURL string `json:"received_events_url"`
  1138  			Type              string `json:"type"`
  1139  			SiteAdmin         bool   `json:"site_admin"`
  1140  		} `json:"creator"`
  1141  		CreatedAt     time.Time `json:"created_at"`
  1142  		UpdatedAt     time.Time `json:"updated_at"`
  1143  		StatusesURL   string    `json:"statuses_url"`
  1144  		RepositoryURL string    `json:"repository_url"`
  1145  	} `json:"deployment"`
  1146  	Repository struct {
  1147  		ID       int64  `json:"id"`
  1148  		NodeID   string `json:"node_id"`
  1149  		Name     string `json:"name"`
  1150  		FullName string `json:"full_name"`
  1151  		Owner    struct {
  1152  			Login             string `json:"login"`
  1153  			ID                int64  `json:"id"`
  1154  			NodeID            string `json:"node_id"`
  1155  			AvatarURL         string `json:"avatar_url"`
  1156  			GravatarID        string `json:"gravatar_id"`
  1157  			URL               string `json:"url"`
  1158  			HTMLURL           string `json:"html_url"`
  1159  			FollowersURL      string `json:"followers_url"`
  1160  			FollowingURL      string `json:"following_url"`
  1161  			GistsURL          string `json:"gists_url"`
  1162  			StarredURL        string `json:"starred_url"`
  1163  			SubscriptionsURL  string `json:"subscriptions_url"`
  1164  			OrganizationsURL  string `json:"organizations_url"`
  1165  			ReposURL          string `json:"repos_url"`
  1166  			EventsURL         string `json:"events_url"`
  1167  			ReceivedEventsURL string `json:"received_events_url"`
  1168  			Type              string `json:"type"`
  1169  			SiteAdmin         bool   `json:"site_admin"`
  1170  		} `json:"owner"`
  1171  		Private          bool      `json:"private"`
  1172  		HTMLURL          string    `json:"html_url"`
  1173  		Description      string    `json:"description"`
  1174  		Fork             bool      `json:"fork"`
  1175  		URL              string    `json:"url"`
  1176  		ForksURL         string    `json:"forks_url"`
  1177  		KeysURL          string    `json:"keys_url"`
  1178  		CollaboratorsURL string    `json:"collaborators_url"`
  1179  		TeamsURL         string    `json:"teams_url"`
  1180  		HooksURL         string    `json:"hooks_url"`
  1181  		IssueEventsURL   string    `json:"issue_events_url"`
  1182  		EventsURL        string    `json:"events_url"`
  1183  		AssigneesURL     string    `json:"assignees_url"`
  1184  		BranchesURL      string    `json:"branches_url"`
  1185  		TagsURL          string    `json:"tags_url"`
  1186  		BlobsURL         string    `json:"blobs_url"`
  1187  		GitTagsURL       string    `json:"git_tags_url"`
  1188  		GitRefsURL       string    `json:"git_refs_url"`
  1189  		TreesURL         string    `json:"trees_url"`
  1190  		StatusesURL      string    `json:"statuses_url"`
  1191  		LanguagesURL     string    `json:"languages_url"`
  1192  		StargazersURL    string    `json:"stargazers_url"`
  1193  		ContributorsURL  string    `json:"contributors_url"`
  1194  		SubscribersURL   string    `json:"subscribers_url"`
  1195  		SubscriptionURL  string    `json:"subscription_url"`
  1196  		CommitsURL       string    `json:"commits_url"`
  1197  		GitCommitsURL    string    `json:"git_commits_url"`
  1198  		CommentsURL      string    `json:"comments_url"`
  1199  		IssueCommentURL  string    `json:"issue_comment_url"`
  1200  		ContentsURL      string    `json:"contents_url"`
  1201  		CompareURL       string    `json:"compare_url"`
  1202  		MergesURL        string    `json:"merges_url"`
  1203  		ArchiveURL       string    `json:"archive_url"`
  1204  		DownloadsURL     string    `json:"downloads_url"`
  1205  		IssuesURL        string    `json:"issues_url"`
  1206  		PullsURL         string    `json:"pulls_url"`
  1207  		MilestonesURL    string    `json:"milestones_url"`
  1208  		NotificationsURL string    `json:"notifications_url"`
  1209  		LabelsURL        string    `json:"labels_url"`
  1210  		ReleasesURL      string    `json:"releases_url"`
  1211  		CreatedAt        time.Time `json:"created_at"`
  1212  		UpdatedAt        time.Time `json:"updated_at"`
  1213  		PushedAt         time.Time `json:"pushed_at"`
  1214  		GitURL           string    `json:"git_url"`
  1215  		SSHURL           string    `json:"ssh_url"`
  1216  		CloneURL         string    `json:"clone_url"`
  1217  		SvnURL           string    `json:"svn_url"`
  1218  		Homepage         *string   `json:"homepage"`
  1219  		Size             int64     `json:"size"`
  1220  		StargazersCount  int64     `json:"stargazers_count"`
  1221  		WatchersCount    int64     `json:"watchers_count"`
  1222  		Language         *string   `json:"language"`
  1223  		HasIssues        bool      `json:"has_issues"`
  1224  		HasDownloads     bool      `json:"has_downloads"`
  1225  		HasWiki          bool      `json:"has_wiki"`
  1226  		HasPages         bool      `json:"has_pages"`
  1227  		ForksCount       int64     `json:"forks_count"`
  1228  		MirrorURL        *string   `json:"mirror_url"`
  1229  		OpenIssuesCount  int64     `json:"open_issues_count"`
  1230  		Forks            int64     `json:"forks"`
  1231  		OpenIssues       int64     `json:"open_issues"`
  1232  		Watchers         int64     `json:"watchers"`
  1233  		DefaultBranch    string    `json:"default_branch"`
  1234  	} `json:"repository"`
  1235  	Sender struct {
  1236  		Login             string `json:"login"`
  1237  		ID                int64  `json:"id"`
  1238  		NodeID            string `json:"node_id"`
  1239  		AvatarURL         string `json:"avatar_url"`
  1240  		GravatarID        string `json:"gravatar_id"`
  1241  		URL               string `json:"url"`
  1242  		HTMLURL           string `json:"html_url"`
  1243  		FollowersURL      string `json:"followers_url"`
  1244  		FollowingURL      string `json:"following_url"`
  1245  		GistsURL          string `json:"gists_url"`
  1246  		StarredURL        string `json:"starred_url"`
  1247  		SubscriptionsURL  string `json:"subscriptions_url"`
  1248  		OrganizationsURL  string `json:"organizations_url"`
  1249  		ReposURL          string `json:"repos_url"`
  1250  		EventsURL         string `json:"events_url"`
  1251  		ReceivedEventsURL string `json:"received_events_url"`
  1252  		Type              string `json:"type"`
  1253  		SiteAdmin         bool   `json:"site_admin"`
  1254  	} `json:"sender"`
  1255  }
  1256  
  1257  // DeploymentStatusPayload contains the information for GitHub's deployment_status hook event
  1258  type DeploymentStatusPayload struct {
  1259  	DeploymentStatus struct {
  1260  		URL     string `json:"url"`
  1261  		ID      int64  `json:"id"`
  1262  		NodeID  string `json:"node_id"`
  1263  		State   string `json:"state"`
  1264  		Creator struct {
  1265  			Login             string `json:"login"`
  1266  			ID                int64  `json:"id"`
  1267  			NodeID            string `json:"node_id"`
  1268  			AvatarURL         string `json:"avatar_url"`
  1269  			GravatarID        string `json:"gravatar_id"`
  1270  			URL               string `json:"url"`
  1271  			HTMLURL           string `json:"html_url"`
  1272  			FollowersURL      string `json:"followers_url"`
  1273  			FollowingURL      string `json:"following_url"`
  1274  			GistsURL          string `json:"gists_url"`
  1275  			StarredURL        string `json:"starred_url"`
  1276  			SubscriptionsURL  string `json:"subscriptions_url"`
  1277  			OrganizationsURL  string `json:"organizations_url"`
  1278  			ReposURL          string `json:"repos_url"`
  1279  			EventsURL         string `json:"events_url"`
  1280  			ReceivedEventsURL string `json:"received_events_url"`
  1281  			Type              string `json:"type"`
  1282  			SiteAdmin         bool   `json:"site_admin"`
  1283  		} `json:"creator"`
  1284  		Description   *string   `json:"description"`
  1285  		TargetURL     *string   `json:"target_url"`
  1286  		CreatedAt     time.Time `json:"created_at"`
  1287  		UpdatedAt     time.Time `json:"updated_at"`
  1288  		DeploymentURL string    `json:"deployment_url"`
  1289  		RepositoryURL string    `json:"repository_url"`
  1290  	} `json:"deployment_status"`
  1291  	Deployment struct {
  1292  		URL         string   `json:"url"`
  1293  		ID          int64    `json:"id"`
  1294  		NodeID      string   `json:"node_id"`
  1295  		Sha         string   `json:"sha"`
  1296  		Ref         string   `json:"ref"`
  1297  		Task        string   `json:"task"`
  1298  		Payload     struct{} `json:"payload"`
  1299  		Environment string   `json:"environment"`
  1300  		Description *string  `json:"description"`
  1301  		Creator     struct {
  1302  			Login             string `json:"login"`
  1303  			ID                int64  `json:"id"`
  1304  			NodeID            string `json:"node_id"`
  1305  			AvatarURL         string `json:"avatar_url"`
  1306  			GravatarID        string `json:"gravatar_id"`
  1307  			URL               string `json:"url"`
  1308  			HTMLURL           string `json:"html_url"`
  1309  			FollowersURL      string `json:"followers_url"`
  1310  			FollowingURL      string `json:"following_url"`
  1311  			GistsURL          string `json:"gists_url"`
  1312  			StarredURL        string `json:"starred_url"`
  1313  			SubscriptionsURL  string `json:"subscriptions_url"`
  1314  			OrganizationsURL  string `json:"organizations_url"`
  1315  			ReposURL          string `json:"repos_url"`
  1316  			EventsURL         string `json:"events_url"`
  1317  			ReceivedEventsURL string `json:"received_events_url"`
  1318  			Type              string `json:"type"`
  1319  			SiteAdmin         bool   `json:"site_admin"`
  1320  		} `json:"creator"`
  1321  		CreatedAt     time.Time `json:"created_at"`
  1322  		UpdatedAt     time.Time `json:"updated_at"`
  1323  		StatusesURL   string    `json:"statuses_url"`
  1324  		RepositoryURL string    `json:"repository_url"`
  1325  	} `json:"deployment"`
  1326  	Repository struct {
  1327  		ID       int64  `json:"id"`
  1328  		NodeID   string `json:"node_id"`
  1329  		Name     string `json:"name"`
  1330  		FullName string `json:"full_name"`
  1331  		Owner    struct {
  1332  			Login             string `json:"login"`
  1333  			ID                int64  `json:"id"`
  1334  			NodeID            string `json:"node_id"`
  1335  			AvatarURL         string `json:"avatar_url"`
  1336  			GravatarID        string `json:"gravatar_id"`
  1337  			URL               string `json:"url"`
  1338  			HTMLURL           string `json:"html_url"`
  1339  			FollowersURL      string `json:"followers_url"`
  1340  			FollowingURL      string `json:"following_url"`
  1341  			GistsURL          string `json:"gists_url"`
  1342  			StarredURL        string `json:"starred_url"`
  1343  			SubscriptionsURL  string `json:"subscriptions_url"`
  1344  			OrganizationsURL  string `json:"organizations_url"`
  1345  			ReposURL          string `json:"repos_url"`
  1346  			EventsURL         string `json:"events_url"`
  1347  			ReceivedEventsURL string `json:"received_events_url"`
  1348  			Type              string `json:"type"`
  1349  			SiteAdmin         bool   `json:"site_admin"`
  1350  		} `json:"owner"`
  1351  		Private          bool      `json:"private"`
  1352  		HTMLURL          string    `json:"html_url"`
  1353  		Description      string    `json:"description"`
  1354  		Fork             bool      `json:"fork"`
  1355  		URL              string    `json:"url"`
  1356  		ForksURL         string    `json:"forks_url"`
  1357  		KeysURL          string    `json:"keys_url"`
  1358  		CollaboratorsURL string    `json:"collaborators_url"`
  1359  		TeamsURL         string    `json:"teams_url"`
  1360  		HooksURL         string    `json:"hooks_url"`
  1361  		IssueEventsURL   string    `json:"issue_events_url"`
  1362  		EventsURL        string    `json:"events_url"`
  1363  		AssigneesURL     string    `json:"assignees_url"`
  1364  		BranchesURL      string    `json:"branches_url"`
  1365  		TagsURL          string    `json:"tags_url"`
  1366  		BlobsURL         string    `json:"blobs_url"`
  1367  		GitTagsURL       string    `json:"git_tags_url"`
  1368  		GitRefsURL       string    `json:"git_refs_url"`
  1369  		TreesURL         string    `json:"trees_url"`
  1370  		StatusesURL      string    `json:"statuses_url"`
  1371  		LanguagesURL     string    `json:"languages_url"`
  1372  		StargazersURL    string    `json:"stargazers_url"`
  1373  		ContributorsURL  string    `json:"contributors_url"`
  1374  		SubscribersURL   string    `json:"subscribers_url"`
  1375  		SubscriptionURL  string    `json:"subscription_url"`
  1376  		CommitsURL       string    `json:"commits_url"`
  1377  		GitCommitsURL    string    `json:"git_commits_url"`
  1378  		CommentsURL      string    `json:"comments_url"`
  1379  		IssueCommentURL  string    `json:"issue_comment_url"`
  1380  		ContentsURL      string    `json:"contents_url"`
  1381  		CompareURL       string    `json:"compare_url"`
  1382  		MergesURL        string    `json:"merges_url"`
  1383  		ArchiveURL       string    `json:"archive_url"`
  1384  		DownloadsURL     string    `json:"downloads_url"`
  1385  		IssuesURL        string    `json:"issues_url"`
  1386  		PullsURL         string    `json:"pulls_url"`
  1387  		MilestonesURL    string    `json:"milestones_url"`
  1388  		NotificationsURL string    `json:"notifications_url"`
  1389  		LabelsURL        string    `json:"labels_url"`
  1390  		ReleasesURL      string    `json:"releases_url"`
  1391  		CreatedAt        time.Time `json:"created_at"`
  1392  		UpdatedAt        time.Time `json:"updated_at"`
  1393  		PushedAt         time.Time `json:"pushed_at"`
  1394  		GitURL           string    `json:"git_url"`
  1395  		SSHURL           string    `json:"ssh_url"`
  1396  		CloneURL         string    `json:"clone_url"`
  1397  		SvnURL           string    `json:"svn_url"`
  1398  		Homepage         *string   `json:"homepage"`
  1399  		Size             int64     `json:"size"`
  1400  		StargazersCount  int64     `json:"stargazers_count"`
  1401  		WatchersCount    int64     `json:"watchers_count"`
  1402  		Language         *string   `json:"language"`
  1403  		HasIssues        bool      `json:"has_issues"`
  1404  		HasDownloads     bool      `json:"has_downloads"`
  1405  		HasWiki          bool      `json:"has_wiki"`
  1406  		HasPages         bool      `json:"has_pages"`
  1407  		ForksCount       int64     `json:"forks_count"`
  1408  		MirrorURL        *string   `json:"mirror_url"`
  1409  		OpenIssuesCount  int64     `json:"open_issues_count"`
  1410  		Forks            int64     `json:"forks"`
  1411  		OpenIssues       int64     `json:"open_issues"`
  1412  		Watchers         int64     `json:"watchers"`
  1413  		DefaultBranch    string    `json:"default_branch"`
  1414  	} `json:"repository"`
  1415  	Sender struct {
  1416  		Login             string `json:"login"`
  1417  		ID                int64  `json:"id"`
  1418  		NodeID            string `json:"node_id"`
  1419  		AvatarURL         string `json:"avatar_url"`
  1420  		GravatarID        string `json:"gravatar_id"`
  1421  		URL               string `json:"url"`
  1422  		HTMLURL           string `json:"html_url"`
  1423  		FollowersURL      string `json:"followers_url"`
  1424  		FollowingURL      string `json:"following_url"`
  1425  		GistsURL          string `json:"gists_url"`
  1426  		StarredURL        string `json:"starred_url"`
  1427  		SubscriptionsURL  string `json:"subscriptions_url"`
  1428  		OrganizationsURL  string `json:"organizations_url"`
  1429  		ReposURL          string `json:"repos_url"`
  1430  		EventsURL         string `json:"events_url"`
  1431  		ReceivedEventsURL string `json:"received_events_url"`
  1432  		Type              string `json:"type"`
  1433  		SiteAdmin         bool   `json:"site_admin"`
  1434  	} `json:"sender"`
  1435  }
  1436  
  1437  // ForkPayload contains the information for GitHub's fork hook event
  1438  type ForkPayload struct {
  1439  	Forkee struct {
  1440  		ID       int64  `json:"id"`
  1441  		NodeID   string `json:"node_id"`
  1442  		Name     string `json:"name"`
  1443  		FullName string `json:"full_name"`
  1444  		Owner    struct {
  1445  			Login             string `json:"login"`
  1446  			ID                int64  `json:"id"`
  1447  			NodeID            string `json:"node_id"`
  1448  			AvatarURL         string `json:"avatar_url"`
  1449  			GravatarID        string `json:"gravatar_id"`
  1450  			URL               string `json:"url"`
  1451  			HTMLURL           string `json:"html_url"`
  1452  			FollowersURL      string `json:"followers_url"`
  1453  			FollowingURL      string `json:"following_url"`
  1454  			GistsURL          string `json:"gists_url"`
  1455  			StarredURL        string `json:"starred_url"`
  1456  			SubscriptionsURL  string `json:"subscriptions_url"`
  1457  			OrganizationsURL  string `json:"organizations_url"`
  1458  			ReposURL          string `json:"repos_url"`
  1459  			EventsURL         string `json:"events_url"`
  1460  			ReceivedEventsURL string `json:"received_events_url"`
  1461  			Type              string `json:"type"`
  1462  			SiteAdmin         bool   `json:"site_admin"`
  1463  		} `json:"owner"`
  1464  		Private          bool      `json:"private"`
  1465  		HTMLURL          string    `json:"html_url"`
  1466  		Description      string    `json:"description"`
  1467  		Fork             bool      `json:"fork"`
  1468  		URL              string    `json:"url"`
  1469  		ForksURL         string    `json:"forks_url"`
  1470  		KeysURL          string    `json:"keys_url"`
  1471  		CollaboratorsURL string    `json:"collaborators_url"`
  1472  		TeamsURL         string    `json:"teams_url"`
  1473  		HooksURL         string    `json:"hooks_url"`
  1474  		IssueEventsURL   string    `json:"issue_events_url"`
  1475  		EventsURL        string    `json:"events_url"`
  1476  		AssigneesURL     string    `json:"assignees_url"`
  1477  		BranchesURL      string    `json:"branches_url"`
  1478  		TagsURL          string    `json:"tags_url"`
  1479  		BlobsURL         string    `json:"blobs_url"`
  1480  		GitTagsURL       string    `json:"git_tags_url"`
  1481  		GitRefsURL       string    `json:"git_refs_url"`
  1482  		TreesURL         string    `json:"trees_url"`
  1483  		StatusesURL      string    `json:"statuses_url"`
  1484  		LanguagesURL     string    `json:"languages_url"`
  1485  		StargazersURL    string    `json:"stargazers_url"`
  1486  		ContributorsURL  string    `json:"contributors_url"`
  1487  		SubscribersURL   string    `json:"subscribers_url"`
  1488  		SubscriptionURL  string    `json:"subscription_url"`
  1489  		CommitsURL       string    `json:"commits_url"`
  1490  		GitCommitsURL    string    `json:"git_commits_url"`
  1491  		CommentsURL      string    `json:"comments_url"`
  1492  		IssueCommentURL  string    `json:"issue_comment_url"`
  1493  		ContentsURL      string    `json:"contents_url"`
  1494  		CompareURL       string    `json:"compare_url"`
  1495  		MergesURL        string    `json:"merges_url"`
  1496  		ArchiveURL       string    `json:"archive_url"`
  1497  		DownloadsURL     string    `json:"downloads_url"`
  1498  		IssuesURL        string    `json:"issues_url"`
  1499  		PullsURL         string    `json:"pulls_url"`
  1500  		MilestonesURL    string    `json:"milestones_url"`
  1501  		NotificationsURL string    `json:"notifications_url"`
  1502  		LabelsURL        string    `json:"labels_url"`
  1503  		ReleasesURL      string    `json:"releases_url"`
  1504  		CreatedAt        time.Time `json:"created_at"`
  1505  		UpdatedAt        time.Time `json:"updated_at"`
  1506  		PushedAt         time.Time `json:"pushed_at"`
  1507  		GitURL           string    `json:"git_url"`
  1508  		SSHURL           string    `json:"ssh_url"`
  1509  		CloneURL         string    `json:"clone_url"`
  1510  		SvnURL           string    `json:"svn_url"`
  1511  		Homepage         *string   `json:"homepage"`
  1512  		Size             int64     `json:"size"`
  1513  		StargazersCount  int64     `json:"stargazers_count"`
  1514  		WatchersCount    int64     `json:"watchers_count"`
  1515  		Language         *string   `json:"language"`
  1516  		HasIssues        bool      `json:"has_issues"`
  1517  		HasDownloads     bool      `json:"has_downloads"`
  1518  		HasWiki          bool      `json:"has_wiki"`
  1519  		HasPages         bool      `json:"has_pages"`
  1520  		ForksCount       int64     `json:"forks_count"`
  1521  		MirrorURL        *string   `json:"mirror_url"`
  1522  		OpenIssuesCount  int64     `json:"open_issues_count"`
  1523  		Forks            int64     `json:"forks"`
  1524  		OpenIssues       int64     `json:"open_issues"`
  1525  		Watchers         int64     `json:"watchers"`
  1526  		DefaultBranch    string    `json:"default_branch"`
  1527  		Public           bool      `json:"public"`
  1528  	} `json:"forkee"`
  1529  	Repository struct {
  1530  		ID       int64  `json:"id"`
  1531  		NodeID   string `json:"node_id"`
  1532  		Name     string `json:"name"`
  1533  		FullName string `json:"full_name"`
  1534  		Owner    struct {
  1535  			Login             string `json:"login"`
  1536  			ID                int64  `json:"id"`
  1537  			NodeID            string `json:"node_id"`
  1538  			AvatarURL         string `json:"avatar_url"`
  1539  			GravatarID        string `json:"gravatar_id"`
  1540  			URL               string `json:"url"`
  1541  			HTMLURL           string `json:"html_url"`
  1542  			FollowersURL      string `json:"followers_url"`
  1543  			FollowingURL      string `json:"following_url"`
  1544  			GistsURL          string `json:"gists_url"`
  1545  			StarredURL        string `json:"starred_url"`
  1546  			SubscriptionsURL  string `json:"subscriptions_url"`
  1547  			OrganizationsURL  string `json:"organizations_url"`
  1548  			ReposURL          string `json:"repos_url"`
  1549  			EventsURL         string `json:"events_url"`
  1550  			ReceivedEventsURL string `json:"received_events_url"`
  1551  			Type              string `json:"type"`
  1552  			SiteAdmin         bool   `json:"site_admin"`
  1553  		} `json:"owner"`
  1554  		Private          bool      `json:"private"`
  1555  		HTMLURL          string    `json:"html_url"`
  1556  		Description      string    `json:"description"`
  1557  		Fork             bool      `json:"fork"`
  1558  		URL              string    `json:"url"`
  1559  		ForksURL         string    `json:"forks_url"`
  1560  		KeysURL          string    `json:"keys_url"`
  1561  		CollaboratorsURL string    `json:"collaborators_url"`
  1562  		TeamsURL         string    `json:"teams_url"`
  1563  		HooksURL         string    `json:"hooks_url"`
  1564  		IssueEventsURL   string    `json:"issue_events_url"`
  1565  		EventsURL        string    `json:"events_url"`
  1566  		AssigneesURL     string    `json:"assignees_url"`
  1567  		BranchesURL      string    `json:"branches_url"`
  1568  		TagsURL          string    `json:"tags_url"`
  1569  		BlobsURL         string    `json:"blobs_url"`
  1570  		GitTagsURL       string    `json:"git_tags_url"`
  1571  		GitRefsURL       string    `json:"git_refs_url"`
  1572  		TreesURL         string    `json:"trees_url"`
  1573  		StatusesURL      string    `json:"statuses_url"`
  1574  		LanguagesURL     string    `json:"languages_url"`
  1575  		StargazersURL    string    `json:"stargazers_url"`
  1576  		ContributorsURL  string    `json:"contributors_url"`
  1577  		SubscribersURL   string    `json:"subscribers_url"`
  1578  		SubscriptionURL  string    `json:"subscription_url"`
  1579  		CommitsURL       string    `json:"commits_url"`
  1580  		GitCommitsURL    string    `json:"git_commits_url"`
  1581  		CommentsURL      string    `json:"comments_url"`
  1582  		IssueCommentURL  string    `json:"issue_comment_url"`
  1583  		ContentsURL      string    `json:"contents_url"`
  1584  		CompareURL       string    `json:"compare_url"`
  1585  		MergesURL        string    `json:"merges_url"`
  1586  		ArchiveURL       string    `json:"archive_url"`
  1587  		DownloadsURL     string    `json:"downloads_url"`
  1588  		IssuesURL        string    `json:"issues_url"`
  1589  		PullsURL         string    `json:"pulls_url"`
  1590  		MilestonesURL    string    `json:"milestones_url"`
  1591  		NotificationsURL string    `json:"notifications_url"`
  1592  		LabelsURL        string    `json:"labels_url"`
  1593  		ReleasesURL      string    `json:"releases_url"`
  1594  		CreatedAt        time.Time `json:"created_at"`
  1595  		UpdatedAt        time.Time `json:"updated_at"`
  1596  		PushedAt         time.Time `json:"pushed_at"`
  1597  		GitURL           string    `json:"git_url"`
  1598  		SSHURL           string    `json:"ssh_url"`
  1599  		CloneURL         string    `json:"clone_url"`
  1600  		SvnURL           string    `json:"svn_url"`
  1601  		Homepage         *string   `json:"homepage"`
  1602  		Size             int64     `json:"size"`
  1603  		StargazersCount  int64     `json:"stargazers_count"`
  1604  		WatchersCount    int64     `json:"watchers_count"`
  1605  		Language         *string   `json:"language"`
  1606  		HasIssues        bool      `json:"has_issues"`
  1607  		HasDownloads     bool      `json:"has_downloads"`
  1608  		HasWiki          bool      `json:"has_wiki"`
  1609  		HasPages         bool      `json:"has_pages"`
  1610  		ForksCount       int64     `json:"forks_count"`
  1611  		MirrorURL        *string   `json:"mirror_url"`
  1612  		OpenIssuesCount  int64     `json:"open_issues_count"`
  1613  		Forks            int64     `json:"forks"`
  1614  		OpenIssues       int64     `json:"open_issues"`
  1615  		Watchers         int64     `json:"watchers"`
  1616  		DefaultBranch    string    `json:"default_branch"`
  1617  	} `json:"repository"`
  1618  	Sender struct {
  1619  		Login             string `json:"login"`
  1620  		ID                int64  `json:"id"`
  1621  		NodeID            string `json:"node_id"`
  1622  		AvatarURL         string `json:"avatar_url"`
  1623  		GravatarID        string `json:"gravatar_id"`
  1624  		URL               string `json:"url"`
  1625  		HTMLURL           string `json:"html_url"`
  1626  		FollowersURL      string `json:"followers_url"`
  1627  		FollowingURL      string `json:"following_url"`
  1628  		GistsURL          string `json:"gists_url"`
  1629  		StarredURL        string `json:"starred_url"`
  1630  		SubscriptionsURL  string `json:"subscriptions_url"`
  1631  		OrganizationsURL  string `json:"organizations_url"`
  1632  		ReposURL          string `json:"repos_url"`
  1633  		EventsURL         string `json:"events_url"`
  1634  		ReceivedEventsURL string `json:"received_events_url"`
  1635  		Type              string `json:"type"`
  1636  		SiteAdmin         bool   `json:"site_admin"`
  1637  	} `json:"sender"`
  1638  }
  1639  
  1640  // GollumPayload contains the information for GitHub's gollum hook event
  1641  type GollumPayload struct {
  1642  	Pages []struct {
  1643  		PageName string  `json:"page_name"`
  1644  		Title    string  `json:"title"`
  1645  		Summary  *string `json:"summary"`
  1646  		Action   string  `json:"action"`
  1647  		Sha      string  `json:"sha"`
  1648  		HTMLURL  string  `json:"html_url"`
  1649  	} `json:"pages"`
  1650  	Repository struct {
  1651  		ID       int64  `json:"id"`
  1652  		NodeID   string `json:"node_id"`
  1653  		Name     string `json:"name"`
  1654  		FullName string `json:"full_name"`
  1655  		Owner    struct {
  1656  			Login             string `json:"login"`
  1657  			ID                int64  `json:"id"`
  1658  			NodeID            string `json:"node_id"`
  1659  			AvatarURL         string `json:"avatar_url"`
  1660  			GravatarID        string `json:"gravatar_id"`
  1661  			URL               string `json:"url"`
  1662  			HTMLURL           string `json:"html_url"`
  1663  			FollowersURL      string `json:"followers_url"`
  1664  			FollowingURL      string `json:"following_url"`
  1665  			GistsURL          string `json:"gists_url"`
  1666  			StarredURL        string `json:"starred_url"`
  1667  			SubscriptionsURL  string `json:"subscriptions_url"`
  1668  			OrganizationsURL  string `json:"organizations_url"`
  1669  			ReposURL          string `json:"repos_url"`
  1670  			EventsURL         string `json:"events_url"`
  1671  			ReceivedEventsURL string `json:"received_events_url"`
  1672  			Type              string `json:"type"`
  1673  			SiteAdmin         bool   `json:"site_admin"`
  1674  		} `json:"owner"`
  1675  		Private          bool      `json:"private"`
  1676  		HTMLURL          string    `json:"html_url"`
  1677  		Description      string    `json:"description"`
  1678  		Fork             bool      `json:"fork"`
  1679  		URL              string    `json:"url"`
  1680  		ForksURL         string    `json:"forks_url"`
  1681  		KeysURL          string    `json:"keys_url"`
  1682  		CollaboratorsURL string    `json:"collaborators_url"`
  1683  		TeamsURL         string    `json:"teams_url"`
  1684  		HooksURL         string    `json:"hooks_url"`
  1685  		IssueEventsURL   string    `json:"issue_events_url"`
  1686  		EventsURL        string    `json:"events_url"`
  1687  		AssigneesURL     string    `json:"assignees_url"`
  1688  		BranchesURL      string    `json:"branches_url"`
  1689  		TagsURL          string    `json:"tags_url"`
  1690  		BlobsURL         string    `json:"blobs_url"`
  1691  		GitTagsURL       string    `json:"git_tags_url"`
  1692  		GitRefsURL       string    `json:"git_refs_url"`
  1693  		TreesURL         string    `json:"trees_url"`
  1694  		StatusesURL      string    `json:"statuses_url"`
  1695  		LanguagesURL     string    `json:"languages_url"`
  1696  		StargazersURL    string    `json:"stargazers_url"`
  1697  		ContributorsURL  string    `json:"contributors_url"`
  1698  		SubscribersURL   string    `json:"subscribers_url"`
  1699  		SubscriptionURL  string    `json:"subscription_url"`
  1700  		CommitsURL       string    `json:"commits_url"`
  1701  		GitCommitsURL    string    `json:"git_commits_url"`
  1702  		CommentsURL      string    `json:"comments_url"`
  1703  		IssueCommentURL  string    `json:"issue_comment_url"`
  1704  		ContentsURL      string    `json:"contents_url"`
  1705  		CompareURL       string    `json:"compare_url"`
  1706  		MergesURL        string    `json:"merges_url"`
  1707  		ArchiveURL       string    `json:"archive_url"`
  1708  		DownloadsURL     string    `json:"downloads_url"`
  1709  		IssuesURL        string    `json:"issues_url"`
  1710  		PullsURL         string    `json:"pulls_url"`
  1711  		MilestonesURL    string    `json:"milestones_url"`
  1712  		NotificationsURL string    `json:"notifications_url"`
  1713  		LabelsURL        string    `json:"labels_url"`
  1714  		ReleasesURL      string    `json:"releases_url"`
  1715  		CreatedAt        time.Time `json:"created_at"`
  1716  		UpdatedAt        time.Time `json:"updated_at"`
  1717  		PushedAt         time.Time `json:"pushed_at"`
  1718  		GitURL           string    `json:"git_url"`
  1719  		SSHURL           string    `json:"ssh_url"`
  1720  		CloneURL         string    `json:"clone_url"`
  1721  		SvnURL           string    `json:"svn_url"`
  1722  		Homepage         *string   `json:"homepage"`
  1723  		Size             int64     `json:"size"`
  1724  		StargazersCount  int64     `json:"stargazers_count"`
  1725  		WatchersCount    int64     `json:"watchers_count"`
  1726  		Language         *string   `json:"language"`
  1727  		HasIssues        bool      `json:"has_issues"`
  1728  		HasDownloads     bool      `json:"has_downloads"`
  1729  		HasWiki          bool      `json:"has_wiki"`
  1730  		HasPages         bool      `json:"has_pages"`
  1731  		ForksCount       int64     `json:"forks_count"`
  1732  		MirrorURL        *string   `json:"mirror_url"`
  1733  		OpenIssuesCount  int64     `json:"open_issues_count"`
  1734  		Forks            int64     `json:"forks"`
  1735  		OpenIssues       int64     `json:"open_issues"`
  1736  		Watchers         int64     `json:"watchers"`
  1737  		DefaultBranch    string    `json:"default_branch"`
  1738  	} `json:"repository"`
  1739  	Sender struct {
  1740  		Login             string `json:"login"`
  1741  		ID                int64  `json:"id"`
  1742  		NodeID            string `json:"node_id"`
  1743  		AvatarURL         string `json:"avatar_url"`
  1744  		GravatarID        string `json:"gravatar_id"`
  1745  		URL               string `json:"url"`
  1746  		HTMLURL           string `json:"html_url"`
  1747  		FollowersURL      string `json:"followers_url"`
  1748  		FollowingURL      string `json:"following_url"`
  1749  		GistsURL          string `json:"gists_url"`
  1750  		StarredURL        string `json:"starred_url"`
  1751  		SubscriptionsURL  string `json:"subscriptions_url"`
  1752  		OrganizationsURL  string `json:"organizations_url"`
  1753  		ReposURL          string `json:"repos_url"`
  1754  		EventsURL         string `json:"events_url"`
  1755  		ReceivedEventsURL string `json:"received_events_url"`
  1756  		Type              string `json:"type"`
  1757  		SiteAdmin         bool   `json:"site_admin"`
  1758  	} `json:"sender"`
  1759  }
  1760  
  1761  // InstallationPayload contains the information for GitHub's installation and integration_installation hook events
  1762  type InstallationPayload struct {
  1763  	Action       string `json:"action"`
  1764  	Installation struct {
  1765  		ID      int64  `json:"id"`
  1766  		NodeID  string `json:"node_id"`
  1767  		Account struct {
  1768  			Login             string `json:"login"`
  1769  			ID                int64  `json:"id"`
  1770  			NodeID            string `json:"node_id"`
  1771  			AvatarURL         string `json:"avatar_url"`
  1772  			GravatarID        string `json:"gravatar_id"`
  1773  			URL               string `json:"url"`
  1774  			HTMLURL           string `json:"html_url"`
  1775  			FollowersURL      string `json:"followers_url"`
  1776  			FollowingURL      string `json:"following_url"`
  1777  			GistsURL          string `json:"gists_url"`
  1778  			StarredURL        string `json:"starred_url"`
  1779  			SubscriptionsURL  string `json:"subscriptions_url"`
  1780  			OrganizationsURL  string `json:"organizations_url"`
  1781  			ReposURL          string `json:"repos_url"`
  1782  			EventsURL         string `json:"events_url"`
  1783  			ReceivedEventsURL string `json:"received_events_url"`
  1784  			Type              string `json:"type"`
  1785  			SiteAdmin         bool   `json:"site_admin"`
  1786  		} `json:"account"`
  1787  		RepositorySelection string `json:"repository_selection"`
  1788  		AccessTokensURL     string `json:"access_tokens_url"`
  1789  		RepositoriesURL     string `json:"repositories_url"`
  1790  		HTMLURL             string `json:"html_url"`
  1791  		AppID               int    `json:"app_id"`
  1792  		TargetID            int    `json:"target_id"`
  1793  		TargetType          string `json:"target_type"`
  1794  		Permissions         struct {
  1795  			Issues             string `json:"issues"`
  1796  			Metadata           string `json:"metadata"`
  1797  			PullRequests       string `json:"pull_requests"`
  1798  			RepositoryProjects string `json:"repository_projects"`
  1799  		} `json:"permissions"`
  1800  		Events         []string  `json:"events"`
  1801  		CreatedAt      time.Time `json:"created_at"`
  1802  		UpdatedAt      time.Time `json:"updated_at"`
  1803  		SingleFileName *string   `json:"single_file_name"`
  1804  	} `json:"installation"`
  1805  	Repositories []struct {
  1806  		ID       int64  `json:"id"`
  1807  		NodeID   string `json:"node_id"`
  1808  		Name     string `json:"name"`
  1809  		FullName string `json:"full_name"`
  1810  		Private  bool   `json:"private"`
  1811  	} `json:"repositories"`
  1812  	Sender struct {
  1813  		Login             string `json:"login"`
  1814  		ID                int64  `json:"id"`
  1815  		NodeID            string `json:"node_id"`
  1816  		AvatarURL         string `json:"avatar_url"`
  1817  		GravatarID        string `json:"gravatar_id"`
  1818  		URL               string `json:"url"`
  1819  		HTMLURL           string `json:"html_url"`
  1820  		FollowersURL      string `json:"followers_url"`
  1821  		FollowingURL      string `json:"following_url"`
  1822  		GistsURL          string `json:"gists_url"`
  1823  		StarredURL        string `json:"starred_url"`
  1824  		SubscriptionsURL  string `json:"subscriptions_url"`
  1825  		OrganizationsURL  string `json:"organizations_url"`
  1826  		ReposURL          string `json:"repos_url"`
  1827  		EventsURL         string `json:"events_url"`
  1828  		ReceivedEventsURL string `json:"received_events_url"`
  1829  		Type              string `json:"type"`
  1830  		SiteAdmin         bool   `json:"site_admin"`
  1831  	} `json:"sender"`
  1832  }
  1833  
  1834  // InstallationRepositoriesPayload contains the information for GitHub's installation_repositories hook events
  1835  type InstallationRepositoriesPayload struct {
  1836  	Action       string `json:"action"`
  1837  	Installation struct {
  1838  		ID      int64  `json:"id"`
  1839  		NodeID  string `json:"node_id"`
  1840  		Account struct {
  1841  			Login             string `json:"login"`
  1842  			ID                int64  `json:"id"`
  1843  			NodeID            string `json:"node_id"`
  1844  			AvatarURL         string `json:"avatar_url"`
  1845  			GravatarID        string `json:"gravatar_id"`
  1846  			URL               string `json:"url"`
  1847  			HTMLURL           string `json:"html_url"`
  1848  			FollowersURL      string `json:"followers_url"`
  1849  			FollowingURL      string `json:"following_url"`
  1850  			GistsURL          string `json:"gists_url"`
  1851  			StarredURL        string `json:"starred_url"`
  1852  			SubscriptionsURL  string `json:"subscriptions_url"`
  1853  			OrganizationsURL  string `json:"organizations_url"`
  1854  			ReposURL          string `json:"repos_url"`
  1855  			EventsURL         string `json:"events_url"`
  1856  			ReceivedEventsURL string `json:"received_events_url"`
  1857  			Type              string `json:"type"`
  1858  			SiteAdmin         bool   `json:"site_admin"`
  1859  		} `json:"account"`
  1860  		RepositorySelection string `json:"repository_selection"`
  1861  		AccessTokensURL     string `json:"access_tokens_url"`
  1862  		RepositoriesURL     string `json:"repositories_url"`
  1863  		HTMLURL             string `json:"html_url"`
  1864  		AppID               int    `json:"app_id"`
  1865  		TargetID            int    `json:"target_id"`
  1866  		TargetType          string `json:"target_type"`
  1867  		Permissions         struct {
  1868  			Issues              string `json:"issues"`
  1869  			Metadata            string `json:"metadata"`
  1870  			PullRequests        string `json:"pull_requests"`
  1871  			RepositoryProjects  string `json:"repository_projects"`
  1872  			VulnerabilityAlerts string `json:"vulnerability_alerts"`
  1873  			Statuses            string `json:"statuses"`
  1874  			Administration      string `json:"administration"`
  1875  			Deployments         string `json:"deployments"`
  1876  			Contents            string `json:"contents"`
  1877  		} `json:"permissions"`
  1878  		Events         []string  `json:"events"`
  1879  		CreatedAt      time.Time `json:"created_at"`
  1880  		UpdatedAt      time.Time `json:"updated_at"`
  1881  		SingleFileName *string   `json:"single_file_name"`
  1882  	} `json:"installation"`
  1883  	RepositoriesAdded []struct {
  1884  		ID       int64  `json:"id"`
  1885  		NodeID   string `json:"node_id"`
  1886  		Name     string `json:"name"`
  1887  		FullName string `json:"full_name"`
  1888  		Private  bool   `json:"private"`
  1889  	} `json:"repositories_added"`
  1890  	RepositoriesRemoved []struct {
  1891  		ID       int64  `json:"id"`
  1892  		NodeID   string `json:"node_id"`
  1893  		Name     string `json:"name"`
  1894  		FullName string `json:"full_name"`
  1895  		Private  bool   `json:"private"`
  1896  	} `json:"repositories_removed"`
  1897  	Sender struct {
  1898  		Login             string `json:"login"`
  1899  		ID                int64  `json:"id"`
  1900  		NodeID            string `json:"node_id"`
  1901  		AvatarURL         string `json:"avatar_url"`
  1902  		GravatarID        string `json:"gravatar_id"`
  1903  		URL               string `json:"url"`
  1904  		HTMLURL           string `json:"html_url"`
  1905  		FollowersURL      string `json:"followers_url"`
  1906  		FollowingURL      string `json:"following_url"`
  1907  		GistsURL          string `json:"gists_url"`
  1908  		StarredURL        string `json:"starred_url"`
  1909  		SubscriptionsURL  string `json:"subscriptions_url"`
  1910  		OrganizationsURL  string `json:"organizations_url"`
  1911  		ReposURL          string `json:"repos_url"`
  1912  		EventsURL         string `json:"events_url"`
  1913  		ReceivedEventsURL string `json:"received_events_url"`
  1914  		Type              string `json:"type"`
  1915  		SiteAdmin         bool   `json:"site_admin"`
  1916  	} `json:"sender"`
  1917  }
  1918  
  1919  // IssueCommentPayload contains the information for GitHub's issue_comment hook event
  1920  type IssueCommentPayload struct {
  1921  	Action string `json:"action"`
  1922  	Issue  struct {
  1923  		URL         string `json:"url"`
  1924  		LabelsURL   string `json:"labels_url"`
  1925  		CommentsURL string `json:"comments_url"`
  1926  		EventsURL   string `json:"events_url"`
  1927  		HTMLURL     string `json:"html_url"`
  1928  		ID          int64  `json:"id"`
  1929  		NodeID      string `json:"node_id"`
  1930  		Number      int64  `json:"number"`
  1931  		Title       string `json:"title"`
  1932  		User        struct {
  1933  			Login             string `json:"login"`
  1934  			ID                int64  `json:"id"`
  1935  			NodeID            string `json:"node_id"`
  1936  			AvatarURL         string `json:"avatar_url"`
  1937  			GravatarID        string `json:"gravatar_id"`
  1938  			URL               string `json:"url"`
  1939  			HTMLURL           string `json:"html_url"`
  1940  			FollowersURL      string `json:"followers_url"`
  1941  			FollowingURL      string `json:"following_url"`
  1942  			GistsURL          string `json:"gists_url"`
  1943  			StarredURL        string `json:"starred_url"`
  1944  			SubscriptionsURL  string `json:"subscriptions_url"`
  1945  			OrganizationsURL  string `json:"organizations_url"`
  1946  			ReposURL          string `json:"repos_url"`
  1947  			EventsURL         string `json:"events_url"`
  1948  			ReceivedEventsURL string `json:"received_events_url"`
  1949  			Type              string `json:"type"`
  1950  			SiteAdmin         bool   `json:"site_admin"`
  1951  		} `json:"user"`
  1952  		Labels []struct {
  1953  			ID          int64  `json:"id"`
  1954  			NodeID      string `json:"node_id"`
  1955  			Description string `json:"description"`
  1956  			URL         string `json:"url"`
  1957  			Name        string `json:"name"`
  1958  			Color       string `json:"color"`
  1959  			Default     bool   `json:"default"`
  1960  		} `json:"labels"`
  1961  		State       string      `json:"state"`
  1962  		Locked      bool        `json:"locked"`
  1963  		Assignee    *Assignee   `json:"assignee"`
  1964  		Assignees   []*Assignee `json:"assignees"`
  1965  		Milestone   *Milestone  `json:"milestone"`
  1966  		Comments    int64       `json:"comments"`
  1967  		CreatedAt   time.Time   `json:"created_at"`
  1968  		UpdatedAt   time.Time   `json:"updated_at"`
  1969  		ClosedAt    *time.Time  `json:"closed_at"`
  1970  		PullRequest *struct {
  1971  			URL      string `json:"url"`
  1972  			HTMLURL  string `json:"html_url"`
  1973  			DiffURL  string `json:"diff_url"`
  1974  			PatchURL string `json:"patch_url"`
  1975  		} `json:"pull_request"`
  1976  		Body string `json:"body"`
  1977  	} `json:"issue"`
  1978  	Comment struct {
  1979  		URL      string `json:"url"`
  1980  		HTMLURL  string `json:"html_url"`
  1981  		IssueURL string `json:"issue_url"`
  1982  		ID       int64  `json:"id"`
  1983  		NodeID   string `json:"node_id"`
  1984  		User     struct {
  1985  			Login             string `json:"login"`
  1986  			ID                int64  `json:"id"`
  1987  			NodeID            string `json:"node_id"`
  1988  			AvatarURL         string `json:"avatar_url"`
  1989  			GravatarID        string `json:"gravatar_id"`
  1990  			URL               string `json:"url"`
  1991  			HTMLURL           string `json:"html_url"`
  1992  			FollowersURL      string `json:"followers_url"`
  1993  			FollowingURL      string `json:"following_url"`
  1994  			GistsURL          string `json:"gists_url"`
  1995  			StarredURL        string `json:"starred_url"`
  1996  			SubscriptionsURL  string `json:"subscriptions_url"`
  1997  			OrganizationsURL  string `json:"organizations_url"`
  1998  			ReposURL          string `json:"repos_url"`
  1999  			EventsURL         string `json:"events_url"`
  2000  			ReceivedEventsURL string `json:"received_events_url"`
  2001  			Type              string `json:"type"`
  2002  			SiteAdmin         bool   `json:"site_admin"`
  2003  		} `json:"user"`
  2004  		CreatedAt         time.Time `json:"created_at"`
  2005  		UpdatedAt         time.Time `json:"updated_at"`
  2006  		Body              string    `json:"body"`
  2007  		AuthorAssociation string    `json:"author_association"`
  2008  	} `json:"comment"`
  2009  	Changes *struct {
  2010  		Body *struct {
  2011  			From string `json:"from"`
  2012  		} `json:"body"`
  2013  	} `json:"changes"`
  2014  	Repository struct {
  2015  		ID       int64  `json:"id"`
  2016  		NodeID   string `json:"node_id"`
  2017  		Name     string `json:"name"`
  2018  		FullName string `json:"full_name"`
  2019  		Owner    struct {
  2020  			Login             string `json:"login"`
  2021  			ID                int64  `json:"id"`
  2022  			NodeID            string `json:"node_id"`
  2023  			AvatarURL         string `json:"avatar_url"`
  2024  			GravatarID        string `json:"gravatar_id"`
  2025  			URL               string `json:"url"`
  2026  			HTMLURL           string `json:"html_url"`
  2027  			FollowersURL      string `json:"followers_url"`
  2028  			FollowingURL      string `json:"following_url"`
  2029  			GistsURL          string `json:"gists_url"`
  2030  			StarredURL        string `json:"starred_url"`
  2031  			SubscriptionsURL  string `json:"subscriptions_url"`
  2032  			OrganizationsURL  string `json:"organizations_url"`
  2033  			ReposURL          string `json:"repos_url"`
  2034  			EventsURL         string `json:"events_url"`
  2035  			ReceivedEventsURL string `json:"received_events_url"`
  2036  			Type              string `json:"type"`
  2037  			SiteAdmin         bool   `json:"site_admin"`
  2038  		} `json:"owner"`
  2039  		Private          bool      `json:"private"`
  2040  		HTMLURL          string    `json:"html_url"`
  2041  		Description      string    `json:"description"`
  2042  		Fork             bool      `json:"fork"`
  2043  		URL              string    `json:"url"`
  2044  		ForksURL         string    `json:"forks_url"`
  2045  		KeysURL          string    `json:"keys_url"`
  2046  		CollaboratorsURL string    `json:"collaborators_url"`
  2047  		TeamsURL         string    `json:"teams_url"`
  2048  		HooksURL         string    `json:"hooks_url"`
  2049  		IssueEventsURL   string    `json:"issue_events_url"`
  2050  		EventsURL        string    `json:"events_url"`
  2051  		AssigneesURL     string    `json:"assignees_url"`
  2052  		BranchesURL      string    `json:"branches_url"`
  2053  		TagsURL          string    `json:"tags_url"`
  2054  		BlobsURL         string    `json:"blobs_url"`
  2055  		GitTagsURL       string    `json:"git_tags_url"`
  2056  		GitRefsURL       string    `json:"git_refs_url"`
  2057  		TreesURL         string    `json:"trees_url"`
  2058  		StatusesURL      string    `json:"statuses_url"`
  2059  		LanguagesURL     string    `json:"languages_url"`
  2060  		StargazersURL    string    `json:"stargazers_url"`
  2061  		ContributorsURL  string    `json:"contributors_url"`
  2062  		SubscribersURL   string    `json:"subscribers_url"`
  2063  		SubscriptionURL  string    `json:"subscription_url"`
  2064  		CommitsURL       string    `json:"commits_url"`
  2065  		GitCommitsURL    string    `json:"git_commits_url"`
  2066  		CommentsURL      string    `json:"comments_url"`
  2067  		IssueCommentURL  string    `json:"issue_comment_url"`
  2068  		ContentsURL      string    `json:"contents_url"`
  2069  		CompareURL       string    `json:"compare_url"`
  2070  		MergesURL        string    `json:"merges_url"`
  2071  		ArchiveURL       string    `json:"archive_url"`
  2072  		DownloadsURL     string    `json:"downloads_url"`
  2073  		IssuesURL        string    `json:"issues_url"`
  2074  		PullsURL         string    `json:"pulls_url"`
  2075  		MilestonesURL    string    `json:"milestones_url"`
  2076  		NotificationsURL string    `json:"notifications_url"`
  2077  		LabelsURL        string    `json:"labels_url"`
  2078  		ReleasesURL      string    `json:"releases_url"`
  2079  		CreatedAt        time.Time `json:"created_at"`
  2080  		UpdatedAt        time.Time `json:"updated_at"`
  2081  		PushedAt         time.Time `json:"pushed_at"`
  2082  		GitURL           string    `json:"git_url"`
  2083  		SSHURL           string    `json:"ssh_url"`
  2084  		CloneURL         string    `json:"clone_url"`
  2085  		SvnURL           string    `json:"svn_url"`
  2086  		Homepage         *string   `json:"homepage"`
  2087  		Size             int64     `json:"size"`
  2088  		StargazersCount  int64     `json:"stargazers_count"`
  2089  		WatchersCount    int64     `json:"watchers_count"`
  2090  		Language         *string   `json:"language"`
  2091  		HasIssues        bool      `json:"has_issues"`
  2092  		HasDownloads     bool      `json:"has_downloads"`
  2093  		HasWiki          bool      `json:"has_wiki"`
  2094  		HasPages         bool      `json:"has_pages"`
  2095  		ForksCount       int64     `json:"forks_count"`
  2096  		MirrorURL        *string   `json:"mirror_url"`
  2097  		OpenIssuesCount  int64     `json:"open_issues_count"`
  2098  		Forks            int64     `json:"forks"`
  2099  		OpenIssues       int64     `json:"open_issues"`
  2100  		Watchers         int64     `json:"watchers"`
  2101  		DefaultBranch    string    `json:"default_branch"`
  2102  	} `json:"repository"`
  2103  	Sender struct {
  2104  		Login             string `json:"login"`
  2105  		ID                int64  `json:"id"`
  2106  		NodeID            string `json:"node_id"`
  2107  		AvatarURL         string `json:"avatar_url"`
  2108  		GravatarID        string `json:"gravatar_id"`
  2109  		URL               string `json:"url"`
  2110  		HTMLURL           string `json:"html_url"`
  2111  		FollowersURL      string `json:"followers_url"`
  2112  		FollowingURL      string `json:"following_url"`
  2113  		GistsURL          string `json:"gists_url"`
  2114  		StarredURL        string `json:"starred_url"`
  2115  		SubscriptionsURL  string `json:"subscriptions_url"`
  2116  		OrganizationsURL  string `json:"organizations_url"`
  2117  		ReposURL          string `json:"repos_url"`
  2118  		EventsURL         string `json:"events_url"`
  2119  		ReceivedEventsURL string `json:"received_events_url"`
  2120  		Type              string `json:"type"`
  2121  		SiteAdmin         bool   `json:"site_admin"`
  2122  	} `json:"sender"`
  2123  	Installation *struct {
  2124  		ID int64 `json:"id"`
  2125  	} `json:"installation"`
  2126  }
  2127  
  2128  // IssuesPayload contains the information for GitHub's issues hook event
  2129  type IssuesPayload struct {
  2130  	Action string `json:"action"`
  2131  	Issue  struct {
  2132  		URL         string `json:"url"`
  2133  		LabelsURL   string `json:"labels_url"`
  2134  		CommentsURL string `json:"comments_url"`
  2135  		EventsURL   string `json:"events_url"`
  2136  		HTMLURL     string `json:"html_url"`
  2137  		ID          int64  `json:"id"`
  2138  		NodeID      string `json:"node_id"`
  2139  		Number      int64  `json:"number"`
  2140  		Title       string `json:"title"`
  2141  		User        struct {
  2142  			Login             string `json:"login"`
  2143  			ID                int64  `json:"id"`
  2144  			NodeID            string `json:"node_id"`
  2145  			AvatarURL         string `json:"avatar_url"`
  2146  			GravatarID        string `json:"gravatar_id"`
  2147  			URL               string `json:"url"`
  2148  			HTMLURL           string `json:"html_url"`
  2149  			FollowersURL      string `json:"followers_url"`
  2150  			FollowingURL      string `json:"following_url"`
  2151  			GistsURL          string `json:"gists_url"`
  2152  			StarredURL        string `json:"starred_url"`
  2153  			SubscriptionsURL  string `json:"subscriptions_url"`
  2154  			OrganizationsURL  string `json:"organizations_url"`
  2155  			ReposURL          string `json:"repos_url"`
  2156  			EventsURL         string `json:"events_url"`
  2157  			ReceivedEventsURL string `json:"received_events_url"`
  2158  			Type              string `json:"type"`
  2159  			SiteAdmin         bool   `json:"site_admin"`
  2160  		} `json:"user"`
  2161  		Labels []struct {
  2162  			ID          int64  `json:"id"`
  2163  			NodeID      string `json:"node_id"`
  2164  			Description string `json:"description"`
  2165  			URL         string `json:"url"`
  2166  			Name        string `json:"name"`
  2167  			Color       string `json:"color"`
  2168  			Default     bool   `json:"default"`
  2169  		} `json:"labels"`
  2170  		State     string      `json:"state"`
  2171  		Locked    bool        `json:"locked"`
  2172  		Assignee  *Assignee   `json:"assignee"`
  2173  		Assignees []*Assignee `json:"assignees"`
  2174  		Milestone *Milestone  `json:"milestone"`
  2175  		Comments  int64       `json:"comments"`
  2176  		CreatedAt time.Time   `json:"created_at"`
  2177  		UpdatedAt time.Time   `json:"updated_at"`
  2178  		ClosedAt  *time.Time  `json:"closed_at"`
  2179  		Body      string      `json:"body"`
  2180  	} `json:"issue"`
  2181  	Changes *struct {
  2182  		Title *struct {
  2183  			From string `json:"from"`
  2184  		} `json:"title"`
  2185  		Body *struct {
  2186  			From string `json:"from"`
  2187  		} `json:"body"`
  2188  	} `json:"changes"`
  2189  	Repository struct {
  2190  		ID       int64  `json:"id"`
  2191  		NodeID   string `json:"node_id"`
  2192  		Name     string `json:"name"`
  2193  		FullName string `json:"full_name"`
  2194  		Owner    struct {
  2195  			Login             string `json:"login"`
  2196  			ID                int64  `json:"id"`
  2197  			NodeID            string `json:"node_id"`
  2198  			AvatarURL         string `json:"avatar_url"`
  2199  			GravatarID        string `json:"gravatar_id"`
  2200  			URL               string `json:"url"`
  2201  			HTMLURL           string `json:"html_url"`
  2202  			FollowersURL      string `json:"followers_url"`
  2203  			FollowingURL      string `json:"following_url"`
  2204  			GistsURL          string `json:"gists_url"`
  2205  			StarredURL        string `json:"starred_url"`
  2206  			SubscriptionsURL  string `json:"subscriptions_url"`
  2207  			OrganizationsURL  string `json:"organizations_url"`
  2208  			ReposURL          string `json:"repos_url"`
  2209  			EventsURL         string `json:"events_url"`
  2210  			ReceivedEventsURL string `json:"received_events_url"`
  2211  			Type              string `json:"type"`
  2212  			SiteAdmin         bool   `json:"site_admin"`
  2213  		} `json:"owner"`
  2214  		Private          bool      `json:"private"`
  2215  		HTMLURL          string    `json:"html_url"`
  2216  		Description      string    `json:"description"`
  2217  		Fork             bool      `json:"fork"`
  2218  		URL              string    `json:"url"`
  2219  		ForksURL         string    `json:"forks_url"`
  2220  		KeysURL          string    `json:"keys_url"`
  2221  		CollaboratorsURL string    `json:"collaborators_url"`
  2222  		TeamsURL         string    `json:"teams_url"`
  2223  		HooksURL         string    `json:"hooks_url"`
  2224  		IssueEventsURL   string    `json:"issue_events_url"`
  2225  		EventsURL        string    `json:"events_url"`
  2226  		AssigneesURL     string    `json:"assignees_url"`
  2227  		BranchesURL      string    `json:"branches_url"`
  2228  		TagsURL          string    `json:"tags_url"`
  2229  		BlobsURL         string    `json:"blobs_url"`
  2230  		GitTagsURL       string    `json:"git_tags_url"`
  2231  		GitRefsURL       string    `json:"git_refs_url"`
  2232  		TreesURL         string    `json:"trees_url"`
  2233  		StatusesURL      string    `json:"statuses_url"`
  2234  		LanguagesURL     string    `json:"languages_url"`
  2235  		StargazersURL    string    `json:"stargazers_url"`
  2236  		ContributorsURL  string    `json:"contributors_url"`
  2237  		SubscribersURL   string    `json:"subscribers_url"`
  2238  		SubscriptionURL  string    `json:"subscription_url"`
  2239  		CommitsURL       string    `json:"commits_url"`
  2240  		GitCommitsURL    string    `json:"git_commits_url"`
  2241  		CommentsURL      string    `json:"comments_url"`
  2242  		IssueCommentURL  string    `json:"issue_comment_url"`
  2243  		ContentsURL      string    `json:"contents_url"`
  2244  		CompareURL       string    `json:"compare_url"`
  2245  		MergesURL        string    `json:"merges_url"`
  2246  		ArchiveURL       string    `json:"archive_url"`
  2247  		DownloadsURL     string    `json:"downloads_url"`
  2248  		IssuesURL        string    `json:"issues_url"`
  2249  		PullsURL         string    `json:"pulls_url"`
  2250  		MilestonesURL    string    `json:"milestones_url"`
  2251  		NotificationsURL string    `json:"notifications_url"`
  2252  		LabelsURL        string    `json:"labels_url"`
  2253  		ReleasesURL      string    `json:"releases_url"`
  2254  		CreatedAt        time.Time `json:"created_at"`
  2255  		UpdatedAt        time.Time `json:"updated_at"`
  2256  		PushedAt         time.Time `json:"pushed_at"`
  2257  		GitURL           string    `json:"git_url"`
  2258  		SSHURL           string    `json:"ssh_url"`
  2259  		CloneURL         string    `json:"clone_url"`
  2260  		SvnURL           string    `json:"svn_url"`
  2261  		Homepage         *string   `json:"homepage"`
  2262  		Size             int64     `json:"size"`
  2263  		StargazersCount  int64     `json:"stargazers_count"`
  2264  		WatchersCount    int64     `json:"watchers_count"`
  2265  		Language         *string   `json:"language"`
  2266  		HasIssues        bool      `json:"has_issues"`
  2267  		HasDownloads     bool      `json:"has_downloads"`
  2268  		HasWiki          bool      `json:"has_wiki"`
  2269  		HasPages         bool      `json:"has_pages"`
  2270  		ForksCount       int64     `json:"forks_count"`
  2271  		MirrorURL        *string   `json:"mirror_url"`
  2272  		OpenIssuesCount  int64     `json:"open_issues_count"`
  2273  		Forks            int64     `json:"forks"`
  2274  		OpenIssues       int64     `json:"open_issues"`
  2275  		Watchers         int64     `json:"watchers"`
  2276  		DefaultBranch    string    `json:"default_branch"`
  2277  	} `json:"repository"`
  2278  	Sender struct {
  2279  		Login             string `json:"login"`
  2280  		ID                int64  `json:"id"`
  2281  		NodeID            string `json:"node_id"`
  2282  		AvatarURL         string `json:"avatar_url"`
  2283  		GravatarID        string `json:"gravatar_id"`
  2284  		URL               string `json:"url"`
  2285  		HTMLURL           string `json:"html_url"`
  2286  		FollowersURL      string `json:"followers_url"`
  2287  		FollowingURL      string `json:"following_url"`
  2288  		GistsURL          string `json:"gists_url"`
  2289  		StarredURL        string `json:"starred_url"`
  2290  		SubscriptionsURL  string `json:"subscriptions_url"`
  2291  		OrganizationsURL  string `json:"organizations_url"`
  2292  		ReposURL          string `json:"repos_url"`
  2293  		EventsURL         string `json:"events_url"`
  2294  		ReceivedEventsURL string `json:"received_events_url"`
  2295  		Type              string `json:"type"`
  2296  		SiteAdmin         bool   `json:"site_admin"`
  2297  	} `json:"sender"`
  2298  	Installation *struct {
  2299  		ID int64 `json:"id"`
  2300  	} `json:"installation"`
  2301  	Assignee *Assignee `json:"assignee"`
  2302  	Label    *Label    `json:"label"`
  2303  }
  2304  
  2305  // LabelPayload contains the information for GitHub's label hook event
  2306  type LabelPayload struct {
  2307  	Action string `json:"action"`
  2308  	Label  struct {
  2309  		ID          int64  `json:"id"`
  2310  		NodeID      string `json:"node_id"`
  2311  		Description string `json:"description"`
  2312  		URL         string `json:"url"`
  2313  		Name        string `json:"name"`
  2314  		Color       string `json:"color"`
  2315  	} `json:"label"`
  2316  	Repository struct {
  2317  		ID       int64  `json:"id"`
  2318  		NodeID   string `json:"node_id"`
  2319  		Name     string `json:"name"`
  2320  		FullName string `json:"full_name"`
  2321  		Owner    struct {
  2322  			Login             string `json:"login"`
  2323  			ID                int64  `json:"id"`
  2324  			NodeID            string `json:"node_id"`
  2325  			AvatarURL         string `json:"avatar_url"`
  2326  			GravatarID        string `json:"gravatar_id"`
  2327  			URL               string `json:"url"`
  2328  			HTMLURL           string `json:"html_url"`
  2329  			FollowersURL      string `json:"followers_url"`
  2330  			FollowingURL      string `json:"following_url"`
  2331  			GistsURL          string `json:"gists_url"`
  2332  			StarredURL        string `json:"starred_url"`
  2333  			SubscriptionsURL  string `json:"subscriptions_url"`
  2334  			OrganizationsURL  string `json:"organizations_url"`
  2335  			ReposURL          string `json:"repos_url"`
  2336  			EventsURL         string `json:"events_url"`
  2337  			ReceivedEventsURL string `json:"received_events_url"`
  2338  			Type              string `json:"type"`
  2339  			SiteAdmin         bool   `json:"site_admin"`
  2340  		} `json:"owner"`
  2341  		Private          bool      `json:"private"`
  2342  		HTMLURL          string    `json:"html_url"`
  2343  		Description      *string   `json:"description"`
  2344  		Fork             bool      `json:"fork"`
  2345  		URL              string    `json:"url"`
  2346  		ForksURL         string    `json:"forks_url"`
  2347  		KeysURL          string    `json:"keys_url"`
  2348  		CollaboratorsURL string    `json:"collaborators_url"`
  2349  		TeamsURL         string    `json:"teams_url"`
  2350  		HooksURL         string    `json:"hooks_url"`
  2351  		IssueEventsURL   string    `json:"issue_events_url"`
  2352  		EventsURL        string    `json:"events_url"`
  2353  		AssigneesURL     string    `json:"assignees_url"`
  2354  		BranchesURL      string    `json:"branches_url"`
  2355  		TagsURL          string    `json:"tags_url"`
  2356  		BlobsURL         string    `json:"blobs_url"`
  2357  		GitTagsURL       string    `json:"git_tags_url"`
  2358  		GitRefsURL       string    `json:"git_refs_url"`
  2359  		TreesURL         string    `json:"trees_url"`
  2360  		StatusesURL      string    `json:"statuses_url"`
  2361  		LanguagesURL     string    `json:"languages_url"`
  2362  		StargazersURL    string    `json:"stargazers_url"`
  2363  		ContributorsURL  string    `json:"contributors_url"`
  2364  		SubscribersURL   string    `json:"subscribers_url"`
  2365  		SubscriptionURL  string    `json:"subscription_url"`
  2366  		CommitsURL       string    `json:"commits_url"`
  2367  		GitCommitsURL    string    `json:"git_commits_url"`
  2368  		CommentsURL      string    `json:"comments_url"`
  2369  		IssueCommentURL  string    `json:"issue_comment_url"`
  2370  		ContentsURL      string    `json:"contents_url"`
  2371  		CompareURL       string    `json:"compare_url"`
  2372  		MergesURL        string    `json:"merges_url"`
  2373  		ArchiveURL       string    `json:"archive_url"`
  2374  		DownloadsURL     string    `json:"downloads_url"`
  2375  		IssuesURL        string    `json:"issues_url"`
  2376  		PullsURL         string    `json:"pulls_url"`
  2377  		MilestonesURL    string    `json:"milestones_url"`
  2378  		NotificationsURL string    `json:"notifications_url"`
  2379  		LabelsURL        string    `json:"labels_url"`
  2380  		ReleasesURL      string    `json:"releases_url"`
  2381  		DeploymentsURL   string    `json:"deployments_url"`
  2382  		CreatedAt        time.Time `json:"created_at"`
  2383  		UpdatedAt        time.Time `json:"updated_at"`
  2384  		PushedAt         time.Time `json:"pushed_at"`
  2385  		GitURL           string    `json:"git_url"`
  2386  		SSHURL           string    `json:"ssh_url"`
  2387  		CloneURL         string    `json:"clone_url"`
  2388  		SvnURL           string    `json:"svn_url"`
  2389  		Homepage         *string   `json:"homepage"`
  2390  		Size             int64     `json:"size"`
  2391  		StargazersCount  int64     `json:"stargazers_count"`
  2392  		WatchersCount    int64     `json:"watchers_count"`
  2393  		Language         *string   `json:"language"`
  2394  		HasIssues        bool      `json:"has_issues"`
  2395  		HasDownloads     bool      `json:"has_downloads"`
  2396  		HasWiki          bool      `json:"has_wiki"`
  2397  		HasPages         bool      `json:"has_pages"`
  2398  		ForksCount       int64     `json:"forks_count"`
  2399  		MirrorURL        *string   `json:"mirror_url"`
  2400  		OpenIssuesCount  int64     `json:"open_issues_count"`
  2401  		Forks            int64     `json:"forks"`
  2402  		OpenIssues       int64     `json:"open_issues"`
  2403  		Watchers         int64     `json:"watchers"`
  2404  		DefaultBranch    string    `json:"default_branch"`
  2405  	} `json:"repository"`
  2406  	Organization struct {
  2407  		Login            string `json:"login"`
  2408  		ID               int64  `json:"id"`
  2409  		NodeID           string `json:"node_id"`
  2410  		URL              string `json:"url"`
  2411  		ReposURL         string `json:"repos_url"`
  2412  		EventsURL        string `json:"events_url"`
  2413  		HooksURL         string `json:"hooks_url"`
  2414  		IssuesURL        string `json:"issues_url"`
  2415  		MembersURL       string `json:"members_url"`
  2416  		PublicMembersURL string `json:"public_members_url"`
  2417  		AvatarURL        string `json:"avatar_url"`
  2418  		Description      string `json:"description"`
  2419  	} `json:"organization"`
  2420  	Sender struct {
  2421  		Login             string `json:"login"`
  2422  		ID                int64  `json:"id"`
  2423  		NodeID            string `json:"node_id"`
  2424  		AvatarURL         string `json:"avatar_url"`
  2425  		GravatarID        string `json:"gravatar_id"`
  2426  		URL               string `json:"url"`
  2427  		HTMLURL           string `json:"html_url"`
  2428  		FollowersURL      string `json:"followers_url"`
  2429  		FollowingURL      string `json:"following_url"`
  2430  		GistsURL          string `json:"gists_url"`
  2431  		StarredURL        string `json:"starred_url"`
  2432  		SubscriptionsURL  string `json:"subscriptions_url"`
  2433  		OrganizationsURL  string `json:"organizations_url"`
  2434  		ReposURL          string `json:"repos_url"`
  2435  		EventsURL         string `json:"events_url"`
  2436  		ReceivedEventsURL string `json:"received_events_url"`
  2437  		Type              string `json:"type"`
  2438  		SiteAdmin         bool   `json:"site_admin"`
  2439  	} `json:"sender"`
  2440  }
  2441  
  2442  // MemberPayload contains the information for GitHub's member hook event
  2443  type MemberPayload struct {
  2444  	Action string `json:"action"`
  2445  	Member struct {
  2446  		Login             string `json:"login"`
  2447  		ID                int64  `json:"id"`
  2448  		NodeID            string `json:"node_id"`
  2449  		AvatarURL         string `json:"avatar_url"`
  2450  		GravatarID        string `json:"gravatar_id"`
  2451  		URL               string `json:"url"`
  2452  		HTMLURL           string `json:"html_url"`
  2453  		FollowersURL      string `json:"followers_url"`
  2454  		FollowingURL      string `json:"following_url"`
  2455  		GistsURL          string `json:"gists_url"`
  2456  		StarredURL        string `json:"starred_url"`
  2457  		SubscriptionsURL  string `json:"subscriptions_url"`
  2458  		OrganizationsURL  string `json:"organizations_url"`
  2459  		ReposURL          string `json:"repos_url"`
  2460  		EventsURL         string `json:"events_url"`
  2461  		ReceivedEventsURL string `json:"received_events_url"`
  2462  		Type              string `json:"type"`
  2463  		SiteAdmin         bool   `json:"site_admin"`
  2464  	} `json:"member"`
  2465  	Repository struct {
  2466  		ID       int64  `json:"id"`
  2467  		NodeID   string `json:"node_id"`
  2468  		Name     string `json:"name"`
  2469  		FullName string `json:"full_name"`
  2470  		Owner    struct {
  2471  			Login             string `json:"login"`
  2472  			ID                int64  `json:"id"`
  2473  			NodeID            string `json:"node_id"`
  2474  			AvatarURL         string `json:"avatar_url"`
  2475  			GravatarID        string `json:"gravatar_id"`
  2476  			URL               string `json:"url"`
  2477  			HTMLURL           string `json:"html_url"`
  2478  			FollowersURL      string `json:"followers_url"`
  2479  			FollowingURL      string `json:"following_url"`
  2480  			GistsURL          string `json:"gists_url"`
  2481  			StarredURL        string `json:"starred_url"`
  2482  			SubscriptionsURL  string `json:"subscriptions_url"`
  2483  			OrganizationsURL  string `json:"organizations_url"`
  2484  			ReposURL          string `json:"repos_url"`
  2485  			EventsURL         string `json:"events_url"`
  2486  			ReceivedEventsURL string `json:"received_events_url"`
  2487  			Type              string `json:"type"`
  2488  			SiteAdmin         bool   `json:"site_admin"`
  2489  		} `json:"owner"`
  2490  		Private          bool      `json:"private"`
  2491  		HTMLURL          string    `json:"html_url"`
  2492  		Description      string    `json:"description"`
  2493  		Fork             bool      `json:"fork"`
  2494  		URL              string    `json:"url"`
  2495  		ForksURL         string    `json:"forks_url"`
  2496  		KeysURL          string    `json:"keys_url"`
  2497  		CollaboratorsURL string    `json:"collaborators_url"`
  2498  		TeamsURL         string    `json:"teams_url"`
  2499  		HooksURL         string    `json:"hooks_url"`
  2500  		IssueEventsURL   string    `json:"issue_events_url"`
  2501  		EventsURL        string    `json:"events_url"`
  2502  		AssigneesURL     string    `json:"assignees_url"`
  2503  		BranchesURL      string    `json:"branches_url"`
  2504  		TagsURL          string    `json:"tags_url"`
  2505  		BlobsURL         string    `json:"blobs_url"`
  2506  		GitTagsURL       string    `json:"git_tags_url"`
  2507  		GitRefsURL       string    `json:"git_refs_url"`
  2508  		TreesURL         string    `json:"trees_url"`
  2509  		StatusesURL      string    `json:"statuses_url"`
  2510  		LanguagesURL     string    `json:"languages_url"`
  2511  		StargazersURL    string    `json:"stargazers_url"`
  2512  		ContributorsURL  string    `json:"contributors_url"`
  2513  		SubscribersURL   string    `json:"subscribers_url"`
  2514  		SubscriptionURL  string    `json:"subscription_url"`
  2515  		CommitsURL       string    `json:"commits_url"`
  2516  		GitCommitsURL    string    `json:"git_commits_url"`
  2517  		CommentsURL      string    `json:"comments_url"`
  2518  		IssueCommentURL  string    `json:"issue_comment_url"`
  2519  		ContentsURL      string    `json:"contents_url"`
  2520  		CompareURL       string    `json:"compare_url"`
  2521  		MergesURL        string    `json:"merges_url"`
  2522  		ArchiveURL       string    `json:"archive_url"`
  2523  		DownloadsURL     string    `json:"downloads_url"`
  2524  		IssuesURL        string    `json:"issues_url"`
  2525  		PullsURL         string    `json:"pulls_url"`
  2526  		MilestonesURL    string    `json:"milestones_url"`
  2527  		NotificationsURL string    `json:"notifications_url"`
  2528  		LabelsURL        string    `json:"labels_url"`
  2529  		ReleasesURL      string    `json:"releases_url"`
  2530  		CreatedAt        time.Time `json:"created_at"`
  2531  		UpdatedAt        time.Time `json:"updated_at"`
  2532  		PushedAt         time.Time `json:"pushed_at"`
  2533  		GitURL           string    `json:"git_url"`
  2534  		SSHURL           string    `json:"ssh_url"`
  2535  		CloneURL         string    `json:"clone_url"`
  2536  		SvnURL           string    `json:"svn_url"`
  2537  		Homepage         *string   `json:"homepage"`
  2538  		Size             int64     `json:"size"`
  2539  		StargazersCount  int64     `json:"stargazers_count"`
  2540  		WatchersCount    int64     `json:"watchers_count"`
  2541  		Language         *string   `json:"language"`
  2542  		HasIssues        bool      `json:"has_issues"`
  2543  		HasDownloads     bool      `json:"has_downloads"`
  2544  		HasWiki          bool      `json:"has_wiki"`
  2545  		HasPages         bool      `json:"has_pages"`
  2546  		ForksCount       int64     `json:"forks_count"`
  2547  		MirrorURL        *string   `json:"mirror_url"`
  2548  		OpenIssuesCount  int64     `json:"open_issues_count"`
  2549  		Forks            int64     `json:"forks"`
  2550  		OpenIssues       int64     `json:"open_issues"`
  2551  		Watchers         int64     `json:"watchers"`
  2552  		DefaultBranch    string    `json:"default_branch"`
  2553  	} `json:"repository"`
  2554  	Sender struct {
  2555  		Login             string `json:"login"`
  2556  		ID                int64  `json:"id"`
  2557  		NodeID            string `json:"node_id"`
  2558  		AvatarURL         string `json:"avatar_url"`
  2559  		GravatarID        string `json:"gravatar_id"`
  2560  		URL               string `json:"url"`
  2561  		HTMLURL           string `json:"html_url"`
  2562  		FollowersURL      string `json:"followers_url"`
  2563  		FollowingURL      string `json:"following_url"`
  2564  		GistsURL          string `json:"gists_url"`
  2565  		StarredURL        string `json:"starred_url"`
  2566  		SubscriptionsURL  string `json:"subscriptions_url"`
  2567  		OrganizationsURL  string `json:"organizations_url"`
  2568  		ReposURL          string `json:"repos_url"`
  2569  		EventsURL         string `json:"events_url"`
  2570  		ReceivedEventsURL string `json:"received_events_url"`
  2571  		Type              string `json:"type"`
  2572  		SiteAdmin         bool   `json:"site_admin"`
  2573  	} `json:"sender"`
  2574  }
  2575  
  2576  // MembershipPayload contains the information for GitHub's membership hook event
  2577  type MembershipPayload struct {
  2578  	Action string `json:"action"`
  2579  	Scope  string `json:"scope"`
  2580  	Member struct {
  2581  		Login             string `json:"login"`
  2582  		ID                int64  `json:"id"`
  2583  		NodeID            string `json:"node_id"`
  2584  		AvatarURL         string `json:"avatar_url"`
  2585  		GravatarID        string `json:"gravatar_id"`
  2586  		URL               string `json:"url"`
  2587  		HTMLURL           string `json:"html_url"`
  2588  		FollowersURL      string `json:"followers_url"`
  2589  		FollowingURL      string `json:"following_url"`
  2590  		GistsURL          string `json:"gists_url"`
  2591  		StarredURL        string `json:"starred_url"`
  2592  		SubscriptionsURL  string `json:"subscriptions_url"`
  2593  		OrganizationsURL  string `json:"organizations_url"`
  2594  		ReposURL          string `json:"repos_url"`
  2595  		EventsURL         string `json:"events_url"`
  2596  		ReceivedEventsURL string `json:"received_events_url"`
  2597  		Type              string `json:"type"`
  2598  		SiteAdmin         bool   `json:"site_admin"`
  2599  	} `json:"member"`
  2600  	Sender struct {
  2601  		Login             string `json:"login"`
  2602  		ID                int64  `json:"id"`
  2603  		NodeID            string `json:"node_id"`
  2604  		AvatarURL         string `json:"avatar_url"`
  2605  		GravatarID        string `json:"gravatar_id"`
  2606  		URL               string `json:"url"`
  2607  		HTMLURL           string `json:"html_url"`
  2608  		FollowersURL      string `json:"followers_url"`
  2609  		FollowingURL      string `json:"following_url"`
  2610  		GistsURL          string `json:"gists_url"`
  2611  		StarredURL        string `json:"starred_url"`
  2612  		SubscriptionsURL  string `json:"subscriptions_url"`
  2613  		OrganizationsURL  string `json:"organizations_url"`
  2614  		ReposURL          string `json:"repos_url"`
  2615  		EventsURL         string `json:"events_url"`
  2616  		ReceivedEventsURL string `json:"received_events_url"`
  2617  		Type              string `json:"type"`
  2618  		SiteAdmin         bool   `json:"site_admin"`
  2619  	} `json:"sender"`
  2620  	Team         *Team `json:"team"`
  2621  	Organization struct {
  2622  		Login            string `json:"login"`
  2623  		ID               int64  `json:"id"`
  2624  		NodeID           string `json:"node_id"`
  2625  		URL              string `json:"url"`
  2626  		ReposURL         string `json:"repos_url"`
  2627  		EventsURL        string `json:"events_url"`
  2628  		MembersURL       string `json:"members_url"`
  2629  		PublicMembersURL string `json:"public_members_url"`
  2630  		AvatarURL        string `json:"avatar_url"`
  2631  	} `json:"organization"`
  2632  }
  2633  
  2634  // MetaPayload contains the information for GitHub's meta hook event
  2635  type MetaPayload struct {
  2636  	HookID int `json:"hook_id"`
  2637  	Hook   struct {
  2638  		Type   string   `json:"type"`
  2639  		ID     int64    `json:"id"`
  2640  		NodeID string   `json:"node_id"`
  2641  		Name   string   `json:"name"`
  2642  		Active bool     `json:"active"`
  2643  		Events []string `json:"events"`
  2644  		AppID  int      `json:"app_id"`
  2645  		Config struct {
  2646  			ContentType string `json:"content_type"`
  2647  			InsecureSSL string `json:"insecure_ssl"`
  2648  			Secret      string `json:"secret"`
  2649  			URL         string `json:"url"`
  2650  		} `json:"config"`
  2651  		CreatedAt time.Time `json:"created_at"`
  2652  		UpdatedAt time.Time `json:"updated_at"`
  2653  	} `json:"hook"`
  2654  	Repository struct {
  2655  		ID       int64  `json:"id"`
  2656  		NodeID   string `json:"node_id"`
  2657  		Name     string `json:"name"`
  2658  		FullName string `json:"full_name"`
  2659  		Owner    struct {
  2660  			Login             string `json:"login"`
  2661  			ID                int64  `json:"id"`
  2662  			NodeID            string `json:"node_id"`
  2663  			AvatarURL         string `json:"avatar_url"`
  2664  			GravatarID        string `json:"gravatar_id"`
  2665  			URL               string `json:"url"`
  2666  			HTMLURL           string `json:"html_url"`
  2667  			FollowersURL      string `json:"followers_url"`
  2668  			FollowingURL      string `json:"following_url"`
  2669  			GistsURL          string `json:"gists_url"`
  2670  			StarredURL        string `json:"starred_url"`
  2671  			SubscriptionsURL  string `json:"subscriptions_url"`
  2672  			OrganizationsURL  string `json:"organizations_url"`
  2673  			ReposURL          string `json:"repos_url"`
  2674  			EventsURL         string `json:"events_url"`
  2675  			ReceivedEventsURL string `json:"received_events_url"`
  2676  			Type              string `json:"type"`
  2677  			SiteAdmin         bool   `json:"site_admin"`
  2678  		} `json:"owner"`
  2679  		Private          bool      `json:"private"`
  2680  		HTMLURL          string    `json:"html_url"`
  2681  		Description      string    `json:"description"`
  2682  		Fork             bool      `json:"fork"`
  2683  		URL              string    `json:"url"`
  2684  		ForksURL         string    `json:"forks_url"`
  2685  		KeysURL          string    `json:"keys_url"`
  2686  		CollaboratorsURL string    `json:"collaborators_url"`
  2687  		TeamsURL         string    `json:"teams_url"`
  2688  		HooksURL         string    `json:"hooks_url"`
  2689  		IssueEventsURL   string    `json:"issue_events_url"`
  2690  		EventsURL        string    `json:"events_url"`
  2691  		AssigneesURL     string    `json:"assignees_url"`
  2692  		BranchesURL      string    `json:"branches_url"`
  2693  		TagsURL          string    `json:"tags_url"`
  2694  		BlobsURL         string    `json:"blobs_url"`
  2695  		GitTagsURL       string    `json:"git_tags_url"`
  2696  		GitRefsURL       string    `json:"git_refs_url"`
  2697  		TreesURL         string    `json:"trees_url"`
  2698  		StatusesURL      string    `json:"statuses_url"`
  2699  		LanguagesURL     string    `json:"languages_url"`
  2700  		StargazersURL    string    `json:"stargazers_url"`
  2701  		ContributorsURL  string    `json:"contributors_url"`
  2702  		SubscribersURL   string    `json:"subscribers_url"`
  2703  		SubscriptionURL  string    `json:"subscription_url"`
  2704  		CommitsURL       string    `json:"commits_url"`
  2705  		GitCommitsURL    string    `json:"git_commits_url"`
  2706  		CommentsURL      string    `json:"comments_url"`
  2707  		IssueCommentURL  string    `json:"issue_comment_url"`
  2708  		ContentsURL      string    `json:"contents_url"`
  2709  		CompareURL       string    `json:"compare_url"`
  2710  		MergesURL        string    `json:"merges_url"`
  2711  		ArchiveURL       string    `json:"archive_url"`
  2712  		DownloadsURL     string    `json:"downloads_url"`
  2713  		IssuesURL        string    `json:"issues_url"`
  2714  		PullsURL         string    `json:"pulls_url"`
  2715  		MilestonesURL    string    `json:"milestones_url"`
  2716  		NotificationsURL string    `json:"notifications_url"`
  2717  		LabelsURL        string    `json:"labels_url"`
  2718  		ReleasesURL      string    `json:"releases_url"`
  2719  		CreatedAt        time.Time `json:"created_at"`
  2720  		UpdatedAt        time.Time `json:"updated_at"`
  2721  		PushedAt         time.Time `json:"pushed_at"`
  2722  		GitURL           string    `json:"git_url"`
  2723  		SSHURL           string    `json:"ssh_url"`
  2724  		CloneURL         string    `json:"clone_url"`
  2725  		SvnURL           string    `json:"svn_url"`
  2726  		Homepage         *string   `json:"homepage"`
  2727  		Size             int64     `json:"size"`
  2728  		StargazersCount  int64     `json:"stargazers_count"`
  2729  		WatchersCount    int64     `json:"watchers_count"`
  2730  		Language         *string   `json:"language"`
  2731  		HasIssues        bool      `json:"has_issues"`
  2732  		HasDownloads     bool      `json:"has_downloads"`
  2733  		HasWiki          bool      `json:"has_wiki"`
  2734  		HasPages         bool      `json:"has_pages"`
  2735  		ForksCount       int64     `json:"forks_count"`
  2736  		MirrorURL        *string   `json:"mirror_url"`
  2737  		OpenIssuesCount  int64     `json:"open_issues_count"`
  2738  		Forks            int64     `json:"forks"`
  2739  		OpenIssues       int64     `json:"open_issues"`
  2740  		Watchers         int64     `json:"watchers"`
  2741  		DefaultBranch    string    `json:"default_branch"`
  2742  	} `json:"repository"`
  2743  	Sender struct {
  2744  		Login             string `json:"login"`
  2745  		ID                int64  `json:"id"`
  2746  		NodeID            string `json:"node_id"`
  2747  		AvatarURL         string `json:"avatar_url"`
  2748  		GravatarID        string `json:"gravatar_id"`
  2749  		URL               string `json:"url"`
  2750  		HTMLURL           string `json:"html_url"`
  2751  		FollowersURL      string `json:"followers_url"`
  2752  		FollowingURL      string `json:"following_url"`
  2753  		GistsURL          string `json:"gists_url"`
  2754  		StarredURL        string `json:"starred_url"`
  2755  		SubscriptionsURL  string `json:"subscriptions_url"`
  2756  		OrganizationsURL  string `json:"organizations_url"`
  2757  		ReposURL          string `json:"repos_url"`
  2758  		EventsURL         string `json:"events_url"`
  2759  		ReceivedEventsURL string `json:"received_events_url"`
  2760  		Type              string `json:"type"`
  2761  		SiteAdmin         bool   `json:"site_admin"`
  2762  	} `json:"sender"`
  2763  }
  2764  
  2765  // MilestonePayload contains the information for GitHub's milestone hook event
  2766  type MilestonePayload struct {
  2767  	Action    string `json:"action"`
  2768  	Milestone struct {
  2769  		URL         string  `json:"url"`
  2770  		HTMLURL     string  `json:"html_url"`
  2771  		LabelsURL   string  `json:"labels_url"`
  2772  		ID          int64   `json:"id"`
  2773  		NodeID      string  `json:"node_id"`
  2774  		Number      int64   `json:"number"`
  2775  		Title       string  `json:"title"`
  2776  		Description *string `json:"description"`
  2777  		Creator     struct {
  2778  			Login             string `json:"login"`
  2779  			ID                int64  `json:"id"`
  2780  			NodeID            string `json:"node_id"`
  2781  			AvatarURL         string `json:"avatar_url"`
  2782  			GravatarID        string `json:"gravatar_id"`
  2783  			URL               string `json:"url"`
  2784  			HTMLURL           string `json:"html_url"`
  2785  			FollowersURL      string `json:"followers_url"`
  2786  			FollowingURL      string `json:"following_url"`
  2787  			GistsURL          string `json:"gists_url"`
  2788  			StarredURL        string `json:"starred_url"`
  2789  			SubscriptionsURL  string `json:"subscriptions_url"`
  2790  			OrganizationsURL  string `json:"organizations_url"`
  2791  			ReposURL          string `json:"repos_url"`
  2792  			EventsURL         string `json:"events_url"`
  2793  			ReceivedEventsURL string `json:"received_events_url"`
  2794  			Type              string `json:"type"`
  2795  			SiteAdmin         bool   `json:"site_admin"`
  2796  		} `json:"creator"`
  2797  		OpenIssues   int64      `json:"open_issues"`
  2798  		ClosedIssues int64      `json:"closed_issues"`
  2799  		State        string     `json:"state"`
  2800  		CreatedAt    time.Time  `json:"created_at"`
  2801  		UpdatedAt    time.Time  `json:"updated_at"`
  2802  		DueOn        *time.Time `json:"due_on"`
  2803  		ClosedAt     *time.Time `json:"closed_at"`
  2804  	} `json:"milestone"`
  2805  	Repository struct {
  2806  		ID       int64  `json:"id"`
  2807  		NodeID   string `json:"node_id"`
  2808  		Name     string `json:"name"`
  2809  		FullName string `json:"full_name"`
  2810  		Owner    struct {
  2811  			Login             string `json:"login"`
  2812  			ID                int64  `json:"id"`
  2813  			NodeID            string `json:"node_id"`
  2814  			AvatarURL         string `json:"avatar_url"`
  2815  			GravatarID        string `json:"gravatar_id"`
  2816  			URL               string `json:"url"`
  2817  			HTMLURL           string `json:"html_url"`
  2818  			FollowersURL      string `json:"followers_url"`
  2819  			FollowingURL      string `json:"following_url"`
  2820  			GistsURL          string `json:"gists_url"`
  2821  			StarredURL        string `json:"starred_url"`
  2822  			SubscriptionsURL  string `json:"subscriptions_url"`
  2823  			OrganizationsURL  string `json:"organizations_url"`
  2824  			ReposURL          string `json:"repos_url"`
  2825  			EventsURL         string `json:"events_url"`
  2826  			ReceivedEventsURL string `json:"received_events_url"`
  2827  			Type              string `json:"type"`
  2828  			SiteAdmin         bool   `json:"site_admin"`
  2829  		} `json:"owner"`
  2830  		Private          bool      `json:"private"`
  2831  		HTMLURL          string    `json:"html_url"`
  2832  		Description      *string   `json:"description"`
  2833  		Fork             bool      `json:"fork"`
  2834  		URL              string    `json:"url"`
  2835  		ForksURL         string    `json:"forks_url"`
  2836  		KeysURL          string    `json:"keys_url"`
  2837  		CollaboratorsURL string    `json:"collaborators_url"`
  2838  		TeamsURL         string    `json:"teams_url"`
  2839  		HooksURL         string    `json:"hooks_url"`
  2840  		IssueEventsURL   string    `json:"issue_events_url"`
  2841  		EventsURL        string    `json:"events_url"`
  2842  		AssigneesURL     string    `json:"assignees_url"`
  2843  		BranchesURL      string    `json:"branches_url"`
  2844  		TagsURL          string    `json:"tags_url"`
  2845  		BlobsURL         string    `json:"blobs_url"`
  2846  		GitTagsURL       string    `json:"git_tags_url"`
  2847  		GitRefsURL       string    `json:"git_refs_url"`
  2848  		TreesURL         string    `json:"trees_url"`
  2849  		StatusesURL      string    `json:"statuses_url"`
  2850  		LanguagesURL     string    `json:"languages_url"`
  2851  		StargazersURL    string    `json:"stargazers_url"`
  2852  		ContributorsURL  string    `json:"contributors_url"`
  2853  		SubscribersURL   string    `json:"subscribers_url"`
  2854  		SubscriptionURL  string    `json:"subscription_url"`
  2855  		CommitsURL       string    `json:"commits_url"`
  2856  		GitCommitsURL    string    `json:"git_commits_url"`
  2857  		CommentsURL      string    `json:"comments_url"`
  2858  		IssueCommentURL  string    `json:"issue_comment_url"`
  2859  		ContentsURL      string    `json:"contents_url"`
  2860  		CompareURL       string    `json:"compare_url"`
  2861  		MergesURL        string    `json:"merges_url"`
  2862  		ArchiveURL       string    `json:"archive_url"`
  2863  		DownloadsURL     string    `json:"downloads_url"`
  2864  		IssuesURL        string    `json:"issues_url"`
  2865  		PullsURL         string    `json:"pulls_url"`
  2866  		MilestonesURL    string    `json:"milestones_url"`
  2867  		NotificationsURL string    `json:"notifications_url"`
  2868  		LabelsURL        string    `json:"labels_url"`
  2869  		ReleasesURL      string    `json:"releases_url"`
  2870  		DeploymentsURL   string    `json:"deployments_url"`
  2871  		CreatedAt        time.Time `json:"created_at"`
  2872  		UpdatedAt        time.Time `json:"updated_at"`
  2873  		PushedAt         time.Time `json:"pushed_at"`
  2874  		GitURL           string    `json:"git_url"`
  2875  		SSHURL           string    `json:"ssh_url"`
  2876  		CloneURL         string    `json:"clone_url"`
  2877  		SvnURL           string    `json:"svn_url"`
  2878  		Homepage         *string   `json:"homepage"`
  2879  		Size             int64     `json:"size"`
  2880  		StargazersCount  int64     `json:"stargazers_count"`
  2881  		WatchersCount    int64     `json:"watchers_count"`
  2882  		Language         *string   `json:"language"`
  2883  		HasIssues        bool      `json:"has_issues"`
  2884  		HasDownloads     bool      `json:"has_downloads"`
  2885  		HasWiki          bool      `json:"has_wiki"`
  2886  		HasPages         bool      `json:"has_pages"`
  2887  		ForksCount       int64     `json:"forks_count"`
  2888  		MirrorURL        *string   `json:"mirror_url"`
  2889  		OpenIssuesCount  int64     `json:"open_issues_count"`
  2890  		Forks            int64     `json:"forks"`
  2891  		OpenIssues       int64     `json:"open_issues"`
  2892  		Watchers         int64     `json:"watchers"`
  2893  		DefaultBranch    string    `json:"default_branch"`
  2894  	} `json:"repository"`
  2895  	Organization struct {
  2896  		Login            string `json:"login"`
  2897  		ID               int64  `json:"id"`
  2898  		NodeID           string `json:"node_id"`
  2899  		URL              string `json:"url"`
  2900  		ReposURL         string `json:"repos_url"`
  2901  		EventsURL        string `json:"events_url"`
  2902  		HooksURL         string `json:"hooks_url"`
  2903  		IssuesURL        string `json:"issues_url"`
  2904  		MembersURL       string `json:"members_url"`
  2905  		PublicMembersURL string `json:"public_members_url"`
  2906  		AvatarURL        string `json:"avatar_url"`
  2907  		Description      string `json:"description"`
  2908  	} `json:"organization"`
  2909  	Sender struct {
  2910  		Login             string `json:"login"`
  2911  		ID                int64  `json:"id"`
  2912  		NodeID            string `json:"node_id"`
  2913  		AvatarURL         string `json:"avatar_url"`
  2914  		GravatarID        string `json:"gravatar_id"`
  2915  		URL               string `json:"url"`
  2916  		HTMLURL           string `json:"html_url"`
  2917  		FollowersURL      string `json:"followers_url"`
  2918  		FollowingURL      string `json:"following_url"`
  2919  		GistsURL          string `json:"gists_url"`
  2920  		StarredURL        string `json:"starred_url"`
  2921  		SubscriptionsURL  string `json:"subscriptions_url"`
  2922  		OrganizationsURL  string `json:"organizations_url"`
  2923  		ReposURL          string `json:"repos_url"`
  2924  		EventsURL         string `json:"events_url"`
  2925  		ReceivedEventsURL string `json:"received_events_url"`
  2926  		Type              string `json:"type"`
  2927  		SiteAdmin         bool   `json:"site_admin"`
  2928  	} `json:"sender"`
  2929  }
  2930  
  2931  // OrganizationPayload contains the information for GitHub's organization hook event
  2932  type OrganizationPayload struct {
  2933  	Action     string `json:"action"`
  2934  	Invitation struct {
  2935  		ID     int64   `json:"id"`
  2936  		NodeID string  `json:"node_id"`
  2937  		Login  string  `json:"login"`
  2938  		Email  *string `json:"email"`
  2939  		Role   string  `json:"role"`
  2940  	} `json:"invitation"`
  2941  	Membership struct {
  2942  		URL             string `json:"url"`
  2943  		State           string `json:"state"`
  2944  		Role            string `json:"role"`
  2945  		OrganizationURL string `json:"organization_url"`
  2946  		User            struct {
  2947  			Login             string `json:"login"`
  2948  			ID                int64  `json:"id"`
  2949  			NodeID            string `json:"node_id"`
  2950  			AvatarURL         string `json:"avatar_url"`
  2951  			GravatarID        string `json:"gravatar_id"`
  2952  			URL               string `json:"url"`
  2953  			HTMLURL           string `json:"html_url"`
  2954  			FollowersURL      string `json:"followers_url"`
  2955  			FollowingURL      string `json:"following_url"`
  2956  			GistsURL          string `json:"gists_url"`
  2957  			StarredURL        string `json:"starred_url"`
  2958  			SubscriptionsURL  string `json:"subscriptions_url"`
  2959  			OrganizationsURL  string `json:"organizations_url"`
  2960  			ReposURL          string `json:"repos_url"`
  2961  			EventsURL         string `json:"events_url"`
  2962  			ReceivedEventsURL string `json:"received_events_url"`
  2963  			Type              string `json:"type"`
  2964  			SiteAdmin         bool   `json:"site_admin"`
  2965  		} `json:"user"`
  2966  	} `json:"membership"`
  2967  	Organization struct {
  2968  		Login            string `json:"login"`
  2969  		ID               int64  `json:"id"`
  2970  		NodeID           string `json:"node_id"`
  2971  		URL              string `json:"url"`
  2972  		ReposURL         string `json:"repos_url"`
  2973  		EventsURL        string `json:"events_url"`
  2974  		HooksURL         string `json:"hooks_url"`
  2975  		IssuesURL        string `json:"issues_url"`
  2976  		MembersURL       string `json:"members_url"`
  2977  		PublicMembersURL string `json:"public_members_url"`
  2978  		AvatarURL        string `json:"avatar_url"`
  2979  		Description      string `json:"description"`
  2980  	} `json:"organization"`
  2981  	Sender struct {
  2982  		Login             string `json:"login"`
  2983  		ID                int64  `json:"id"`
  2984  		NodeID            string `json:"node_id"`
  2985  		AvatarURL         string `json:"avatar_url"`
  2986  		GravatarID        string `json:"gravatar_id"`
  2987  		URL               string `json:"url"`
  2988  		HTMLURL           string `json:"html_url"`
  2989  		FollowersURL      string `json:"followers_url"`
  2990  		FollowingURL      string `json:"following_url"`
  2991  		GistsURL          string `json:"gists_url"`
  2992  		StarredURL        string `json:"starred_url"`
  2993  		SubscriptionsURL  string `json:"subscriptions_url"`
  2994  		OrganizationsURL  string `json:"organizations_url"`
  2995  		ReposURL          string `json:"repos_url"`
  2996  		EventsURL         string `json:"events_url"`
  2997  		ReceivedEventsURL string `json:"received_events_url"`
  2998  		Type              string `json:"type"`
  2999  		SiteAdmin         bool   `json:"site_admin"`
  3000  	} `json:"sender"`
  3001  }
  3002  
  3003  // OrgBlockPayload contains the information for GitHub's org_block hook event
  3004  type OrgBlockPayload struct {
  3005  	Action      string `json:"action"`
  3006  	BlockedUser struct {
  3007  		Login             string `json:"login"`
  3008  		ID                int64  `json:"id"`
  3009  		NodeID            string `json:"node_id"`
  3010  		AvatarURL         string `json:"avatar_url"`
  3011  		GravatarID        string `json:"gravatar_id"`
  3012  		URL               string `json:"url"`
  3013  		HTMLURL           string `json:"html_url"`
  3014  		FollowersURL      string `json:"followers_url"`
  3015  		FollowingURL      string `json:"following_url"`
  3016  		GistsURL          string `json:"gists_url"`
  3017  		StarredURL        string `json:"starred_url"`
  3018  		SubscriptionsURL  string `json:"subscriptions_url"`
  3019  		OrganizationsURL  string `json:"organizations_url"`
  3020  		ReposURL          string `json:"repos_url"`
  3021  		EventsURL         string `json:"events_url"`
  3022  		ReceivedEventsURL string `json:"received_events_url"`
  3023  		Type              string `json:"type"`
  3024  		SiteAdmin         bool   `json:"site_admin"`
  3025  	} `json:"blocked_user"`
  3026  	Organization struct {
  3027  		Login            string `json:"login"`
  3028  		ID               int64  `json:"id"`
  3029  		NodeID           string `json:"node_id"`
  3030  		URL              string `json:"url"`
  3031  		ReposURL         string `json:"repos_url"`
  3032  		EventsURL        string `json:"events_url"`
  3033  		HooksURL         string `json:"hooks_url"`
  3034  		IssuesURL        string `json:"issues_url"`
  3035  		MembersURL       string `json:"members_url"`
  3036  		PublicMembersURL string `json:"public_members_url"`
  3037  		AvatarURL        string `json:"avatar_url"`
  3038  		Description      string `json:"description"`
  3039  	} `json:"organization"`
  3040  	Sender struct {
  3041  		Login             string `json:"login"`
  3042  		ID                int64  `json:"id"`
  3043  		NodeID            string `json:"node_id"`
  3044  		AvatarURL         string `json:"avatar_url"`
  3045  		GravatarID        string `json:"gravatar_id"`
  3046  		URL               string `json:"url"`
  3047  		HTMLURL           string `json:"html_url"`
  3048  		FollowersURL      string `json:"followers_url"`
  3049  		FollowingURL      string `json:"following_url"`
  3050  		GistsURL          string `json:"gists_url"`
  3051  		StarredURL        string `json:"starred_url"`
  3052  		SubscriptionsURL  string `json:"subscriptions_url"`
  3053  		OrganizationsURL  string `json:"organizations_url"`
  3054  		ReposURL          string `json:"repos_url"`
  3055  		EventsURL         string `json:"events_url"`
  3056  		ReceivedEventsURL string `json:"received_events_url"`
  3057  		Type              string `json:"type"`
  3058  		SiteAdmin         bool   `json:"site_admin"`
  3059  	} `json:"sender"`
  3060  }
  3061  
  3062  // PageBuildPayload contains the information for GitHub's page_build hook event
  3063  type PageBuildPayload struct {
  3064  	ID     int64  `json:"id"`
  3065  	NodeID string `json:"node_id"`
  3066  	Build  struct {
  3067  		URL    string `json:"url"`
  3068  		Status string `json:"status"`
  3069  		Error  struct {
  3070  			Message *string `json:"message"`
  3071  		} `json:"error"`
  3072  		Pusher struct {
  3073  			Login             string `json:"login"`
  3074  			ID                int64  `json:"id"`
  3075  			NodeID            string `json:"node_id"`
  3076  			AvatarURL         string `json:"avatar_url"`
  3077  			GravatarID        string `json:"gravatar_id"`
  3078  			URL               string `json:"url"`
  3079  			HTMLURL           string `json:"html_url"`
  3080  			FollowersURL      string `json:"followers_url"`
  3081  			FollowingURL      string `json:"following_url"`
  3082  			GistsURL          string `json:"gists_url"`
  3083  			StarredURL        string `json:"starred_url"`
  3084  			SubscriptionsURL  string `json:"subscriptions_url"`
  3085  			OrganizationsURL  string `json:"organizations_url"`
  3086  			ReposURL          string `json:"repos_url"`
  3087  			EventsURL         string `json:"events_url"`
  3088  			ReceivedEventsURL string `json:"received_events_url"`
  3089  			Type              string `json:"type"`
  3090  			SiteAdmin         bool   `json:"site_admin"`
  3091  		} `json:"pusher"`
  3092  		Commit    string    `json:"commit"`
  3093  		Duration  int64     `json:"duration"`
  3094  		CreatedAt time.Time `json:"created_at"`
  3095  		UpdatedAt time.Time `json:"updated_at"`
  3096  	} `json:"build"`
  3097  	Repository struct {
  3098  		ID       int64  `json:"id"`
  3099  		NodeID   string `json:"node_id"`
  3100  		Name     string `json:"name"`
  3101  		FullName string `json:"full_name"`
  3102  		Owner    struct {
  3103  			Login             string `json:"login"`
  3104  			ID                int64  `json:"id"`
  3105  			NodeID            string `json:"node_id"`
  3106  			AvatarURL         string `json:"avatar_url"`
  3107  			GravatarID        string `json:"gravatar_id"`
  3108  			URL               string `json:"url"`
  3109  			HTMLURL           string `json:"html_url"`
  3110  			FollowersURL      string `json:"followers_url"`
  3111  			FollowingURL      string `json:"following_url"`
  3112  			GistsURL          string `json:"gists_url"`
  3113  			StarredURL        string `json:"starred_url"`
  3114  			SubscriptionsURL  string `json:"subscriptions_url"`
  3115  			OrganizationsURL  string `json:"organizations_url"`
  3116  			ReposURL          string `json:"repos_url"`
  3117  			EventsURL         string `json:"events_url"`
  3118  			ReceivedEventsURL string `json:"received_events_url"`
  3119  			Type              string `json:"type"`
  3120  			SiteAdmin         bool   `json:"site_admin"`
  3121  		} `json:"owner"`
  3122  		Private          bool      `json:"private"`
  3123  		HTMLURL          string    `json:"html_url"`
  3124  		Description      string    `json:"description"`
  3125  		Fork             bool      `json:"fork"`
  3126  		URL              string    `json:"url"`
  3127  		ForksURL         string    `json:"forks_url"`
  3128  		KeysURL          string    `json:"keys_url"`
  3129  		CollaboratorsURL string    `json:"collaborators_url"`
  3130  		TeamsURL         string    `json:"teams_url"`
  3131  		HooksURL         string    `json:"hooks_url"`
  3132  		IssueEventsURL   string    `json:"issue_events_url"`
  3133  		EventsURL        string    `json:"events_url"`
  3134  		AssigneesURL     string    `json:"assignees_url"`
  3135  		BranchesURL      string    `json:"branches_url"`
  3136  		TagsURL          string    `json:"tags_url"`
  3137  		BlobsURL         string    `json:"blobs_url"`
  3138  		GitTagsURL       string    `json:"git_tags_url"`
  3139  		GitRefsURL       string    `json:"git_refs_url"`
  3140  		TreesURL         string    `json:"trees_url"`
  3141  		StatusesURL      string    `json:"statuses_url"`
  3142  		LanguagesURL     string    `json:"languages_url"`
  3143  		StargazersURL    string    `json:"stargazers_url"`
  3144  		ContributorsURL  string    `json:"contributors_url"`
  3145  		SubscribersURL   string    `json:"subscribers_url"`
  3146  		SubscriptionURL  string    `json:"subscription_url"`
  3147  		CommitsURL       string    `json:"commits_url"`
  3148  		GitCommitsURL    string    `json:"git_commits_url"`
  3149  		CommentsURL      string    `json:"comments_url"`
  3150  		IssueCommentURL  string    `json:"issue_comment_url"`
  3151  		ContentsURL      string    `json:"contents_url"`
  3152  		CompareURL       string    `json:"compare_url"`
  3153  		MergesURL        string    `json:"merges_url"`
  3154  		ArchiveURL       string    `json:"archive_url"`
  3155  		DownloadsURL     string    `json:"downloads_url"`
  3156  		IssuesURL        string    `json:"issues_url"`
  3157  		PullsURL         string    `json:"pulls_url"`
  3158  		MilestonesURL    string    `json:"milestones_url"`
  3159  		NotificationsURL string    `json:"notifications_url"`
  3160  		LabelsURL        string    `json:"labels_url"`
  3161  		ReleasesURL      string    `json:"releases_url"`
  3162  		CreatedAt        time.Time `json:"created_at"`
  3163  		UpdatedAt        time.Time `json:"updated_at"`
  3164  		PushedAt         time.Time `json:"pushed_at"`
  3165  		GitURL           string    `json:"git_url"`
  3166  		SSHURL           string    `json:"ssh_url"`
  3167  		CloneURL         string    `json:"clone_url"`
  3168  		SvnURL           string    `json:"svn_url"`
  3169  		Homepage         *string   `json:"homepage"`
  3170  		Size             int64     `json:"size"`
  3171  		StargazersCount  int64     `json:"stargazers_count"`
  3172  		WatchersCount    int64     `json:"watchers_count"`
  3173  		Language         *string   `json:"language"`
  3174  		HasIssues        bool      `json:"has_issues"`
  3175  		HasDownloads     bool      `json:"has_downloads"`
  3176  		HasWiki          bool      `json:"has_wiki"`
  3177  		HasPages         bool      `json:"has_pages"`
  3178  		ForksCount       int64     `json:"forks_count"`
  3179  		MirrorURL        *string   `json:"mirror_url"`
  3180  		OpenIssuesCount  int64     `json:"open_issues_count"`
  3181  		Forks            int64     `json:"forks"`
  3182  		OpenIssues       int64     `json:"open_issues"`
  3183  		Watchers         int64     `json:"watchers"`
  3184  		DefaultBranch    string    `json:"default_branch"`
  3185  	} `json:"repository"`
  3186  	Sender struct {
  3187  		Login             string `json:"login"`
  3188  		ID                int64  `json:"id"`
  3189  		NodeID            string `json:"node_id"`
  3190  		AvatarURL         string `json:"avatar_url"`
  3191  		GravatarID        string `json:"gravatar_id"`
  3192  		URL               string `json:"url"`
  3193  		HTMLURL           string `json:"html_url"`
  3194  		FollowersURL      string `json:"followers_url"`
  3195  		FollowingURL      string `json:"following_url"`
  3196  		GistsURL          string `json:"gists_url"`
  3197  		StarredURL        string `json:"starred_url"`
  3198  		SubscriptionsURL  string `json:"subscriptions_url"`
  3199  		OrganizationsURL  string `json:"organizations_url"`
  3200  		ReposURL          string `json:"repos_url"`
  3201  		EventsURL         string `json:"events_url"`
  3202  		ReceivedEventsURL string `json:"received_events_url"`
  3203  		Type              string `json:"type"`
  3204  		SiteAdmin         bool   `json:"site_admin"`
  3205  	} `json:"sender"`
  3206  }
  3207  
  3208  // PingPayload contains the information for GitHub's ping hook event
  3209  type PingPayload struct {
  3210  	HookID int `json:"hook_id"`
  3211  	Hook   struct {
  3212  		Type   string   `json:"type"`
  3213  		ID     int64    `json:"id"`
  3214  		NodeID string   `json:"node_id"`
  3215  		Name   string   `json:"name"`
  3216  		Active bool     `json:"active"`
  3217  		Events []string `json:"events"`
  3218  		AppID  int      `json:"app_id"`
  3219  		Config struct {
  3220  			ContentType string `json:"content_type"`
  3221  			InsecureSSL string `json:"insecure_ssl"`
  3222  			Secret      string `json:"secret"`
  3223  			URL         string `json:"url"`
  3224  		} `json:"config"`
  3225  		CreatedAt time.Time `json:"created_at"`
  3226  		UpdatedAt time.Time `json:"updated_at"`
  3227  	} `json:"hook"`
  3228  	Repository struct {
  3229  		ID       int64  `json:"id"`
  3230  		NodeID   string `json:"node_id"`
  3231  		Name     string `json:"name"`
  3232  		FullName string `json:"full_name"`
  3233  		Owner    struct {
  3234  			Login             string `json:"login"`
  3235  			ID                int64  `json:"id"`
  3236  			NodeID            string `json:"node_id"`
  3237  			AvatarURL         string `json:"avatar_url"`
  3238  			GravatarID        string `json:"gravatar_id"`
  3239  			URL               string `json:"url"`
  3240  			HTMLURL           string `json:"html_url"`
  3241  			FollowersURL      string `json:"followers_url"`
  3242  			FollowingURL      string `json:"following_url"`
  3243  			GistsURL          string `json:"gists_url"`
  3244  			StarredURL        string `json:"starred_url"`
  3245  			SubscriptionsURL  string `json:"subscriptions_url"`
  3246  			OrganizationsURL  string `json:"organizations_url"`
  3247  			ReposURL          string `json:"repos_url"`
  3248  			EventsURL         string `json:"events_url"`
  3249  			ReceivedEventsURL string `json:"received_events_url"`
  3250  			Type              string `json:"type"`
  3251  			SiteAdmin         bool   `json:"site_admin"`
  3252  		} `json:"owner"`
  3253  		Private          bool      `json:"private"`
  3254  		HTMLURL          string    `json:"html_url"`
  3255  		Description      string    `json:"description"`
  3256  		Fork             bool      `json:"fork"`
  3257  		URL              string    `json:"url"`
  3258  		ForksURL         string    `json:"forks_url"`
  3259  		KeysURL          string    `json:"keys_url"`
  3260  		CollaboratorsURL string    `json:"collaborators_url"`
  3261  		TeamsURL         string    `json:"teams_url"`
  3262  		HooksURL         string    `json:"hooks_url"`
  3263  		IssueEventsURL   string    `json:"issue_events_url"`
  3264  		EventsURL        string    `json:"events_url"`
  3265  		AssigneesURL     string    `json:"assignees_url"`
  3266  		BranchesURL      string    `json:"branches_url"`
  3267  		TagsURL          string    `json:"tags_url"`
  3268  		BlobsURL         string    `json:"blobs_url"`
  3269  		GitTagsURL       string    `json:"git_tags_url"`
  3270  		GitRefsURL       string    `json:"git_refs_url"`
  3271  		TreesURL         string    `json:"trees_url"`
  3272  		StatusesURL      string    `json:"statuses_url"`
  3273  		LanguagesURL     string    `json:"languages_url"`
  3274  		StargazersURL    string    `json:"stargazers_url"`
  3275  		ContributorsURL  string    `json:"contributors_url"`
  3276  		SubscribersURL   string    `json:"subscribers_url"`
  3277  		SubscriptionURL  string    `json:"subscription_url"`
  3278  		CommitsURL       string    `json:"commits_url"`
  3279  		GitCommitsURL    string    `json:"git_commits_url"`
  3280  		CommentsURL      string    `json:"comments_url"`
  3281  		IssueCommentURL  string    `json:"issue_comment_url"`
  3282  		ContentsURL      string    `json:"contents_url"`
  3283  		CompareURL       string    `json:"compare_url"`
  3284  		MergesURL        string    `json:"merges_url"`
  3285  		ArchiveURL       string    `json:"archive_url"`
  3286  		DownloadsURL     string    `json:"downloads_url"`
  3287  		IssuesURL        string    `json:"issues_url"`
  3288  		PullsURL         string    `json:"pulls_url"`
  3289  		MilestonesURL    string    `json:"milestones_url"`
  3290  		NotificationsURL string    `json:"notifications_url"`
  3291  		LabelsURL        string    `json:"labels_url"`
  3292  		ReleasesURL      string    `json:"releases_url"`
  3293  		CreatedAt        time.Time `json:"created_at"`
  3294  		UpdatedAt        time.Time `json:"updated_at"`
  3295  		PushedAt         time.Time `json:"pushed_at"`
  3296  		GitURL           string    `json:"git_url"`
  3297  		SSHURL           string    `json:"ssh_url"`
  3298  		CloneURL         string    `json:"clone_url"`
  3299  		SvnURL           string    `json:"svn_url"`
  3300  		Homepage         *string   `json:"homepage"`
  3301  		Size             int64     `json:"size"`
  3302  		StargazersCount  int64     `json:"stargazers_count"`
  3303  		WatchersCount    int64     `json:"watchers_count"`
  3304  		Language         *string   `json:"language"`
  3305  		HasIssues        bool      `json:"has_issues"`
  3306  		HasDownloads     bool      `json:"has_downloads"`
  3307  		HasWiki          bool      `json:"has_wiki"`
  3308  		HasPages         bool      `json:"has_pages"`
  3309  		ForksCount       int64     `json:"forks_count"`
  3310  		MirrorURL        *string   `json:"mirror_url"`
  3311  		OpenIssuesCount  int64     `json:"open_issues_count"`
  3312  		Forks            int64     `json:"forks"`
  3313  		OpenIssues       int64     `json:"open_issues"`
  3314  		Watchers         int64     `json:"watchers"`
  3315  		DefaultBranch    string    `json:"default_branch"`
  3316  	} `json:"repository"`
  3317  	Sender struct {
  3318  		Login             string `json:"login"`
  3319  		ID                int64  `json:"id"`
  3320  		NodeID            string `json:"node_id"`
  3321  		AvatarURL         string `json:"avatar_url"`
  3322  		GravatarID        string `json:"gravatar_id"`
  3323  		URL               string `json:"url"`
  3324  		HTMLURL           string `json:"html_url"`
  3325  		FollowersURL      string `json:"followers_url"`
  3326  		FollowingURL      string `json:"following_url"`
  3327  		GistsURL          string `json:"gists_url"`
  3328  		StarredURL        string `json:"starred_url"`
  3329  		SubscriptionsURL  string `json:"subscriptions_url"`
  3330  		OrganizationsURL  string `json:"organizations_url"`
  3331  		ReposURL          string `json:"repos_url"`
  3332  		EventsURL         string `json:"events_url"`
  3333  		ReceivedEventsURL string `json:"received_events_url"`
  3334  		Type              string `json:"type"`
  3335  		SiteAdmin         bool   `json:"site_admin"`
  3336  	} `json:"sender"`
  3337  }
  3338  
  3339  // ProjectCardPayload contains the information for GitHub's project_payload hook event
  3340  type ProjectCardPayload struct {
  3341  	Action      string `json:"action"`
  3342  	ProjectCard struct {
  3343  		URL        string  `json:"url"`
  3344  		ProjectURL string  `json:"project_url"`
  3345  		ColumnURL  string  `json:"column_url"`
  3346  		ColumnID   int64   `json:"column_id"`
  3347  		ID         int64   `json:"id"`
  3348  		NodeID     string  `json:"node_id"`
  3349  		Note       *string `json:"note"`
  3350  		Creator    struct {
  3351  			Login             string `json:"login"`
  3352  			ID                int64  `json:"id"`
  3353  			NodeID            string `json:"node_id"`
  3354  			AvatarURL         string `json:"avatar_url"`
  3355  			GravatarID        string `json:"gravatar_id"`
  3356  			URL               string `json:"url"`
  3357  			HTMLURL           string `json:"html_url"`
  3358  			FollowersURL      string `json:"followers_url"`
  3359  			FollowingURL      string `json:"following_url"`
  3360  			GistsURL          string `json:"gists_url"`
  3361  			StarredURL        string `json:"starred_url"`
  3362  			SubscriptionsURL  string `json:"subscriptions_url"`
  3363  			OrganizationsURL  string `json:"organizations_url"`
  3364  			ReposURL          string `json:"repos_url"`
  3365  			EventsURL         string `json:"events_url"`
  3366  			ReceivedEventsURL string `json:"received_events_url"`
  3367  			Type              string `json:"type"`
  3368  			SiteAdmin         bool   `json:"site_admin"`
  3369  		} `json:"creator"`
  3370  		CreatedAt  int64  `json:"created_at"`
  3371  		UpdatedAt  int64  `json:"updated_at"`
  3372  		ContentURL string `json:"content_url"`
  3373  	} `json:"project_card"`
  3374  	Repository struct {
  3375  		ID       int64  `json:"id"`
  3376  		NodeID   string `json:"node_id"`
  3377  		Name     string `json:"name"`
  3378  		FullName string `json:"full_name"`
  3379  		Owner    struct {
  3380  			Login             string `json:"login"`
  3381  			ID                int64  `json:"id"`
  3382  			NodeID            string `json:"node_id"`
  3383  			AvatarURL         string `json:"avatar_url"`
  3384  			GravatarID        string `json:"gravatar_id"`
  3385  			URL               string `json:"url"`
  3386  			HTMLURL           string `json:"html_url"`
  3387  			FollowersURL      string `json:"followers_url"`
  3388  			FollowingURL      string `json:"following_url"`
  3389  			GistsURL          string `json:"gists_url"`
  3390  			StarredURL        string `json:"starred_url"`
  3391  			SubscriptionsURL  string `json:"subscriptions_url"`
  3392  			OrganizationsURL  string `json:"organizations_url"`
  3393  			ReposURL          string `json:"repos_url"`
  3394  			EventsURL         string `json:"events_url"`
  3395  			ReceivedEventsURL string `json:"received_events_url"`
  3396  			Type              string `json:"type"`
  3397  			SiteAdmin         bool   `json:"site_admin"`
  3398  		} `json:"owner"`
  3399  		Private          bool      `json:"private"`
  3400  		HTMLURL          string    `json:"html_url"`
  3401  		Description      string    `json:"description"`
  3402  		Fork             bool      `json:"fork"`
  3403  		URL              string    `json:"url"`
  3404  		ForksURL         string    `json:"forks_url"`
  3405  		KeysURL          string    `json:"keys_url"`
  3406  		CollaboratorsURL string    `json:"collaborators_url"`
  3407  		TeamsURL         string    `json:"teams_url"`
  3408  		HooksURL         string    `json:"hooks_url"`
  3409  		IssueEventsURL   string    `json:"issue_events_url"`
  3410  		EventsURL        string    `json:"events_url"`
  3411  		AssigneesURL     string    `json:"assignees_url"`
  3412  		BranchesURL      string    `json:"branches_url"`
  3413  		TagsURL          string    `json:"tags_url"`
  3414  		BlobsURL         string    `json:"blobs_url"`
  3415  		GitTagsURL       string    `json:"git_tags_url"`
  3416  		GitRefsURL       string    `json:"git_refs_url"`
  3417  		TreesURL         string    `json:"trees_url"`
  3418  		StatusesURL      string    `json:"statuses_url"`
  3419  		LanguagesURL     string    `json:"languages_url"`
  3420  		StargazersURL    string    `json:"stargazers_url"`
  3421  		ContributorsURL  string    `json:"contributors_url"`
  3422  		SubscribersURL   string    `json:"subscribers_url"`
  3423  		SubscriptionURL  string    `json:"subscription_url"`
  3424  		CommitsURL       string    `json:"commits_url"`
  3425  		GitCommitsURL    string    `json:"git_commits_url"`
  3426  		CommentsURL      string    `json:"comments_url"`
  3427  		IssueCommentURL  string    `json:"issue_comment_url"`
  3428  		ContentsURL      string    `json:"contents_url"`
  3429  		CompareURL       string    `json:"compare_url"`
  3430  		MergesURL        string    `json:"merges_url"`
  3431  		ArchiveURL       string    `json:"archive_url"`
  3432  		DownloadsURL     string    `json:"downloads_url"`
  3433  		IssuesURL        string    `json:"issues_url"`
  3434  		PullsURL         string    `json:"pulls_url"`
  3435  		MilestonesURL    string    `json:"milestones_url"`
  3436  		NotificationsURL string    `json:"notifications_url"`
  3437  		LabelsURL        string    `json:"labels_url"`
  3438  		ReleasesURL      string    `json:"releases_url"`
  3439  		CreatedAt        time.Time `json:"created_at"`
  3440  		UpdatedAt        time.Time `json:"updated_at"`
  3441  		PushedAt         time.Time `json:"pushed_at"`
  3442  		GitURL           string    `json:"git_url"`
  3443  		SSHURL           string    `json:"ssh_url"`
  3444  		CloneURL         string    `json:"clone_url"`
  3445  		SvnURL           string    `json:"svn_url"`
  3446  		Homepage         *string   `json:"homepage"`
  3447  		Size             int64     `json:"size"`
  3448  		StargazersCount  int64     `json:"stargazers_count"`
  3449  		WatchersCount    int64     `json:"watchers_count"`
  3450  		Language         *string   `json:"language"`
  3451  		HasIssues        bool      `json:"has_issues"`
  3452  		HasDownloads     bool      `json:"has_downloads"`
  3453  		HasWiki          bool      `json:"has_wiki"`
  3454  		HasPages         bool      `json:"has_pages"`
  3455  		ForksCount       int64     `json:"forks_count"`
  3456  		MirrorURL        *string   `json:"mirror_url"`
  3457  		OpenIssuesCount  int64     `json:"open_issues_count"`
  3458  		Forks            int64     `json:"forks"`
  3459  		OpenIssues       int64     `json:"open_issues"`
  3460  		Watchers         int64     `json:"watchers"`
  3461  		DefaultBranch    string    `json:"default_branch"`
  3462  	} `json:"repository"`
  3463  	Organization struct {
  3464  		Login            string `json:"login"`
  3465  		ID               int64  `json:"id"`
  3466  		NodeID           string `json:"node_id"`
  3467  		URL              string `json:"url"`
  3468  		ReposURL         string `json:"repos_url"`
  3469  		EventsURL        string `json:"events_url"`
  3470  		MembersURL       string `json:"members_url"`
  3471  		PublicMembersURL string `json:"public_members_url"`
  3472  		AvatarURL        string `json:"avatar_url"`
  3473  	} `json:"organization"`
  3474  	Sender struct {
  3475  		Login             string `json:"login"`
  3476  		ID                int64  `json:"id"`
  3477  		NodeID            string `json:"node_id"`
  3478  		AvatarURL         string `json:"avatar_url"`
  3479  		GravatarID        string `json:"gravatar_id"`
  3480  		URL               string `json:"url"`
  3481  		HTMLURL           string `json:"html_url"`
  3482  		FollowersURL      string `json:"followers_url"`
  3483  		FollowingURL      string `json:"following_url"`
  3484  		GistsURL          string `json:"gists_url"`
  3485  		StarredURL        string `json:"starred_url"`
  3486  		SubscriptionsURL  string `json:"subscriptions_url"`
  3487  		OrganizationsURL  string `json:"organizations_url"`
  3488  		ReposURL          string `json:"repos_url"`
  3489  		EventsURL         string `json:"events_url"`
  3490  		ReceivedEventsURL string `json:"received_events_url"`
  3491  		Type              string `json:"type"`
  3492  		SiteAdmin         bool   `json:"site_admin"`
  3493  	} `json:"sender"`
  3494  }
  3495  
  3496  // ProjectColumnPayload contains the information for GitHub's project_column hook event
  3497  type ProjectColumnPayload struct {
  3498  	Action        string `json:"action"`
  3499  	ProjectColumn struct {
  3500  		URL        string `json:"url"`
  3501  		ProjectURL string `json:"project_url"`
  3502  		CardsURL   string `json:"cards_url"`
  3503  		ID         int64  `json:"id"`
  3504  		NodeID     string `json:"node_id"`
  3505  		Name       string `json:"name"`
  3506  		CreatedAt  int64  `json:"created_at"`
  3507  		UpdatedAt  int64  `json:"updated_at"`
  3508  	} `json:"project_column"`
  3509  	Repository struct {
  3510  		ID       int64  `json:"id"`
  3511  		NodeID   string `json:"node_id"`
  3512  		Name     string `json:"name"`
  3513  		FullName string `json:"full_name"`
  3514  		Owner    struct {
  3515  			Login             string `json:"login"`
  3516  			ID                int64  `json:"id"`
  3517  			NodeID            string `json:"node_id"`
  3518  			AvatarURL         string `json:"avatar_url"`
  3519  			GravatarID        string `json:"gravatar_id"`
  3520  			URL               string `json:"url"`
  3521  			HTMLURL           string `json:"html_url"`
  3522  			FollowersURL      string `json:"followers_url"`
  3523  			FollowingURL      string `json:"following_url"`
  3524  			GistsURL          string `json:"gists_url"`
  3525  			StarredURL        string `json:"starred_url"`
  3526  			SubscriptionsURL  string `json:"subscriptions_url"`
  3527  			OrganizationsURL  string `json:"organizations_url"`
  3528  			ReposURL          string `json:"repos_url"`
  3529  			EventsURL         string `json:"events_url"`
  3530  			ReceivedEventsURL string `json:"received_events_url"`
  3531  			Type              string `json:"type"`
  3532  			SiteAdmin         bool   `json:"site_admin"`
  3533  		} `json:"owner"`
  3534  		Private          bool      `json:"private"`
  3535  		HTMLURL          string    `json:"html_url"`
  3536  		Description      string    `json:"description"`
  3537  		Fork             bool      `json:"fork"`
  3538  		URL              string    `json:"url"`
  3539  		ForksURL         string    `json:"forks_url"`
  3540  		KeysURL          string    `json:"keys_url"`
  3541  		CollaboratorsURL string    `json:"collaborators_url"`
  3542  		TeamsURL         string    `json:"teams_url"`
  3543  		HooksURL         string    `json:"hooks_url"`
  3544  		IssueEventsURL   string    `json:"issue_events_url"`
  3545  		EventsURL        string    `json:"events_url"`
  3546  		AssigneesURL     string    `json:"assignees_url"`
  3547  		BranchesURL      string    `json:"branches_url"`
  3548  		TagsURL          string    `json:"tags_url"`
  3549  		BlobsURL         string    `json:"blobs_url"`
  3550  		GitTagsURL       string    `json:"git_tags_url"`
  3551  		GitRefsURL       string    `json:"git_refs_url"`
  3552  		TreesURL         string    `json:"trees_url"`
  3553  		StatusesURL      string    `json:"statuses_url"`
  3554  		LanguagesURL     string    `json:"languages_url"`
  3555  		StargazersURL    string    `json:"stargazers_url"`
  3556  		ContributorsURL  string    `json:"contributors_url"`
  3557  		SubscribersURL   string    `json:"subscribers_url"`
  3558  		SubscriptionURL  string    `json:"subscription_url"`
  3559  		CommitsURL       string    `json:"commits_url"`
  3560  		GitCommitsURL    string    `json:"git_commits_url"`
  3561  		CommentsURL      string    `json:"comments_url"`
  3562  		IssueCommentURL  string    `json:"issue_comment_url"`
  3563  		ContentsURL      string    `json:"contents_url"`
  3564  		CompareURL       string    `json:"compare_url"`
  3565  		MergesURL        string    `json:"merges_url"`
  3566  		ArchiveURL       string    `json:"archive_url"`
  3567  		DownloadsURL     string    `json:"downloads_url"`
  3568  		IssuesURL        string    `json:"issues_url"`
  3569  		PullsURL         string    `json:"pulls_url"`
  3570  		MilestonesURL    string    `json:"milestones_url"`
  3571  		NotificationsURL string    `json:"notifications_url"`
  3572  		LabelsURL        string    `json:"labels_url"`
  3573  		ReleasesURL      string    `json:"releases_url"`
  3574  		CreatedAt        time.Time `json:"created_at"`
  3575  		UpdatedAt        time.Time `json:"updated_at"`
  3576  		PushedAt         time.Time `json:"pushed_at"`
  3577  		GitURL           string    `json:"git_url"`
  3578  		SSHURL           string    `json:"ssh_url"`
  3579  		CloneURL         string    `json:"clone_url"`
  3580  		SvnURL           string    `json:"svn_url"`
  3581  		Homepage         *string   `json:"homepage"`
  3582  		Size             int64     `json:"size"`
  3583  		StargazersCount  int64     `json:"stargazers_count"`
  3584  		WatchersCount    int64     `json:"watchers_count"`
  3585  		Language         *string   `json:"language"`
  3586  		HasIssues        bool      `json:"has_issues"`
  3587  		HasDownloads     bool      `json:"has_downloads"`
  3588  		HasWiki          bool      `json:"has_wiki"`
  3589  		HasPages         bool      `json:"has_pages"`
  3590  		ForksCount       int64     `json:"forks_count"`
  3591  		MirrorURL        *string   `json:"mirror_url"`
  3592  		OpenIssuesCount  int64     `json:"open_issues_count"`
  3593  		Forks            int64     `json:"forks"`
  3594  		OpenIssues       int64     `json:"open_issues"`
  3595  		Watchers         int64     `json:"watchers"`
  3596  		DefaultBranch    string    `json:"default_branch"`
  3597  	} `json:"repository"`
  3598  	Organization struct {
  3599  		Login            string `json:"login"`
  3600  		ID               int64  `json:"id"`
  3601  		NodeID           string `json:"node_id"`
  3602  		URL              string `json:"url"`
  3603  		ReposURL         string `json:"repos_url"`
  3604  		EventsURL        string `json:"events_url"`
  3605  		MembersURL       string `json:"members_url"`
  3606  		PublicMembersURL string `json:"public_members_url"`
  3607  		AvatarURL        string `json:"avatar_url"`
  3608  	} `json:"organization"`
  3609  	Sender struct {
  3610  		Login             string `json:"login"`
  3611  		ID                int64  `json:"id"`
  3612  		NodeID            string `json:"node_id"`
  3613  		AvatarURL         string `json:"avatar_url"`
  3614  		GravatarID        string `json:"gravatar_id"`
  3615  		URL               string `json:"url"`
  3616  		HTMLURL           string `json:"html_url"`
  3617  		FollowersURL      string `json:"followers_url"`
  3618  		FollowingURL      string `json:"following_url"`
  3619  		GistsURL          string `json:"gists_url"`
  3620  		StarredURL        string `json:"starred_url"`
  3621  		SubscriptionsURL  string `json:"subscriptions_url"`
  3622  		OrganizationsURL  string `json:"organizations_url"`
  3623  		ReposURL          string `json:"repos_url"`
  3624  		EventsURL         string `json:"events_url"`
  3625  		ReceivedEventsURL string `json:"received_events_url"`
  3626  		Type              string `json:"type"`
  3627  		SiteAdmin         bool   `json:"site_admin"`
  3628  	} `json:"sender"`
  3629  }
  3630  
  3631  // ProjectPayload contains the information for GitHub's project hook event
  3632  type ProjectPayload struct {
  3633  	Action  string `json:"action"`
  3634  	Project struct {
  3635  		OwnerURL   string `json:"owner_url"`
  3636  		URL        string `json:"url"`
  3637  		ColumnsURL string `json:"columns_url"`
  3638  		ID         int64  `json:"id"`
  3639  		NodeID     string `json:"node_id"`
  3640  		Name       string `json:"name"`
  3641  		Body       string `json:"body"`
  3642  		Number     int64  `json:"number"`
  3643  		State      string `json:"state"`
  3644  		Creator    struct {
  3645  			Login             string `json:"login"`
  3646  			ID                int64  `json:"id"`
  3647  			NodeID            string `json:"node_id"`
  3648  			AvatarURL         string `json:"avatar_url"`
  3649  			GravatarID        string `json:"gravatar_id"`
  3650  			URL               string `json:"url"`
  3651  			HTMLURL           string `json:"html_url"`
  3652  			FollowersURL      string `json:"followers_url"`
  3653  			FollowingURL      string `json:"following_url"`
  3654  			GistsURL          string `json:"gists_url"`
  3655  			StarredURL        string `json:"starred_url"`
  3656  			SubscriptionsURL  string `json:"subscriptions_url"`
  3657  			OrganizationsURL  string `json:"organizations_url"`
  3658  			ReposURL          string `json:"repos_url"`
  3659  			EventsURL         string `json:"events_url"`
  3660  			ReceivedEventsURL string `json:"received_events_url"`
  3661  			Type              string `json:"type"`
  3662  			SiteAdmin         bool   `json:"site_admin"`
  3663  		} `json:"creator"`
  3664  		CreatedAt int64 `json:"created_at"`
  3665  		UpdatedAt int64 `json:"updated_at"`
  3666  	} `json:"project"`
  3667  	Repository struct {
  3668  		ID       int64  `json:"id"`
  3669  		NodeID   string `json:"node_id"`
  3670  		Name     string `json:"name"`
  3671  		FullName string `json:"full_name"`
  3672  		Owner    struct {
  3673  			Login             string `json:"login"`
  3674  			ID                int64  `json:"id"`
  3675  			NodeID            string `json:"node_id"`
  3676  			AvatarURL         string `json:"avatar_url"`
  3677  			GravatarID        string `json:"gravatar_id"`
  3678  			URL               string `json:"url"`
  3679  			HTMLURL           string `json:"html_url"`
  3680  			FollowersURL      string `json:"followers_url"`
  3681  			FollowingURL      string `json:"following_url"`
  3682  			GistsURL          string `json:"gists_url"`
  3683  			StarredURL        string `json:"starred_url"`
  3684  			SubscriptionsURL  string `json:"subscriptions_url"`
  3685  			OrganizationsURL  string `json:"organizations_url"`
  3686  			ReposURL          string `json:"repos_url"`
  3687  			EventsURL         string `json:"events_url"`
  3688  			ReceivedEventsURL string `json:"received_events_url"`
  3689  			Type              string `json:"type"`
  3690  			SiteAdmin         bool   `json:"site_admin"`
  3691  		} `json:"owner"`
  3692  		Private          bool      `json:"private"`
  3693  		HTMLURL          string    `json:"html_url"`
  3694  		Description      string    `json:"description"`
  3695  		Fork             bool      `json:"fork"`
  3696  		URL              string    `json:"url"`
  3697  		ForksURL         string    `json:"forks_url"`
  3698  		KeysURL          string    `json:"keys_url"`
  3699  		CollaboratorsURL string    `json:"collaborators_url"`
  3700  		TeamsURL         string    `json:"teams_url"`
  3701  		HooksURL         string    `json:"hooks_url"`
  3702  		IssueEventsURL   string    `json:"issue_events_url"`
  3703  		EventsURL        string    `json:"events_url"`
  3704  		AssigneesURL     string    `json:"assignees_url"`
  3705  		BranchesURL      string    `json:"branches_url"`
  3706  		TagsURL          string    `json:"tags_url"`
  3707  		BlobsURL         string    `json:"blobs_url"`
  3708  		GitTagsURL       string    `json:"git_tags_url"`
  3709  		GitRefsURL       string    `json:"git_refs_url"`
  3710  		TreesURL         string    `json:"trees_url"`
  3711  		StatusesURL      string    `json:"statuses_url"`
  3712  		LanguagesURL     string    `json:"languages_url"`
  3713  		StargazersURL    string    `json:"stargazers_url"`
  3714  		ContributorsURL  string    `json:"contributors_url"`
  3715  		SubscribersURL   string    `json:"subscribers_url"`
  3716  		SubscriptionURL  string    `json:"subscription_url"`
  3717  		CommitsURL       string    `json:"commits_url"`
  3718  		GitCommitsURL    string    `json:"git_commits_url"`
  3719  		CommentsURL      string    `json:"comments_url"`
  3720  		IssueCommentURL  string    `json:"issue_comment_url"`
  3721  		ContentsURL      string    `json:"contents_url"`
  3722  		CompareURL       string    `json:"compare_url"`
  3723  		MergesURL        string    `json:"merges_url"`
  3724  		ArchiveURL       string    `json:"archive_url"`
  3725  		DownloadsURL     string    `json:"downloads_url"`
  3726  		IssuesURL        string    `json:"issues_url"`
  3727  		PullsURL         string    `json:"pulls_url"`
  3728  		MilestonesURL    string    `json:"milestones_url"`
  3729  		NotificationsURL string    `json:"notifications_url"`
  3730  		LabelsURL        string    `json:"labels_url"`
  3731  		ReleasesURL      string    `json:"releases_url"`
  3732  		CreatedAt        time.Time `json:"created_at"`
  3733  		UpdatedAt        time.Time `json:"updated_at"`
  3734  		PushedAt         time.Time `json:"pushed_at"`
  3735  		GitURL           string    `json:"git_url"`
  3736  		SSHURL           string    `json:"ssh_url"`
  3737  		CloneURL         string    `json:"clone_url"`
  3738  		SvnURL           string    `json:"svn_url"`
  3739  		Homepage         *string   `json:"homepage"`
  3740  		Size             int64     `json:"size"`
  3741  		StargazersCount  int64     `json:"stargazers_count"`
  3742  		WatchersCount    int64     `json:"watchers_count"`
  3743  		Language         *string   `json:"language"`
  3744  		HasIssues        bool      `json:"has_issues"`
  3745  		HasDownloads     bool      `json:"has_downloads"`
  3746  		HasWiki          bool      `json:"has_wiki"`
  3747  		HasPages         bool      `json:"has_pages"`
  3748  		ForksCount       int64     `json:"forks_count"`
  3749  		MirrorURL        *string   `json:"mirror_url"`
  3750  		OpenIssuesCount  int64     `json:"open_issues_count"`
  3751  		Forks            int64     `json:"forks"`
  3752  		OpenIssues       int64     `json:"open_issues"`
  3753  		Watchers         int64     `json:"watchers"`
  3754  		DefaultBranch    string    `json:"default_branch"`
  3755  	} `json:"repository"`
  3756  	Organization struct {
  3757  		Login            string `json:"login"`
  3758  		ID               int64  `json:"id"`
  3759  		NodeID           string `json:"node_id"`
  3760  		URL              string `json:"url"`
  3761  		ReposURL         string `json:"repos_url"`
  3762  		EventsURL        string `json:"events_url"`
  3763  		MembersURL       string `json:"members_url"`
  3764  		PublicMembersURL string `json:"public_members_url"`
  3765  		AvatarURL        string `json:"avatar_url"`
  3766  	} `json:"organization"`
  3767  	Sender struct {
  3768  		Login             string `json:"login"`
  3769  		ID                int64  `json:"id"`
  3770  		NodeID            string `json:"node_id"`
  3771  		AvatarURL         string `json:"avatar_url"`
  3772  		GravatarID        string `json:"gravatar_id"`
  3773  		URL               string `json:"url"`
  3774  		HTMLURL           string `json:"html_url"`
  3775  		FollowersURL      string `json:"followers_url"`
  3776  		FollowingURL      string `json:"following_url"`
  3777  		GistsURL          string `json:"gists_url"`
  3778  		StarredURL        string `json:"starred_url"`
  3779  		SubscriptionsURL  string `json:"subscriptions_url"`
  3780  		OrganizationsURL  string `json:"organizations_url"`
  3781  		ReposURL          string `json:"repos_url"`
  3782  		EventsURL         string `json:"events_url"`
  3783  		ReceivedEventsURL string `json:"received_events_url"`
  3784  		Type              string `json:"type"`
  3785  		SiteAdmin         bool   `json:"site_admin"`
  3786  	} `json:"sender"`
  3787  }
  3788  
  3789  // PublicPayload contains the information for GitHub's public hook event
  3790  type PublicPayload struct {
  3791  	Repository struct {
  3792  		ID       int64  `json:"id"`
  3793  		NodeID   string `json:"node_id"`
  3794  		Name     string `json:"name"`
  3795  		FullName string `json:"full_name"`
  3796  		Owner    struct {
  3797  			Login             string `json:"login"`
  3798  			ID                int64  `json:"id"`
  3799  			NodeID            string `json:"node_id"`
  3800  			AvatarURL         string `json:"avatar_url"`
  3801  			GravatarID        string `json:"gravatar_id"`
  3802  			URL               string `json:"url"`
  3803  			HTMLURL           string `json:"html_url"`
  3804  			FollowersURL      string `json:"followers_url"`
  3805  			FollowingURL      string `json:"following_url"`
  3806  			GistsURL          string `json:"gists_url"`
  3807  			StarredURL        string `json:"starred_url"`
  3808  			SubscriptionsURL  string `json:"subscriptions_url"`
  3809  			OrganizationsURL  string `json:"organizations_url"`
  3810  			ReposURL          string `json:"repos_url"`
  3811  			EventsURL         string `json:"events_url"`
  3812  			ReceivedEventsURL string `json:"received_events_url"`
  3813  			Type              string `json:"type"`
  3814  			SiteAdmin         bool   `json:"site_admin"`
  3815  		} `json:"owner"`
  3816  		Private          bool      `json:"private"`
  3817  		HTMLURL          string    `json:"html_url"`
  3818  		Description      string    `json:"description"`
  3819  		Fork             bool      `json:"fork"`
  3820  		URL              string    `json:"url"`
  3821  		ForksURL         string    `json:"forks_url"`
  3822  		KeysURL          string    `json:"keys_url"`
  3823  		CollaboratorsURL string    `json:"collaborators_url"`
  3824  		TeamsURL         string    `json:"teams_url"`
  3825  		HooksURL         string    `json:"hooks_url"`
  3826  		IssueEventsURL   string    `json:"issue_events_url"`
  3827  		EventsURL        string    `json:"events_url"`
  3828  		AssigneesURL     string    `json:"assignees_url"`
  3829  		BranchesURL      string    `json:"branches_url"`
  3830  		TagsURL          string    `json:"tags_url"`
  3831  		BlobsURL         string    `json:"blobs_url"`
  3832  		GitTagsURL       string    `json:"git_tags_url"`
  3833  		GitRefsURL       string    `json:"git_refs_url"`
  3834  		TreesURL         string    `json:"trees_url"`
  3835  		StatusesURL      string    `json:"statuses_url"`
  3836  		LanguagesURL     string    `json:"languages_url"`
  3837  		StargazersURL    string    `json:"stargazers_url"`
  3838  		ContributorsURL  string    `json:"contributors_url"`
  3839  		SubscribersURL   string    `json:"subscribers_url"`
  3840  		SubscriptionURL  string    `json:"subscription_url"`
  3841  		CommitsURL       string    `json:"commits_url"`
  3842  		GitCommitsURL    string    `json:"git_commits_url"`
  3843  		CommentsURL      string    `json:"comments_url"`
  3844  		IssueCommentURL  string    `json:"issue_comment_url"`
  3845  		ContentsURL      string    `json:"contents_url"`
  3846  		CompareURL       string    `json:"compare_url"`
  3847  		MergesURL        string    `json:"merges_url"`
  3848  		ArchiveURL       string    `json:"archive_url"`
  3849  		DownloadsURL     string    `json:"downloads_url"`
  3850  		IssuesURL        string    `json:"issues_url"`
  3851  		PullsURL         string    `json:"pulls_url"`
  3852  		MilestonesURL    string    `json:"milestones_url"`
  3853  		NotificationsURL string    `json:"notifications_url"`
  3854  		LabelsURL        string    `json:"labels_url"`
  3855  		ReleasesURL      string    `json:"releases_url"`
  3856  		CreatedAt        time.Time `json:"created_at"`
  3857  		UpdatedAt        time.Time `json:"updated_at"`
  3858  		PushedAt         time.Time `json:"pushed_at"`
  3859  		GitURL           string    `json:"git_url"`
  3860  		SSHURL           string    `json:"ssh_url"`
  3861  		CloneURL         string    `json:"clone_url"`
  3862  		SvnURL           string    `json:"svn_url"`
  3863  		Homepage         *string   `json:"homepage"`
  3864  		Size             int64     `json:"size"`
  3865  		StargazersCount  int64     `json:"stargazers_count"`
  3866  		WatchersCount    int64     `json:"watchers_count"`
  3867  		Language         *string   `json:"language"`
  3868  		HasIssues        bool      `json:"has_issues"`
  3869  		HasDownloads     bool      `json:"has_downloads"`
  3870  		HasWiki          bool      `json:"has_wiki"`
  3871  		HasPages         bool      `json:"has_pages"`
  3872  		ForksCount       int64     `json:"forks_count"`
  3873  		MirrorURL        *string   `json:"mirror_url"`
  3874  		OpenIssuesCount  int64     `json:"open_issues_count"`
  3875  		Forks            int64     `json:"forks"`
  3876  		OpenIssues       int64     `json:"open_issues"`
  3877  		Watchers         int64     `json:"watchers"`
  3878  		DefaultBranch    string    `json:"default_branch"`
  3879  	} `json:"repository"`
  3880  	Sender struct {
  3881  		Login             string `json:"login"`
  3882  		ID                int64  `json:"id"`
  3883  		NodeID            string `json:"node_id"`
  3884  		AvatarURL         string `json:"avatar_url"`
  3885  		GravatarID        string `json:"gravatar_id"`
  3886  		URL               string `json:"url"`
  3887  		HTMLURL           string `json:"html_url"`
  3888  		FollowersURL      string `json:"followers_url"`
  3889  		FollowingURL      string `json:"following_url"`
  3890  		GistsURL          string `json:"gists_url"`
  3891  		StarredURL        string `json:"starred_url"`
  3892  		SubscriptionsURL  string `json:"subscriptions_url"`
  3893  		OrganizationsURL  string `json:"organizations_url"`
  3894  		ReposURL          string `json:"repos_url"`
  3895  		EventsURL         string `json:"events_url"`
  3896  		ReceivedEventsURL string `json:"received_events_url"`
  3897  		Type              string `json:"type"`
  3898  		SiteAdmin         bool   `json:"site_admin"`
  3899  	} `json:"sender"`
  3900  }
  3901  
  3902  // PullRequestPayload contains the information for GitHub's pull_request hook event
  3903  type PullRequestPayload struct {
  3904  	Action      string `json:"action"`
  3905  	Number      int64  `json:"number"`
  3906  	PullRequest struct {
  3907  		URL      string `json:"url"`
  3908  		ID       int64  `json:"id"`
  3909  		NodeID   string `json:"node_id"`
  3910  		HTMLURL  string `json:"html_url"`
  3911  		DiffURL  string `json:"diff_url"`
  3912  		PatchURL string `json:"patch_url"`
  3913  		IssueURL string `json:"issue_url"`
  3914  		Number   int64  `json:"number"`
  3915  		State    string `json:"state"`
  3916  		Locked   bool   `json:"locked"`
  3917  		Title    string `json:"title"`
  3918  		User     struct {
  3919  			Login             string `json:"login"`
  3920  			ID                int64  `json:"id"`
  3921  			NodeID            string `json:"node_id"`
  3922  			AvatarURL         string `json:"avatar_url"`
  3923  			GravatarID        string `json:"gravatar_id"`
  3924  			URL               string `json:"url"`
  3925  			HTMLURL           string `json:"html_url"`
  3926  			FollowersURL      string `json:"followers_url"`
  3927  			FollowingURL      string `json:"following_url"`
  3928  			GistsURL          string `json:"gists_url"`
  3929  			StarredURL        string `json:"starred_url"`
  3930  			SubscriptionsURL  string `json:"subscriptions_url"`
  3931  			OrganizationsURL  string `json:"organizations_url"`
  3932  			ReposURL          string `json:"repos_url"`
  3933  			EventsURL         string `json:"events_url"`
  3934  			ReceivedEventsURL string `json:"received_events_url"`
  3935  			Type              string `json:"type"`
  3936  			SiteAdmin         bool   `json:"site_admin"`
  3937  		} `json:"user"`
  3938  		Body               string      `json:"body"`
  3939  		CreatedAt          time.Time   `json:"created_at"`
  3940  		UpdatedAt          time.Time   `json:"updated_at"`
  3941  		ClosedAt           *time.Time  `json:"closed_at"`
  3942  		MergedAt           *time.Time  `json:"merged_at"`
  3943  		MergeCommitSha     *string     `json:"merge_commit_sha"`
  3944  		Assignee           *Assignee   `json:"assignee"`
  3945  		Assignees          []*Assignee `json:"assignees"`
  3946  		Milestone          *Milestone  `json:"milestone"`
  3947  		Draft              bool        `json:"draft"`
  3948  		CommitsURL         string      `json:"commits_url"`
  3949  		ReviewCommentsURL  string      `json:"review_comments_url"`
  3950  		ReviewCommentURL   string      `json:"review_comment_url"`
  3951  		CommentsURL        string      `json:"comments_url"`
  3952  		StatusesURL        string      `json:"statuses_url"`
  3953  		RequestedReviewers []struct {
  3954  			Login             string `json:"login"`
  3955  			ID                int    `json:"id"`
  3956  			NodeID            string `json:"node_id"`
  3957  			AvatarURL         string `json:"avatar_url"`
  3958  			GravatarID        string `json:"gravatar_id"`
  3959  			URL               string `json:"url"`
  3960  			HTMLURL           string `json:"html_url"`
  3961  			FollowersURL      string `json:"followers_url"`
  3962  			FollowingURL      string `json:"following_url"`
  3963  			GistsURL          string `json:"gists_url"`
  3964  			StarredURL        string `json:"starred_url"`
  3965  			SubscriptionsURL  string `json:"subscriptions_url"`
  3966  			OrganizationsURL  string `json:"organizations_url"`
  3967  			ReposURL          string `json:"repos_url"`
  3968  			EventsURL         string `json:"events_url"`
  3969  			ReceivedEventsURL string `json:"received_events_url"`
  3970  			Type              string `json:"type"`
  3971  			SiteAdmin         bool   `json:"site_admin"`
  3972  		} `json:"requested_reviewers,omitempty"`
  3973  		Labels []struct {
  3974  			ID          int64  `json:"id"`
  3975  			NodeID      string `json:"node_id"`
  3976  			Description string `json:"description"`
  3977  			URL         string `json:"url"`
  3978  			Name        string `json:"name"`
  3979  			Color       string `json:"color"`
  3980  			Default     bool   `json:"default"`
  3981  		} `json:"labels"`
  3982  		Head struct {
  3983  			Label string `json:"label"`
  3984  			Ref   string `json:"ref"`
  3985  			Sha   string `json:"sha"`
  3986  			User  struct {
  3987  				Login             string `json:"login"`
  3988  				ID                int64  `json:"id"`
  3989  				NodeID            string `json:"node_id"`
  3990  				AvatarURL         string `json:"avatar_url"`
  3991  				GravatarID        string `json:"gravatar_id"`
  3992  				URL               string `json:"url"`
  3993  				HTMLURL           string `json:"html_url"`
  3994  				FollowersURL      string `json:"followers_url"`
  3995  				FollowingURL      string `json:"following_url"`
  3996  				GistsURL          string `json:"gists_url"`
  3997  				StarredURL        string `json:"starred_url"`
  3998  				SubscriptionsURL  string `json:"subscriptions_url"`
  3999  				OrganizationsURL  string `json:"organizations_url"`
  4000  				ReposURL          string `json:"repos_url"`
  4001  				EventsURL         string `json:"events_url"`
  4002  				ReceivedEventsURL string `json:"received_events_url"`
  4003  				Type              string `json:"type"`
  4004  				SiteAdmin         bool   `json:"site_admin"`
  4005  			} `json:"user"`
  4006  			Repo struct {
  4007  				ID       int64  `json:"id"`
  4008  				NodeID   string `json:"node_id"`
  4009  				Name     string `json:"name"`
  4010  				FullName string `json:"full_name"`
  4011  				Owner    struct {
  4012  					Login             string `json:"login"`
  4013  					ID                int64  `json:"id"`
  4014  					NodeID            string `json:"node_id"`
  4015  					AvatarURL         string `json:"avatar_url"`
  4016  					GravatarID        string `json:"gravatar_id"`
  4017  					URL               string `json:"url"`
  4018  					HTMLURL           string `json:"html_url"`
  4019  					FollowersURL      string `json:"followers_url"`
  4020  					FollowingURL      string `json:"following_url"`
  4021  					GistsURL          string `json:"gists_url"`
  4022  					StarredURL        string `json:"starred_url"`
  4023  					SubscriptionsURL  string `json:"subscriptions_url"`
  4024  					OrganizationsURL  string `json:"organizations_url"`
  4025  					ReposURL          string `json:"repos_url"`
  4026  					EventsURL         string `json:"events_url"`
  4027  					ReceivedEventsURL string `json:"received_events_url"`
  4028  					Type              string `json:"type"`
  4029  					SiteAdmin         bool   `json:"site_admin"`
  4030  				} `json:"owner"`
  4031  				Private          bool      `json:"private"`
  4032  				HTMLURL          string    `json:"html_url"`
  4033  				Description      string    `json:"description"`
  4034  				Fork             bool      `json:"fork"`
  4035  				URL              string    `json:"url"`
  4036  				ForksURL         string    `json:"forks_url"`
  4037  				KeysURL          string    `json:"keys_url"`
  4038  				CollaboratorsURL string    `json:"collaborators_url"`
  4039  				TeamsURL         string    `json:"teams_url"`
  4040  				HooksURL         string    `json:"hooks_url"`
  4041  				IssueEventsURL   string    `json:"issue_events_url"`
  4042  				EventsURL        string    `json:"events_url"`
  4043  				AssigneesURL     string    `json:"assignees_url"`
  4044  				BranchesURL      string    `json:"branches_url"`
  4045  				TagsURL          string    `json:"tags_url"`
  4046  				BlobsURL         string    `json:"blobs_url"`
  4047  				GitTagsURL       string    `json:"git_tags_url"`
  4048  				GitRefsURL       string    `json:"git_refs_url"`
  4049  				TreesURL         string    `json:"trees_url"`
  4050  				StatusesURL      string    `json:"statuses_url"`
  4051  				LanguagesURL     string    `json:"languages_url"`
  4052  				StargazersURL    string    `json:"stargazers_url"`
  4053  				ContributorsURL  string    `json:"contributors_url"`
  4054  				SubscribersURL   string    `json:"subscribers_url"`
  4055  				SubscriptionURL  string    `json:"subscription_url"`
  4056  				CommitsURL       string    `json:"commits_url"`
  4057  				GitCommitsURL    string    `json:"git_commits_url"`
  4058  				CommentsURL      string    `json:"comments_url"`
  4059  				IssueCommentURL  string    `json:"issue_comment_url"`
  4060  				ContentsURL      string    `json:"contents_url"`
  4061  				CompareURL       string    `json:"compare_url"`
  4062  				MergesURL        string    `json:"merges_url"`
  4063  				ArchiveURL       string    `json:"archive_url"`
  4064  				DownloadsURL     string    `json:"downloads_url"`
  4065  				IssuesURL        string    `json:"issues_url"`
  4066  				PullsURL         string    `json:"pulls_url"`
  4067  				MilestonesURL    string    `json:"milestones_url"`
  4068  				NotificationsURL string    `json:"notifications_url"`
  4069  				LabelsURL        string    `json:"labels_url"`
  4070  				ReleasesURL      string    `json:"releases_url"`
  4071  				CreatedAt        time.Time `json:"created_at"`
  4072  				UpdatedAt        time.Time `json:"updated_at"`
  4073  				PushedAt         time.Time `json:"pushed_at"`
  4074  				GitURL           string    `json:"git_url"`
  4075  				SSHURL           string    `json:"ssh_url"`
  4076  				CloneURL         string    `json:"clone_url"`
  4077  				SvnURL           string    `json:"svn_url"`
  4078  				Homepage         *string   `json:"homepage"`
  4079  				Size             int64     `json:"size"`
  4080  				StargazersCount  int64     `json:"stargazers_count"`
  4081  				WatchersCount    int64     `json:"watchers_count"`
  4082  				Language         *string   `json:"language"`
  4083  				HasIssues        bool      `json:"has_issues"`
  4084  				HasDownloads     bool      `json:"has_downloads"`
  4085  				HasWiki          bool      `json:"has_wiki"`
  4086  				HasPages         bool      `json:"has_pages"`
  4087  				ForksCount       int64     `json:"forks_count"`
  4088  				MirrorURL        *string   `json:"mirror_url"`
  4089  				OpenIssuesCount  int64     `json:"open_issues_count"`
  4090  				Forks            int64     `json:"forks"`
  4091  				OpenIssues       int64     `json:"open_issues"`
  4092  				Watchers         int64     `json:"watchers"`
  4093  				DefaultBranch    string    `json:"default_branch"`
  4094  			} `json:"repo"`
  4095  		} `json:"head"`
  4096  		Base struct {
  4097  			Label string `json:"label"`
  4098  			Ref   string `json:"ref"`
  4099  			Sha   string `json:"sha"`
  4100  			User  struct {
  4101  				Login             string `json:"login"`
  4102  				ID                int64  `json:"id"`
  4103  				NodeID            string `json:"node_id"`
  4104  				AvatarURL         string `json:"avatar_url"`
  4105  				GravatarID        string `json:"gravatar_id"`
  4106  				URL               string `json:"url"`
  4107  				HTMLURL           string `json:"html_url"`
  4108  				FollowersURL      string `json:"followers_url"`
  4109  				FollowingURL      string `json:"following_url"`
  4110  				GistsURL          string `json:"gists_url"`
  4111  				StarredURL        string `json:"starred_url"`
  4112  				SubscriptionsURL  string `json:"subscriptions_url"`
  4113  				OrganizationsURL  string `json:"organizations_url"`
  4114  				ReposURL          string `json:"repos_url"`
  4115  				EventsURL         string `json:"events_url"`
  4116  				ReceivedEventsURL string `json:"received_events_url"`
  4117  				Type              string `json:"type"`
  4118  				SiteAdmin         bool   `json:"site_admin"`
  4119  			} `json:"user"`
  4120  			Repo struct {
  4121  				ID       int64  `json:"id"`
  4122  				NodeID   string `json:"node_id"`
  4123  				Name     string `json:"name"`
  4124  				FullName string `json:"full_name"`
  4125  				Owner    struct {
  4126  					Login             string `json:"login"`
  4127  					ID                int64  `json:"id"`
  4128  					NodeID            string `json:"node_id"`
  4129  					AvatarURL         string `json:"avatar_url"`
  4130  					GravatarID        string `json:"gravatar_id"`
  4131  					URL               string `json:"url"`
  4132  					HTMLURL           string `json:"html_url"`
  4133  					FollowersURL      string `json:"followers_url"`
  4134  					FollowingURL      string `json:"following_url"`
  4135  					GistsURL          string `json:"gists_url"`
  4136  					StarredURL        string `json:"starred_url"`
  4137  					SubscriptionsURL  string `json:"subscriptions_url"`
  4138  					OrganizationsURL  string `json:"organizations_url"`
  4139  					ReposURL          string `json:"repos_url"`
  4140  					EventsURL         string `json:"events_url"`
  4141  					ReceivedEventsURL string `json:"received_events_url"`
  4142  					Type              string `json:"type"`
  4143  					SiteAdmin         bool   `json:"site_admin"`
  4144  				} `json:"owner"`
  4145  				Private          bool      `json:"private"`
  4146  				HTMLURL          string    `json:"html_url"`
  4147  				Description      string    `json:"description"`
  4148  				Fork             bool      `json:"fork"`
  4149  				URL              string    `json:"url"`
  4150  				ForksURL         string    `json:"forks_url"`
  4151  				KeysURL          string    `json:"keys_url"`
  4152  				CollaboratorsURL string    `json:"collaborators_url"`
  4153  				TeamsURL         string    `json:"teams_url"`
  4154  				HooksURL         string    `json:"hooks_url"`
  4155  				IssueEventsURL   string    `json:"issue_events_url"`
  4156  				EventsURL        string    `json:"events_url"`
  4157  				AssigneesURL     string    `json:"assignees_url"`
  4158  				BranchesURL      string    `json:"branches_url"`
  4159  				TagsURL          string    `json:"tags_url"`
  4160  				BlobsURL         string    `json:"blobs_url"`
  4161  				GitTagsURL       string    `json:"git_tags_url"`
  4162  				GitRefsURL       string    `json:"git_refs_url"`
  4163  				TreesURL         string    `json:"trees_url"`
  4164  				StatusesURL      string    `json:"statuses_url"`
  4165  				LanguagesURL     string    `json:"languages_url"`
  4166  				StargazersURL    string    `json:"stargazers_url"`
  4167  				ContributorsURL  string    `json:"contributors_url"`
  4168  				SubscribersURL   string    `json:"subscribers_url"`
  4169  				SubscriptionURL  string    `json:"subscription_url"`
  4170  				CommitsURL       string    `json:"commits_url"`
  4171  				GitCommitsURL    string    `json:"git_commits_url"`
  4172  				CommentsURL      string    `json:"comments_url"`
  4173  				IssueCommentURL  string    `json:"issue_comment_url"`
  4174  				ContentsURL      string    `json:"contents_url"`
  4175  				CompareURL       string    `json:"compare_url"`
  4176  				MergesURL        string    `json:"merges_url"`
  4177  				ArchiveURL       string    `json:"archive_url"`
  4178  				DownloadsURL     string    `json:"downloads_url"`
  4179  				IssuesURL        string    `json:"issues_url"`
  4180  				PullsURL         string    `json:"pulls_url"`
  4181  				MilestonesURL    string    `json:"milestones_url"`
  4182  				NotificationsURL string    `json:"notifications_url"`
  4183  				LabelsURL        string    `json:"labels_url"`
  4184  				ReleasesURL      string    `json:"releases_url"`
  4185  				CreatedAt        time.Time `json:"created_at"`
  4186  				UpdatedAt        time.Time `json:"updated_at"`
  4187  				PushedAt         time.Time `json:"pushed_at"`
  4188  				GitURL           string    `json:"git_url"`
  4189  				SSHURL           string    `json:"ssh_url"`
  4190  				CloneURL         string    `json:"clone_url"`
  4191  				SvnURL           string    `json:"svn_url"`
  4192  				Homepage         *string   `json:"homepage"`
  4193  				Size             int64     `json:"size"`
  4194  				StargazersCount  int64     `json:"stargazers_count"`
  4195  				WatchersCount    int64     `json:"watchers_count"`
  4196  				Language         *string   `json:"language"`
  4197  				HasIssues        bool      `json:"has_issues"`
  4198  				HasDownloads     bool      `json:"has_downloads"`
  4199  				HasWiki          bool      `json:"has_wiki"`
  4200  				HasPages         bool      `json:"has_pages"`
  4201  				ForksCount       int64     `json:"forks_count"`
  4202  				MirrorURL        *string   `json:"mirror_url"`
  4203  				OpenIssuesCount  int64     `json:"open_issues_count"`
  4204  				Forks            int64     `json:"forks"`
  4205  				OpenIssues       int64     `json:"open_issues"`
  4206  				Watchers         int64     `json:"watchers"`
  4207  				DefaultBranch    string    `json:"default_branch"`
  4208  			} `json:"repo"`
  4209  		} `json:"base"`
  4210  		Links struct {
  4211  			Self struct {
  4212  				Href string `json:"href"`
  4213  			} `json:"self"`
  4214  			HTML struct {
  4215  				Href string `json:"href"`
  4216  			} `json:"html"`
  4217  			Issue struct {
  4218  				Href string `json:"href"`
  4219  			} `json:"issue"`
  4220  			Comments struct {
  4221  				Href string `json:"href"`
  4222  			} `json:"comments"`
  4223  			ReviewComments struct {
  4224  				Href string `json:"href"`
  4225  			} `json:"review_comments"`
  4226  			ReviewComment struct {
  4227  				Href string `json:"href"`
  4228  			} `json:"review_comment"`
  4229  			Commits struct {
  4230  				Href string `json:"href"`
  4231  			} `json:"commits"`
  4232  			Statuses struct {
  4233  				Href string `json:"href"`
  4234  			} `json:"statuses"`
  4235  		} `json:"_links"`
  4236  		Merged         bool      `json:"merged"`
  4237  		Mergeable      *bool     `json:"mergeable"`
  4238  		MergeableState string    `json:"mergeable_state"`
  4239  		MergedBy       *MergedBy `json:"merged_by"`
  4240  		Comments       int64     `json:"comments"`
  4241  		ReviewComments int64     `json:"review_comments"`
  4242  		Commits        int64     `json:"commits"`
  4243  		Additions      int64     `json:"additions"`
  4244  		Deletions      int64     `json:"deletions"`
  4245  		ChangedFiles   int64     `json:"changed_files"`
  4246  	} `json:"pull_request"`
  4247  	Label struct {
  4248  		ID          int64  `json:"id"`
  4249  		NodeID      string `json:"node_id"`
  4250  		Description string `json:"description"`
  4251  		URL         string `json:"url"`
  4252  		Name        string `json:"name"`
  4253  		Color       string `json:"color"`
  4254  		Default     bool   `json:"default"`
  4255  	} `json:"label"`
  4256  	Repository struct {
  4257  		ID       int64  `json:"id"`
  4258  		NodeID   string `json:"node_id"`
  4259  		Name     string `json:"name"`
  4260  		FullName string `json:"full_name"`
  4261  		Owner    struct {
  4262  			Login             string `json:"login"`
  4263  			NodeID            string `json:"node_id"`
  4264  			ID                int64  `json:"id"`
  4265  			AvatarURL         string `json:"avatar_url"`
  4266  			GravatarID        string `json:"gravatar_id"`
  4267  			URL               string `json:"url"`
  4268  			HTMLURL           string `json:"html_url"`
  4269  			FollowersURL      string `json:"followers_url"`
  4270  			FollowingURL      string `json:"following_url"`
  4271  			GistsURL          string `json:"gists_url"`
  4272  			StarredURL        string `json:"starred_url"`
  4273  			SubscriptionsURL  string `json:"subscriptions_url"`
  4274  			OrganizationsURL  string `json:"organizations_url"`
  4275  			ReposURL          string `json:"repos_url"`
  4276  			EventsURL         string `json:"events_url"`
  4277  			ReceivedEventsURL string `json:"received_events_url"`
  4278  			Type              string `json:"type"`
  4279  			SiteAdmin         bool   `json:"site_admin"`
  4280  		} `json:"owner"`
  4281  		Private          bool      `json:"private"`
  4282  		HTMLURL          string    `json:"html_url"`
  4283  		Description      string    `json:"description"`
  4284  		Fork             bool      `json:"fork"`
  4285  		URL              string    `json:"url"`
  4286  		ForksURL         string    `json:"forks_url"`
  4287  		KeysURL          string    `json:"keys_url"`
  4288  		CollaboratorsURL string    `json:"collaborators_url"`
  4289  		TeamsURL         string    `json:"teams_url"`
  4290  		HooksURL         string    `json:"hooks_url"`
  4291  		IssueEventsURL   string    `json:"issue_events_url"`
  4292  		EventsURL        string    `json:"events_url"`
  4293  		AssigneesURL     string    `json:"assignees_url"`
  4294  		BranchesURL      string    `json:"branches_url"`
  4295  		TagsURL          string    `json:"tags_url"`
  4296  		BlobsURL         string    `json:"blobs_url"`
  4297  		GitTagsURL       string    `json:"git_tags_url"`
  4298  		GitRefsURL       string    `json:"git_refs_url"`
  4299  		TreesURL         string    `json:"trees_url"`
  4300  		StatusesURL      string    `json:"statuses_url"`
  4301  		LanguagesURL     string    `json:"languages_url"`
  4302  		StargazersURL    string    `json:"stargazers_url"`
  4303  		ContributorsURL  string    `json:"contributors_url"`
  4304  		SubscribersURL   string    `json:"subscribers_url"`
  4305  		SubscriptionURL  string    `json:"subscription_url"`
  4306  		CommitsURL       string    `json:"commits_url"`
  4307  		GitCommitsURL    string    `json:"git_commits_url"`
  4308  		CommentsURL      string    `json:"comments_url"`
  4309  		IssueCommentURL  string    `json:"issue_comment_url"`
  4310  		ContentsURL      string    `json:"contents_url"`
  4311  		CompareURL       string    `json:"compare_url"`
  4312  		MergesURL        string    `json:"merges_url"`
  4313  		ArchiveURL       string    `json:"archive_url"`
  4314  		DownloadsURL     string    `json:"downloads_url"`
  4315  		IssuesURL        string    `json:"issues_url"`
  4316  		PullsURL         string    `json:"pulls_url"`
  4317  		MilestonesURL    string    `json:"milestones_url"`
  4318  		NotificationsURL string    `json:"notifications_url"`
  4319  		LabelsURL        string    `json:"labels_url"`
  4320  		ReleasesURL      string    `json:"releases_url"`
  4321  		CreatedAt        time.Time `json:"created_at"`
  4322  		UpdatedAt        time.Time `json:"updated_at"`
  4323  		PushedAt         time.Time `json:"pushed_at"`
  4324  		GitURL           string    `json:"git_url"`
  4325  		SSHURL           string    `json:"ssh_url"`
  4326  		CloneURL         string    `json:"clone_url"`
  4327  		SvnURL           string    `json:"svn_url"`
  4328  		Homepage         *string   `json:"homepage"`
  4329  		Size             int64     `json:"size"`
  4330  		StargazersCount  int64     `json:"stargazers_count"`
  4331  		WatchersCount    int64     `json:"watchers_count"`
  4332  		Language         *string   `json:"language"`
  4333  		HasIssues        bool      `json:"has_issues"`
  4334  		HasDownloads     bool      `json:"has_downloads"`
  4335  		HasWiki          bool      `json:"has_wiki"`
  4336  		HasPages         bool      `json:"has_pages"`
  4337  		ForksCount       int64     `json:"forks_count"`
  4338  		MirrorURL        *string   `json:"mirror_url"`
  4339  		OpenIssuesCount  int64     `json:"open_issues_count"`
  4340  		Forks            int64     `json:"forks"`
  4341  		OpenIssues       int64     `json:"open_issues"`
  4342  		Watchers         int64     `json:"watchers"`
  4343  		DefaultBranch    string    `json:"default_branch"`
  4344  	} `json:"repository"`
  4345  	Sender struct {
  4346  		Login             string `json:"login"`
  4347  		ID                int64  `json:"id"`
  4348  		NodeID            string `json:"node_id"`
  4349  		AvatarURL         string `json:"avatar_url"`
  4350  		GravatarID        string `json:"gravatar_id"`
  4351  		URL               string `json:"url"`
  4352  		HTMLURL           string `json:"html_url"`
  4353  		FollowersURL      string `json:"followers_url"`
  4354  		FollowingURL      string `json:"following_url"`
  4355  		GistsURL          string `json:"gists_url"`
  4356  		StarredURL        string `json:"starred_url"`
  4357  		SubscriptionsURL  string `json:"subscriptions_url"`
  4358  		OrganizationsURL  string `json:"organizations_url"`
  4359  		ReposURL          string `json:"repos_url"`
  4360  		EventsURL         string `json:"events_url"`
  4361  		ReceivedEventsURL string `json:"received_events_url"`
  4362  		Type              string `json:"type"`
  4363  		SiteAdmin         bool   `json:"site_admin"`
  4364  	} `json:"sender"`
  4365  	Changes *struct {
  4366  		Title *struct {
  4367  			From string `json:"from"`
  4368  		} `json:"title"`
  4369  		Body *struct {
  4370  			From string `json:"from"`
  4371  		} `json:"body"`
  4372  	} `json:"changes"`
  4373  	Assignee          *Assignee `json:"assignee"`
  4374  	RequestedReviewer *Assignee `json:"requested_reviewer"`
  4375  	RequestedTeam     struct {
  4376  		Name            string `json:"name"`
  4377  		ID              int64  `json:"id"`
  4378  		NodeID          string `json:"node_id"`
  4379  		Slug            string `json:"slug"`
  4380  		Description     string `json:"description"`
  4381  		Privacy         string `json:"privacy"`
  4382  		URL             string `json:"url"`
  4383  		HTMLURL         string `json:"html_url"`
  4384  		MembersURL      string `json:"members_url"`
  4385  		RepositoriesURL string `json:"repositories_url"`
  4386  		Permission      string `json:"permission"`
  4387  	} `json:"requested_team"`
  4388  	Installation struct {
  4389  		ID int64 `json:"id"`
  4390  	} `json:"installation"`
  4391  }
  4392  
  4393  // PullRequestReviewPayload contains the information for GitHub's pull_request_review hook event
  4394  type PullRequestReviewPayload struct {
  4395  	Action string `json:"action"`
  4396  	Review struct {
  4397  		ID     int64  `json:"id"`
  4398  		NodeID string `json:"node_id"`
  4399  		User   struct {
  4400  			Login             string `json:"login"`
  4401  			ID                int64  `json:"id"`
  4402  			NodeID            string `json:"node_id"`
  4403  			AvatarURL         string `json:"avatar_url"`
  4404  			GravatarID        string `json:"gravatar_id"`
  4405  			URL               string `json:"url"`
  4406  			HTMLURL           string `json:"html_url"`
  4407  			FollowersURL      string `json:"followers_url"`
  4408  			FollowingURL      string `json:"following_url"`
  4409  			GistsURL          string `json:"gists_url"`
  4410  			StarredURL        string `json:"starred_url"`
  4411  			SubscriptionsURL  string `json:"subscriptions_url"`
  4412  			OrganizationsURL  string `json:"organizations_url"`
  4413  			ReposURL          string `json:"repos_url"`
  4414  			EventsURL         string `json:"events_url"`
  4415  			ReceivedEventsURL string `json:"received_events_url"`
  4416  			Type              string `json:"type"`
  4417  			SiteAdmin         bool   `json:"site_admin"`
  4418  		} `json:"user"`
  4419  		Body           string    `json:"body"`
  4420  		SubmittedAt    time.Time `json:"submitted_at"`
  4421  		State          string    `json:"state"`
  4422  		HTMLURL        string    `json:"html_url"`
  4423  		PullRequestURL string    `json:"pull_request_url"`
  4424  		Links          struct {
  4425  			HTML struct {
  4426  				Href string `json:"href"`
  4427  			} `json:"html"`
  4428  			PullRequest struct {
  4429  				Href string `json:"href"`
  4430  			} `json:"pull_request"`
  4431  		} `json:"_links"`
  4432  	} `json:"review"`
  4433  	PullRequest struct {
  4434  		URL      string `json:"url"`
  4435  		ID       int64  `json:"id"`
  4436  		NodeID   string `json:"node_id"`
  4437  		HTMLURL  string `json:"html_url"`
  4438  		DiffURL  string `json:"diff_url"`
  4439  		PatchURL string `json:"patch_url"`
  4440  		IssueURL string `json:"issue_url"`
  4441  		Number   int64  `json:"number"`
  4442  		State    string `json:"state"`
  4443  		Locked   bool   `json:"locked"`
  4444  		Title    string `json:"title"`
  4445  		User     struct {
  4446  			Login             string `json:"login"`
  4447  			ID                int64  `json:"id"`
  4448  			NodeID            string `json:"node_id"`
  4449  			AvatarURL         string `json:"avatar_url"`
  4450  			GravatarID        string `json:"gravatar_id"`
  4451  			URL               string `json:"url"`
  4452  			HTMLURL           string `json:"html_url"`
  4453  			FollowersURL      string `json:"followers_url"`
  4454  			FollowingURL      string `json:"following_url"`
  4455  			GistsURL          string `json:"gists_url"`
  4456  			StarredURL        string `json:"starred_url"`
  4457  			SubscriptionsURL  string `json:"subscriptions_url"`
  4458  			OrganizationsURL  string `json:"organizations_url"`
  4459  			ReposURL          string `json:"repos_url"`
  4460  			EventsURL         string `json:"events_url"`
  4461  			ReceivedEventsURL string `json:"received_events_url"`
  4462  			Type              string `json:"type"`
  4463  			SiteAdmin         bool   `json:"site_admin"`
  4464  		} `json:"user"`
  4465  		Body              string     `json:"body"`
  4466  		CreatedAt         time.Time  `json:"created_at"`
  4467  		UpdatedAt         time.Time  `json:"updated_at"`
  4468  		ClosedAt          *time.Time `json:"closed_at"`
  4469  		MergedAt          *time.Time `json:"merged_at"`
  4470  		MergeCommitSha    string     `json:"merge_commit_sha"`
  4471  		Assignee          *Assignee  `json:"assignee"`
  4472  		Assignees         []Assignee `json:"assignees"`
  4473  		Milestone         *Milestone `json:"milestone"`
  4474  		CommitsURL        string     `json:"commits_url"`
  4475  		ReviewCommentsURL string     `json:"review_comments_url"`
  4476  		ReviewCommentURL  string     `json:"review_comment_url"`
  4477  		CommentsURL       string     `json:"comments_url"`
  4478  		StatusesURL       string     `json:"statuses_url"`
  4479  		Head              struct {
  4480  			Label string `json:"label"`
  4481  			Ref   string `json:"ref"`
  4482  			Sha   string `json:"sha"`
  4483  			User  struct {
  4484  				Login             string `json:"login"`
  4485  				ID                int64  `json:"id"`
  4486  				NodeID            string `json:"node_id"`
  4487  				AvatarURL         string `json:"avatar_url"`
  4488  				GravatarID        string `json:"gravatar_id"`
  4489  				URL               string `json:"url"`
  4490  				HTMLURL           string `json:"html_url"`
  4491  				FollowersURL      string `json:"followers_url"`
  4492  				FollowingURL      string `json:"following_url"`
  4493  				GistsURL          string `json:"gists_url"`
  4494  				StarredURL        string `json:"starred_url"`
  4495  				SubscriptionsURL  string `json:"subscriptions_url"`
  4496  				OrganizationsURL  string `json:"organizations_url"`
  4497  				ReposURL          string `json:"repos_url"`
  4498  				EventsURL         string `json:"events_url"`
  4499  				ReceivedEventsURL string `json:"received_events_url"`
  4500  				Type              string `json:"type"`
  4501  				SiteAdmin         bool   `json:"site_admin"`
  4502  			} `json:"user"`
  4503  			Repo struct {
  4504  				ID       int64  `json:"id"`
  4505  				NodeID   string `json:"node_id"`
  4506  				Name     string `json:"name"`
  4507  				FullName string `json:"full_name"`
  4508  				Owner    struct {
  4509  					Login             string `json:"login"`
  4510  					ID                int64  `json:"id"`
  4511  					NodeID            string `json:"node_id"`
  4512  					AvatarURL         string `json:"avatar_url"`
  4513  					GravatarID        string `json:"gravatar_id"`
  4514  					URL               string `json:"url"`
  4515  					HTMLURL           string `json:"html_url"`
  4516  					FollowersURL      string `json:"followers_url"`
  4517  					FollowingURL      string `json:"following_url"`
  4518  					GistsURL          string `json:"gists_url"`
  4519  					StarredURL        string `json:"starred_url"`
  4520  					SubscriptionsURL  string `json:"subscriptions_url"`
  4521  					OrganizationsURL  string `json:"organizations_url"`
  4522  					ReposURL          string `json:"repos_url"`
  4523  					EventsURL         string `json:"events_url"`
  4524  					ReceivedEventsURL string `json:"received_events_url"`
  4525  					Type              string `json:"type"`
  4526  					SiteAdmin         bool   `json:"site_admin"`
  4527  				} `json:"owner"`
  4528  				Private          bool      `json:"private"`
  4529  				HTMLURL          string    `json:"html_url"`
  4530  				Description      *string   `json:"description"`
  4531  				Fork             bool      `json:"fork"`
  4532  				URL              string    `json:"url"`
  4533  				ForksURL         string    `json:"forks_url"`
  4534  				KeysURL          string    `json:"keys_url"`
  4535  				CollaboratorsURL string    `json:"collaborators_url"`
  4536  				TeamsURL         string    `json:"teams_url"`
  4537  				HooksURL         string    `json:"hooks_url"`
  4538  				IssueEventsURL   string    `json:"issue_events_url"`
  4539  				EventsURL        string    `json:"events_url"`
  4540  				AssigneesURL     string    `json:"assignees_url"`
  4541  				BranchesURL      string    `json:"branches_url"`
  4542  				TagsURL          string    `json:"tags_url"`
  4543  				BlobsURL         string    `json:"blobs_url"`
  4544  				GitTagsURL       string    `json:"git_tags_url"`
  4545  				GitRefsURL       string    `json:"git_refs_url"`
  4546  				TreesURL         string    `json:"trees_url"`
  4547  				StatusesURL      string    `json:"statuses_url"`
  4548  				LanguagesURL     string    `json:"languages_url"`
  4549  				StargazersURL    string    `json:"stargazers_url"`
  4550  				ContributorsURL  string    `json:"contributors_url"`
  4551  				SubscribersURL   string    `json:"subscribers_url"`
  4552  				SubscriptionURL  string    `json:"subscription_url"`
  4553  				CommitsURL       string    `json:"commits_url"`
  4554  				GitCommitsURL    string    `json:"git_commits_url"`
  4555  				CommentsURL      string    `json:"comments_url"`
  4556  				IssueCommentURL  string    `json:"issue_comment_url"`
  4557  				ContentsURL      string    `json:"contents_url"`
  4558  				CompareURL       string    `json:"compare_url"`
  4559  				MergesURL        string    `json:"merges_url"`
  4560  				ArchiveURL       string    `json:"archive_url"`
  4561  				DownloadsURL     string    `json:"downloads_url"`
  4562  				IssuesURL        string    `json:"issues_url"`
  4563  				PullsURL         string    `json:"pulls_url"`
  4564  				MilestonesURL    string    `json:"milestones_url"`
  4565  				NotificationsURL string    `json:"notifications_url"`
  4566  				LabelsURL        string    `json:"labels_url"`
  4567  				ReleasesURL      string    `json:"releases_url"`
  4568  				DeploymentsURL   string    `json:"deployments_url"`
  4569  				CreatedAt        time.Time `json:"created_at"`
  4570  				UpdatedAt        time.Time `json:"updated_at"`
  4571  				PushedAt         time.Time `json:"pushed_at"`
  4572  				GitURL           string    `json:"git_url"`
  4573  				SSHURL           string    `json:"ssh_url"`
  4574  				CloneURL         string    `json:"clone_url"`
  4575  				SvnURL           string    `json:"svn_url"`
  4576  				Homepage         *string   `json:"homepage"`
  4577  				Size             int64     `json:"size"`
  4578  				StargazersCount  int64     `json:"stargazers_count"`
  4579  				WatchersCount    int64     `json:"watchers_count"`
  4580  				Language         *string   `json:"language"`
  4581  				HasIssues        bool      `json:"has_issues"`
  4582  				HasDownloads     bool      `json:"has_downloads"`
  4583  				HasWiki          bool      `json:"has_wiki"`
  4584  				HasPages         bool      `json:"has_pages"`
  4585  				ForksCount       int64     `json:"forks_count"`
  4586  				MirrorURL        *string   `json:"mirror_url"`
  4587  				OpenIssuesCount  int64     `json:"open_issues_count"`
  4588  				Forks            int64     `json:"forks"`
  4589  				OpenIssues       int64     `json:"open_issues"`
  4590  				Watchers         int64     `json:"watchers"`
  4591  				DefaultBranch    string    `json:"default_branch"`
  4592  			} `json:"repo"`
  4593  		} `json:"head"`
  4594  		Base struct {
  4595  			Label string `json:"label"`
  4596  			Ref   string `json:"ref"`
  4597  			Sha   string `json:"sha"`
  4598  			User  struct {
  4599  				Login             string `json:"login"`
  4600  				ID                int64  `json:"id"`
  4601  				NodeID            string `json:"node_id"`
  4602  				AvatarURL         string `json:"avatar_url"`
  4603  				GravatarID        string `json:"gravatar_id"`
  4604  				URL               string `json:"url"`
  4605  				HTMLURL           string `json:"html_url"`
  4606  				FollowersURL      string `json:"followers_url"`
  4607  				FollowingURL      string `json:"following_url"`
  4608  				GistsURL          string `json:"gists_url"`
  4609  				StarredURL        string `json:"starred_url"`
  4610  				SubscriptionsURL  string `json:"subscriptions_url"`
  4611  				OrganizationsURL  string `json:"organizations_url"`
  4612  				ReposURL          string `json:"repos_url"`
  4613  				EventsURL         string `json:"events_url"`
  4614  				ReceivedEventsURL string `json:"received_events_url"`
  4615  				Type              string `json:"type"`
  4616  				SiteAdmin         bool   `json:"site_admin"`
  4617  			} `json:"user"`
  4618  			Repo struct {
  4619  				ID       int64  `json:"id"`
  4620  				NodeID   string `json:"node_id"`
  4621  				Name     string `json:"name"`
  4622  				FullName string `json:"full_name"`
  4623  				Owner    struct {
  4624  					Login             string `json:"login"`
  4625  					ID                int64  `json:"id"`
  4626  					NodeID            string `json:"node_id"`
  4627  					AvatarURL         string `json:"avatar_url"`
  4628  					GravatarID        string `json:"gravatar_id"`
  4629  					URL               string `json:"url"`
  4630  					HTMLURL           string `json:"html_url"`
  4631  					FollowersURL      string `json:"followers_url"`
  4632  					FollowingURL      string `json:"following_url"`
  4633  					GistsURL          string `json:"gists_url"`
  4634  					StarredURL        string `json:"starred_url"`
  4635  					SubscriptionsURL  string `json:"subscriptions_url"`
  4636  					OrganizationsURL  string `json:"organizations_url"`
  4637  					ReposURL          string `json:"repos_url"`
  4638  					EventsURL         string `json:"events_url"`
  4639  					ReceivedEventsURL string `json:"received_events_url"`
  4640  					Type              string `json:"type"`
  4641  					SiteAdmin         bool   `json:"site_admin"`
  4642  				} `json:"owner"`
  4643  				Private          bool      `json:"private"`
  4644  				HTMLURL          string    `json:"html_url"`
  4645  				Description      string    `json:"description"`
  4646  				Fork             bool      `json:"fork"`
  4647  				URL              string    `json:"url"`
  4648  				ForksURL         string    `json:"forks_url"`
  4649  				KeysURL          string    `json:"keys_url"`
  4650  				CollaboratorsURL string    `json:"collaborators_url"`
  4651  				TeamsURL         string    `json:"teams_url"`
  4652  				HooksURL         string    `json:"hooks_url"`
  4653  				IssueEventsURL   string    `json:"issue_events_url"`
  4654  				EventsURL        string    `json:"events_url"`
  4655  				AssigneesURL     string    `json:"assignees_url"`
  4656  				BranchesURL      string    `json:"branches_url"`
  4657  				TagsURL          string    `json:"tags_url"`
  4658  				BlobsURL         string    `json:"blobs_url"`
  4659  				GitTagsURL       string    `json:"git_tags_url"`
  4660  				GitRefsURL       string    `json:"git_refs_url"`
  4661  				TreesURL         string    `json:"trees_url"`
  4662  				StatusesURL      string    `json:"statuses_url"`
  4663  				LanguagesURL     string    `json:"languages_url"`
  4664  				StargazersURL    string    `json:"stargazers_url"`
  4665  				ContributorsURL  string    `json:"contributors_url"`
  4666  				SubscribersURL   string    `json:"subscribers_url"`
  4667  				SubscriptionURL  string    `json:"subscription_url"`
  4668  				CommitsURL       string    `json:"commits_url"`
  4669  				GitCommitsURL    string    `json:"git_commits_url"`
  4670  				CommentsURL      string    `json:"comments_url"`
  4671  				IssueCommentURL  string    `json:"issue_comment_url"`
  4672  				ContentsURL      string    `json:"contents_url"`
  4673  				CompareURL       string    `json:"compare_url"`
  4674  				MergesURL        string    `json:"merges_url"`
  4675  				ArchiveURL       string    `json:"archive_url"`
  4676  				DownloadsURL     string    `json:"downloads_url"`
  4677  				IssuesURL        string    `json:"issues_url"`
  4678  				PullsURL         string    `json:"pulls_url"`
  4679  				MilestonesURL    string    `json:"milestones_url"`
  4680  				NotificationsURL string    `json:"notifications_url"`
  4681  				LabelsURL        string    `json:"labels_url"`
  4682  				ReleasesURL      string    `json:"releases_url"`
  4683  				DeploymentsURL   string    `json:"deployments_url"`
  4684  				CreatedAt        time.Time `json:"created_at"`
  4685  				UpdatedAt        time.Time `json:"updated_at"`
  4686  				PushedAt         time.Time `json:"pushed_at"`
  4687  				GitURL           string    `json:"git_url"`
  4688  				SSHURL           string    `json:"ssh_url"`
  4689  				CloneURL         string    `json:"clone_url"`
  4690  				SvnURL           string    `json:"svn_url"`
  4691  				Homepage         *string   `json:"homepage"`
  4692  				Size             int64     `json:"size"`
  4693  				StargazersCount  int64     `json:"stargazers_count"`
  4694  				WatchersCount    int64     `json:"watchers_count"`
  4695  				Language         *string   `json:"language"`
  4696  				HasIssues        bool      `json:"has_issues"`
  4697  				HasDownloads     bool      `json:"has_downloads"`
  4698  				HasWiki          bool      `json:"has_wiki"`
  4699  				HasPages         bool      `json:"has_pages"`
  4700  				ForksCount       int64     `json:"forks_count"`
  4701  				MirrorURL        *string   `json:"mirror_url"`
  4702  				OpenIssuesCount  int64     `json:"open_issues_count"`
  4703  				Forks            int64     `json:"forks"`
  4704  				OpenIssues       int64     `json:"open_issues"`
  4705  				Watchers         int64     `json:"watchers"`
  4706  				DefaultBranch    string    `json:"default_branch"`
  4707  			} `json:"repo"`
  4708  		} `json:"base"`
  4709  		Links struct {
  4710  			Self struct {
  4711  				Href string `json:"href"`
  4712  			} `json:"self"`
  4713  			HTML struct {
  4714  				Href string `json:"href"`
  4715  			} `json:"html"`
  4716  			Issue struct {
  4717  				Href string `json:"href"`
  4718  			} `json:"issue"`
  4719  			Comments struct {
  4720  				Href string `json:"href"`
  4721  			} `json:"comments"`
  4722  			ReviewComments struct {
  4723  				Href string `json:"href"`
  4724  			} `json:"review_comments"`
  4725  			ReviewComment struct {
  4726  				Href string `json:"href"`
  4727  			} `json:"review_comment"`
  4728  			Commits struct {
  4729  				Href string `json:"href"`
  4730  			} `json:"commits"`
  4731  			Statuses struct {
  4732  				Href string `json:"href"`
  4733  			} `json:"statuses"`
  4734  		} `json:"_links"`
  4735  	} `json:"pull_request"`
  4736  	Repository struct {
  4737  		ID       int64  `json:"id"`
  4738  		NodeID   string `json:"node_id"`
  4739  		Name     string `json:"name"`
  4740  		FullName string `json:"full_name"`
  4741  		Owner    struct {
  4742  			Login             string `json:"login"`
  4743  			ID                int64  `json:"id"`
  4744  			NodeID            string `json:"node_id"`
  4745  			AvatarURL         string `json:"avatar_url"`
  4746  			GravatarID        string `json:"gravatar_id"`
  4747  			URL               string `json:"url"`
  4748  			HTMLURL           string `json:"html_url"`
  4749  			FollowersURL      string `json:"followers_url"`
  4750  			FollowingURL      string `json:"following_url"`
  4751  			GistsURL          string `json:"gists_url"`
  4752  			StarredURL        string `json:"starred_url"`
  4753  			SubscriptionsURL  string `json:"subscriptions_url"`
  4754  			OrganizationsURL  string `json:"organizations_url"`
  4755  			ReposURL          string `json:"repos_url"`
  4756  			EventsURL         string `json:"events_url"`
  4757  			ReceivedEventsURL string `json:"received_events_url"`
  4758  			Type              string `json:"type"`
  4759  			SiteAdmin         bool   `json:"site_admin"`
  4760  		} `json:"owner"`
  4761  		Private          bool      `json:"private"`
  4762  		HTMLURL          string    `json:"html_url"`
  4763  		Description      string    `json:"description"`
  4764  		Fork             bool      `json:"fork"`
  4765  		URL              string    `json:"url"`
  4766  		ForksURL         string    `json:"forks_url"`
  4767  		KeysURL          string    `json:"keys_url"`
  4768  		CollaboratorsURL string    `json:"collaborators_url"`
  4769  		TeamsURL         string    `json:"teams_url"`
  4770  		HooksURL         string    `json:"hooks_url"`
  4771  		IssueEventsURL   string    `json:"issue_events_url"`
  4772  		EventsURL        string    `json:"events_url"`
  4773  		AssigneesURL     string    `json:"assignees_url"`
  4774  		BranchesURL      string    `json:"branches_url"`
  4775  		TagsURL          string    `json:"tags_url"`
  4776  		BlobsURL         string    `json:"blobs_url"`
  4777  		GitTagsURL       string    `json:"git_tags_url"`
  4778  		GitRefsURL       string    `json:"git_refs_url"`
  4779  		TreesURL         string    `json:"trees_url"`
  4780  		StatusesURL      string    `json:"statuses_url"`
  4781  		LanguagesURL     string    `json:"languages_url"`
  4782  		StargazersURL    string    `json:"stargazers_url"`
  4783  		ContributorsURL  string    `json:"contributors_url"`
  4784  		SubscribersURL   string    `json:"subscribers_url"`
  4785  		SubscriptionURL  string    `json:"subscription_url"`
  4786  		CommitsURL       string    `json:"commits_url"`
  4787  		GitCommitsURL    string    `json:"git_commits_url"`
  4788  		CommentsURL      string    `json:"comments_url"`
  4789  		IssueCommentURL  string    `json:"issue_comment_url"`
  4790  		ContentsURL      string    `json:"contents_url"`
  4791  		CompareURL       string    `json:"compare_url"`
  4792  		MergesURL        string    `json:"merges_url"`
  4793  		ArchiveURL       string    `json:"archive_url"`
  4794  		DownloadsURL     string    `json:"downloads_url"`
  4795  		IssuesURL        string    `json:"issues_url"`
  4796  		PullsURL         string    `json:"pulls_url"`
  4797  		MilestonesURL    string    `json:"milestones_url"`
  4798  		NotificationsURL string    `json:"notifications_url"`
  4799  		LabelsURL        string    `json:"labels_url"`
  4800  		ReleasesURL      string    `json:"releases_url"`
  4801  		DeploymentsURL   string    `json:"deployments_url"`
  4802  		CreatedAt        time.Time `json:"created_at"`
  4803  		UpdatedAt        time.Time `json:"updated_at"`
  4804  		PushedAt         time.Time `json:"pushed_at"`
  4805  		GitURL           string    `json:"git_url"`
  4806  		SSHURL           string    `json:"ssh_url"`
  4807  		CloneURL         string    `json:"clone_url"`
  4808  		SvnURL           string    `json:"svn_url"`
  4809  		Homepage         *string   `json:"homepage"`
  4810  		Size             int64     `json:"size"`
  4811  		StargazersCount  int64     `json:"stargazers_count"`
  4812  		WatchersCount    int64     `json:"watchers_count"`
  4813  		Language         *string   `json:"language"`
  4814  		HasIssues        bool      `json:"has_issues"`
  4815  		HasDownloads     bool      `json:"has_downloads"`
  4816  		HasWiki          bool      `json:"has_wiki"`
  4817  		HasPages         bool      `json:"has_pages"`
  4818  		ForksCount       int64     `json:"forks_count"`
  4819  		MirrorURL        *string   `json:"mirror_url"`
  4820  		OpenIssuesCount  int64     `json:"open_issues_count"`
  4821  		Forks            int64     `json:"forks"`
  4822  		OpenIssues       int64     `json:"open_issues"`
  4823  		Watchers         int64     `json:"watchers"`
  4824  		DefaultBranch    string    `json:"default_branch"`
  4825  	} `json:"repository"`
  4826  	Sender struct {
  4827  		Login             string `json:"login"`
  4828  		ID                int64  `json:"id"`
  4829  		NodeID            string `json:"node_id"`
  4830  		AvatarURL         string `json:"avatar_url"`
  4831  		GravatarID        string `json:"gravatar_id"`
  4832  		URL               string `json:"url"`
  4833  		HTMLURL           string `json:"html_url"`
  4834  		FollowersURL      string `json:"followers_url"`
  4835  		FollowingURL      string `json:"following_url"`
  4836  		GistsURL          string `json:"gists_url"`
  4837  		StarredURL        string `json:"starred_url"`
  4838  		SubscriptionsURL  string `json:"subscriptions_url"`
  4839  		OrganizationsURL  string `json:"organizations_url"`
  4840  		ReposURL          string `json:"repos_url"`
  4841  		EventsURL         string `json:"events_url"`
  4842  		ReceivedEventsURL string `json:"received_events_url"`
  4843  		Type              string `json:"type"`
  4844  		SiteAdmin         bool   `json:"site_admin"`
  4845  	} `json:"sender"`
  4846  	Installation struct {
  4847  		ID int64 `json:"id"`
  4848  	} `json:"installation"`
  4849  }
  4850  
  4851  // PullRequestReviewCommentPayload contains the information for GitHub's pull_request_review_comments hook event
  4852  type PullRequestReviewCommentPayload struct {
  4853  	Action  string `json:"action"`
  4854  	Comment struct {
  4855  		URL              string `json:"url"`
  4856  		ID               int64  `json:"id"`
  4857  		NodeID           string `json:"node_id"`
  4858  		DiffHunk         string `json:"diff_hunk"`
  4859  		Path             string `json:"path"`
  4860  		Position         int64  `json:"position"`
  4861  		OriginalPosition int64  `json:"original_position"`
  4862  		CommitID         string `json:"commit_id"`
  4863  		OriginalCommitID string `json:"original_commit_id"`
  4864  		User             struct {
  4865  			Login             string `json:"login"`
  4866  			ID                int64  `json:"id"`
  4867  			NodeID            string `json:"node_id"`
  4868  			AvatarURL         string `json:"avatar_url"`
  4869  			GravatarID        string `json:"gravatar_id"`
  4870  			URL               string `json:"url"`
  4871  			HTMLURL           string `json:"html_url"`
  4872  			FollowersURL      string `json:"followers_url"`
  4873  			FollowingURL      string `json:"following_url"`
  4874  			GistsURL          string `json:"gists_url"`
  4875  			StarredURL        string `json:"starred_url"`
  4876  			SubscriptionsURL  string `json:"subscriptions_url"`
  4877  			OrganizationsURL  string `json:"organizations_url"`
  4878  			ReposURL          string `json:"repos_url"`
  4879  			EventsURL         string `json:"events_url"`
  4880  			ReceivedEventsURL string `json:"received_events_url"`
  4881  			Type              string `json:"type"`
  4882  			SiteAdmin         bool   `json:"site_admin"`
  4883  		} `json:"user"`
  4884  		Body              string    `json:"body"`
  4885  		AuthorAssociation string    `json:"author_association"`
  4886  		CreatedAt         time.Time `json:"created_at"`
  4887  		UpdatedAt         time.Time `json:"updated_at"`
  4888  		HTMLURL           string    `json:"html_url"`
  4889  		PullRequestURL    string    `json:"pull_request_url"`
  4890  		Links             struct {
  4891  			Self struct {
  4892  				Href string `json:"href"`
  4893  			} `json:"self"`
  4894  			HTML struct {
  4895  				Href string `json:"href"`
  4896  			} `json:"html"`
  4897  			PullRequest struct {
  4898  				Href string `json:"href"`
  4899  			} `json:"pull_request"`
  4900  		} `json:"_links"`
  4901  		InReplyToID int64 `json:"in_reply_to_id"`
  4902  	} `json:"comment"`
  4903  	PullRequest struct {
  4904  		URL      string `json:"url"`
  4905  		ID       int64  `json:"id"`
  4906  		NodeID   string `json:"node_id"`
  4907  		HTMLURL  string `json:"html_url"`
  4908  		DiffURL  string `json:"diff_url"`
  4909  		PatchURL string `json:"patch_url"`
  4910  		IssueURL string `json:"issue_url"`
  4911  		Number   int64  `json:"number"`
  4912  		State    string `json:"state"`
  4913  		Locked   bool   `json:"locked"`
  4914  		Title    string `json:"title"`
  4915  		User     struct {
  4916  			Login             string `json:"login"`
  4917  			ID                int64  `json:"id"`
  4918  			NodeID            string `json:"node_id"`
  4919  			AvatarURL         string `json:"avatar_url"`
  4920  			GravatarID        string `json:"gravatar_id"`
  4921  			URL               string `json:"url"`
  4922  			HTMLURL           string `json:"html_url"`
  4923  			FollowersURL      string `json:"followers_url"`
  4924  			FollowingURL      string `json:"following_url"`
  4925  			GistsURL          string `json:"gists_url"`
  4926  			StarredURL        string `json:"starred_url"`
  4927  			SubscriptionsURL  string `json:"subscriptions_url"`
  4928  			OrganizationsURL  string `json:"organizations_url"`
  4929  			ReposURL          string `json:"repos_url"`
  4930  			EventsURL         string `json:"events_url"`
  4931  			ReceivedEventsURL string `json:"received_events_url"`
  4932  			Type              string `json:"type"`
  4933  			SiteAdmin         bool   `json:"site_admin"`
  4934  		} `json:"user"`
  4935  		Body              string      `json:"body"`
  4936  		CreatedAt         time.Time   `json:"created_at"`
  4937  		UpdatedAt         time.Time   `json:"updated_at"`
  4938  		ClosedAt          *time.Time  `json:"closed_at"`
  4939  		MergedAt          *time.Time  `json:"merged_at"`
  4940  		MergeCommitSha    string      `json:"merge_commit_sha"`
  4941  		Assignee          *Assignee   `json:"assignee"`
  4942  		Assignees         []*Assignee `json:"assignees"`
  4943  		Milestone         *Milestone  `json:"milestone"`
  4944  		CommitsURL        string      `json:"commits_url"`
  4945  		ReviewCommentsURL string      `json:"review_comments_url"`
  4946  		ReviewCommentURL  string      `json:"review_comment_url"`
  4947  		CommentsURL       string      `json:"comments_url"`
  4948  		StatusesURL       string      `json:"statuses_url"`
  4949  		Head              struct {
  4950  			Label string `json:"label"`
  4951  			Ref   string `json:"ref"`
  4952  			Sha   string `json:"sha"`
  4953  			User  struct {
  4954  				Login             string `json:"login"`
  4955  				ID                int64  `json:"id"`
  4956  				NodeID            string `json:"node_id"`
  4957  				AvatarURL         string `json:"avatar_url"`
  4958  				GravatarID        string `json:"gravatar_id"`
  4959  				URL               string `json:"url"`
  4960  				HTMLURL           string `json:"html_url"`
  4961  				FollowersURL      string `json:"followers_url"`
  4962  				FollowingURL      string `json:"following_url"`
  4963  				GistsURL          string `json:"gists_url"`
  4964  				StarredURL        string `json:"starred_url"`
  4965  				SubscriptionsURL  string `json:"subscriptions_url"`
  4966  				OrganizationsURL  string `json:"organizations_url"`
  4967  				ReposURL          string `json:"repos_url"`
  4968  				EventsURL         string `json:"events_url"`
  4969  				ReceivedEventsURL string `json:"received_events_url"`
  4970  				Type              string `json:"type"`
  4971  				SiteAdmin         bool   `json:"site_admin"`
  4972  			} `json:"user"`
  4973  			Repo struct {
  4974  				ID       int64  `json:"id"`
  4975  				NodeID   string `json:"node_id"`
  4976  				Name     string `json:"name"`
  4977  				FullName string `json:"full_name"`
  4978  				Owner    struct {
  4979  					Login             string `json:"login"`
  4980  					ID                int64  `json:"id"`
  4981  					NodeID            string `json:"node_id"`
  4982  					AvatarURL         string `json:"avatar_url"`
  4983  					GravatarID        string `json:"gravatar_id"`
  4984  					URL               string `json:"url"`
  4985  					HTMLURL           string `json:"html_url"`
  4986  					FollowersURL      string `json:"followers_url"`
  4987  					FollowingURL      string `json:"following_url"`
  4988  					GistsURL          string `json:"gists_url"`
  4989  					StarredURL        string `json:"starred_url"`
  4990  					SubscriptionsURL  string `json:"subscriptions_url"`
  4991  					OrganizationsURL  string `json:"organizations_url"`
  4992  					ReposURL          string `json:"repos_url"`
  4993  					EventsURL         string `json:"events_url"`
  4994  					ReceivedEventsURL string `json:"received_events_url"`
  4995  					Type              string `json:"type"`
  4996  					SiteAdmin         bool   `json:"site_admin"`
  4997  				} `json:"owner"`
  4998  				Private          bool      `json:"private"`
  4999  				HTMLURL          string    `json:"html_url"`
  5000  				Description      string    `json:"description"`
  5001  				Fork             bool      `json:"fork"`
  5002  				URL              string    `json:"url"`
  5003  				ForksURL         string    `json:"forks_url"`
  5004  				KeysURL          string    `json:"keys_url"`
  5005  				CollaboratorsURL string    `json:"collaborators_url"`
  5006  				TeamsURL         string    `json:"teams_url"`
  5007  				HooksURL         string    `json:"hooks_url"`
  5008  				IssueEventsURL   string    `json:"issue_events_url"`
  5009  				EventsURL        string    `json:"events_url"`
  5010  				AssigneesURL     string    `json:"assignees_url"`
  5011  				BranchesURL      string    `json:"branches_url"`
  5012  				TagsURL          string    `json:"tags_url"`
  5013  				BlobsURL         string    `json:"blobs_url"`
  5014  				GitTagsURL       string    `json:"git_tags_url"`
  5015  				GitRefsURL       string    `json:"git_refs_url"`
  5016  				TreesURL         string    `json:"trees_url"`
  5017  				StatusesURL      string    `json:"statuses_url"`
  5018  				LanguagesURL     string    `json:"languages_url"`
  5019  				StargazersURL    string    `json:"stargazers_url"`
  5020  				ContributorsURL  string    `json:"contributors_url"`
  5021  				SubscribersURL   string    `json:"subscribers_url"`
  5022  				SubscriptionURL  string    `json:"subscription_url"`
  5023  				CommitsURL       string    `json:"commits_url"`
  5024  				GitCommitsURL    string    `json:"git_commits_url"`
  5025  				CommentsURL      string    `json:"comments_url"`
  5026  				IssueCommentURL  string    `json:"issue_comment_url"`
  5027  				ContentsURL      string    `json:"contents_url"`
  5028  				CompareURL       string    `json:"compare_url"`
  5029  				MergesURL        string    `json:"merges_url"`
  5030  				ArchiveURL       string    `json:"archive_url"`
  5031  				DownloadsURL     string    `json:"downloads_url"`
  5032  				IssuesURL        string    `json:"issues_url"`
  5033  				PullsURL         string    `json:"pulls_url"`
  5034  				MilestonesURL    string    `json:"milestones_url"`
  5035  				NotificationsURL string    `json:"notifications_url"`
  5036  				LabelsURL        string    `json:"labels_url"`
  5037  				ReleasesURL      string    `json:"releases_url"`
  5038  				CreatedAt        time.Time `json:"created_at"`
  5039  				UpdatedAt        time.Time `json:"updated_at"`
  5040  				PushedAt         time.Time `json:"pushed_at"`
  5041  				GitURL           string    `json:"git_url"`
  5042  				SSHURL           string    `json:"ssh_url"`
  5043  				CloneURL         string    `json:"clone_url"`
  5044  				SvnURL           string    `json:"svn_url"`
  5045  				Homepage         *string   `json:"homepage"`
  5046  				Size             int64     `json:"size"`
  5047  				StargazersCount  int64     `json:"stargazers_count"`
  5048  				WatchersCount    int64     `json:"watchers_count"`
  5049  				Language         *string   `json:"language"`
  5050  				HasIssues        bool      `json:"has_issues"`
  5051  				HasDownloads     bool      `json:"has_downloads"`
  5052  				HasWiki          bool      `json:"has_wiki"`
  5053  				HasPages         bool      `json:"has_pages"`
  5054  				ForksCount       int64     `json:"forks_count"`
  5055  				MirrorURL        *string   `json:"mirror_url"`
  5056  				OpenIssuesCount  int64     `json:"open_issues_count"`
  5057  				Forks            int64     `json:"forks"`
  5058  				OpenIssues       int64     `json:"open_issues"`
  5059  				Watchers         int64     `json:"watchers"`
  5060  				DefaultBranch    string    `json:"default_branch"`
  5061  			} `json:"repo"`
  5062  		} `json:"head"`
  5063  		Base struct {
  5064  			Label string `json:"label"`
  5065  			Ref   string `json:"ref"`
  5066  			Sha   string `json:"sha"`
  5067  			User  struct {
  5068  				Login             string `json:"login"`
  5069  				ID                int64  `json:"id"`
  5070  				NodeID            string `json:"node_id"`
  5071  				AvatarURL         string `json:"avatar_url"`
  5072  				GravatarID        string `json:"gravatar_id"`
  5073  				URL               string `json:"url"`
  5074  				HTMLURL           string `json:"html_url"`
  5075  				FollowersURL      string `json:"followers_url"`
  5076  				FollowingURL      string `json:"following_url"`
  5077  				GistsURL          string `json:"gists_url"`
  5078  				StarredURL        string `json:"starred_url"`
  5079  				SubscriptionsURL  string `json:"subscriptions_url"`
  5080  				OrganizationsURL  string `json:"organizations_url"`
  5081  				ReposURL          string `json:"repos_url"`
  5082  				EventsURL         string `json:"events_url"`
  5083  				ReceivedEventsURL string `json:"received_events_url"`
  5084  				Type              string `json:"type"`
  5085  				SiteAdmin         bool   `json:"site_admin"`
  5086  			} `json:"user"`
  5087  			Repo struct {
  5088  				ID       int64  `json:"id"`
  5089  				NodeID   string `json:"node_id"`
  5090  				Name     string `json:"name"`
  5091  				FullName string `json:"full_name"`
  5092  				Owner    struct {
  5093  					Login             string `json:"login"`
  5094  					ID                int64  `json:"id"`
  5095  					NodeID            string `json:"node_id"`
  5096  					AvatarURL         string `json:"avatar_url"`
  5097  					GravatarID        string `json:"gravatar_id"`
  5098  					URL               string `json:"url"`
  5099  					HTMLURL           string `json:"html_url"`
  5100  					FollowersURL      string `json:"followers_url"`
  5101  					FollowingURL      string `json:"following_url"`
  5102  					GistsURL          string `json:"gists_url"`
  5103  					StarredURL        string `json:"starred_url"`
  5104  					SubscriptionsURL  string `json:"subscriptions_url"`
  5105  					OrganizationsURL  string `json:"organizations_url"`
  5106  					ReposURL          string `json:"repos_url"`
  5107  					EventsURL         string `json:"events_url"`
  5108  					ReceivedEventsURL string `json:"received_events_url"`
  5109  					Type              string `json:"type"`
  5110  					SiteAdmin         bool   `json:"site_admin"`
  5111  				} `json:"owner"`
  5112  				Private          bool      `json:"private"`
  5113  				HTMLURL          string    `json:"html_url"`
  5114  				Description      string    `json:"description"`
  5115  				Fork             bool      `json:"fork"`
  5116  				URL              string    `json:"url"`
  5117  				ForksURL         string    `json:"forks_url"`
  5118  				KeysURL          string    `json:"keys_url"`
  5119  				CollaboratorsURL string    `json:"collaborators_url"`
  5120  				TeamsURL         string    `json:"teams_url"`
  5121  				HooksURL         string    `json:"hooks_url"`
  5122  				IssueEventsURL   string    `json:"issue_events_url"`
  5123  				EventsURL        string    `json:"events_url"`
  5124  				AssigneesURL     string    `json:"assignees_url"`
  5125  				BranchesURL      string    `json:"branches_url"`
  5126  				TagsURL          string    `json:"tags_url"`
  5127  				BlobsURL         string    `json:"blobs_url"`
  5128  				GitTagsURL       string    `json:"git_tags_url"`
  5129  				GitRefsURL       string    `json:"git_refs_url"`
  5130  				TreesURL         string    `json:"trees_url"`
  5131  				StatusesURL      string    `json:"statuses_url"`
  5132  				LanguagesURL     string    `json:"languages_url"`
  5133  				StargazersURL    string    `json:"stargazers_url"`
  5134  				ContributorsURL  string    `json:"contributors_url"`
  5135  				SubscribersURL   string    `json:"subscribers_url"`
  5136  				SubscriptionURL  string    `json:"subscription_url"`
  5137  				CommitsURL       string    `json:"commits_url"`
  5138  				GitCommitsURL    string    `json:"git_commits_url"`
  5139  				CommentsURL      string    `json:"comments_url"`
  5140  				IssueCommentURL  string    `json:"issue_comment_url"`
  5141  				ContentsURL      string    `json:"contents_url"`
  5142  				CompareURL       string    `json:"compare_url"`
  5143  				MergesURL        string    `json:"merges_url"`
  5144  				ArchiveURL       string    `json:"archive_url"`
  5145  				DownloadsURL     string    `json:"downloads_url"`
  5146  				IssuesURL        string    `json:"issues_url"`
  5147  				PullsURL         string    `json:"pulls_url"`
  5148  				MilestonesURL    string    `json:"milestones_url"`
  5149  				NotificationsURL string    `json:"notifications_url"`
  5150  				LabelsURL        string    `json:"labels_url"`
  5151  				ReleasesURL      string    `json:"releases_url"`
  5152  				CreatedAt        time.Time `json:"created_at"`
  5153  				UpdatedAt        time.Time `json:"updated_at"`
  5154  				PushedAt         time.Time `json:"pushed_at"`
  5155  				GitURL           string    `json:"git_url"`
  5156  				SSHURL           string    `json:"ssh_url"`
  5157  				CloneURL         string    `json:"clone_url"`
  5158  				SvnURL           string    `json:"svn_url"`
  5159  				Homepage         *string   `json:"homepage"`
  5160  				Size             int64     `json:"size"`
  5161  				StargazersCount  int64     `json:"stargazers_count"`
  5162  				WatchersCount    int64     `json:"watchers_count"`
  5163  				Language         *string   `json:"language"`
  5164  				HasIssues        bool      `json:"has_issues"`
  5165  				HasDownloads     bool      `json:"has_downloads"`
  5166  				HasWiki          bool      `json:"has_wiki"`
  5167  				HasPages         bool      `json:"has_pages"`
  5168  				ForksCount       int64     `json:"forks_count"`
  5169  				MirrorURL        *string   `json:"mirror_url"`
  5170  				OpenIssuesCount  int64     `json:"open_issues_count"`
  5171  				Forks            int64     `json:"forks"`
  5172  				OpenIssues       int64     `json:"open_issues"`
  5173  				Watchers         int64     `json:"watchers"`
  5174  				DefaultBranch    string    `json:"default_branch"`
  5175  			} `json:"repo"`
  5176  		} `json:"base"`
  5177  		Links struct {
  5178  			Self struct {
  5179  				Href string `json:"href"`
  5180  			} `json:"self"`
  5181  			HTML struct {
  5182  				Href string `json:"href"`
  5183  			} `json:"html"`
  5184  			Issue struct {
  5185  				Href string `json:"href"`
  5186  			} `json:"issue"`
  5187  			Comments struct {
  5188  				Href string `json:"href"`
  5189  			} `json:"comments"`
  5190  			ReviewComments struct {
  5191  				Href string `json:"href"`
  5192  			} `json:"review_comments"`
  5193  			ReviewComment struct {
  5194  				Href string `json:"href"`
  5195  			} `json:"review_comment"`
  5196  			Commits struct {
  5197  				Href string `json:"href"`
  5198  			} `json:"commits"`
  5199  			Statuses struct {
  5200  				Href string `json:"href"`
  5201  			} `json:"statuses"`
  5202  		} `json:"_links"`
  5203  	} `json:"pull_request"`
  5204  	Repository struct {
  5205  		ID       int64  `json:"id"`
  5206  		NodeID   string `json:"node_id"`
  5207  		Name     string `json:"name"`
  5208  		FullName string `json:"full_name"`
  5209  		Owner    struct {
  5210  			Login             string `json:"login"`
  5211  			ID                int64  `json:"id"`
  5212  			NodeID            string `json:"node_id"`
  5213  			AvatarURL         string `json:"avatar_url"`
  5214  			GravatarID        string `json:"gravatar_id"`
  5215  			URL               string `json:"url"`
  5216  			HTMLURL           string `json:"html_url"`
  5217  			FollowersURL      string `json:"followers_url"`
  5218  			FollowingURL      string `json:"following_url"`
  5219  			GistsURL          string `json:"gists_url"`
  5220  			StarredURL        string `json:"starred_url"`
  5221  			SubscriptionsURL  string `json:"subscriptions_url"`
  5222  			OrganizationsURL  string `json:"organizations_url"`
  5223  			ReposURL          string `json:"repos_url"`
  5224  			EventsURL         string `json:"events_url"`
  5225  			ReceivedEventsURL string `json:"received_events_url"`
  5226  			Type              string `json:"type"`
  5227  			SiteAdmin         bool   `json:"site_admin"`
  5228  		} `json:"owner"`
  5229  		Private          bool      `json:"private"`
  5230  		HTMLURL          string    `json:"html_url"`
  5231  		Description      string    `json:"description"`
  5232  		Fork             bool      `json:"fork"`
  5233  		URL              string    `json:"url"`
  5234  		ForksURL         string    `json:"forks_url"`
  5235  		KeysURL          string    `json:"keys_url"`
  5236  		CollaboratorsURL string    `json:"collaborators_url"`
  5237  		TeamsURL         string    `json:"teams_url"`
  5238  		HooksURL         string    `json:"hooks_url"`
  5239  		IssueEventsURL   string    `json:"issue_events_url"`
  5240  		EventsURL        string    `json:"events_url"`
  5241  		AssigneesURL     string    `json:"assignees_url"`
  5242  		BranchesURL      string    `json:"branches_url"`
  5243  		TagsURL          string    `json:"tags_url"`
  5244  		BlobsURL         string    `json:"blobs_url"`
  5245  		GitTagsURL       string    `json:"git_tags_url"`
  5246  		GitRefsURL       string    `json:"git_refs_url"`
  5247  		TreesURL         string    `json:"trees_url"`
  5248  		StatusesURL      string    `json:"statuses_url"`
  5249  		LanguagesURL     string    `json:"languages_url"`
  5250  		StargazersURL    string    `json:"stargazers_url"`
  5251  		ContributorsURL  string    `json:"contributors_url"`
  5252  		SubscribersURL   string    `json:"subscribers_url"`
  5253  		SubscriptionURL  string    `json:"subscription_url"`
  5254  		CommitsURL       string    `json:"commits_url"`
  5255  		GitCommitsURL    string    `json:"git_commits_url"`
  5256  		CommentsURL      string    `json:"comments_url"`
  5257  		IssueCommentURL  string    `json:"issue_comment_url"`
  5258  		ContentsURL      string    `json:"contents_url"`
  5259  		CompareURL       string    `json:"compare_url"`
  5260  		MergesURL        string    `json:"merges_url"`
  5261  		ArchiveURL       string    `json:"archive_url"`
  5262  		DownloadsURL     string    `json:"downloads_url"`
  5263  		IssuesURL        string    `json:"issues_url"`
  5264  		PullsURL         string    `json:"pulls_url"`
  5265  		MilestonesURL    string    `json:"milestones_url"`
  5266  		NotificationsURL string    `json:"notifications_url"`
  5267  		LabelsURL        string    `json:"labels_url"`
  5268  		ReleasesURL      string    `json:"releases_url"`
  5269  		CreatedAt        time.Time `json:"created_at"`
  5270  		UpdatedAt        time.Time `json:"updated_at"`
  5271  		PushedAt         time.Time `json:"pushed_at"`
  5272  		GitURL           string    `json:"git_url"`
  5273  		SSHURL           string    `json:"ssh_url"`
  5274  		CloneURL         string    `json:"clone_url"`
  5275  		SvnURL           string    `json:"svn_url"`
  5276  		Homepage         *string   `json:"homepage"`
  5277  		Size             int64     `json:"size"`
  5278  		StargazersCount  int64     `json:"stargazers_count"`
  5279  		WatchersCount    int64     `json:"watchers_count"`
  5280  		Language         *string   `json:"language"`
  5281  		HasIssues        bool      `json:"has_issues"`
  5282  		HasDownloads     bool      `json:"has_downloads"`
  5283  		HasWiki          bool      `json:"has_wiki"`
  5284  		HasPages         bool      `json:"has_pages"`
  5285  		ForksCount       int64     `json:"forks_count"`
  5286  		MirrorURL        *string   `json:"mirror_url"`
  5287  		OpenIssuesCount  int64     `json:"open_issues_count"`
  5288  		Forks            int64     `json:"forks"`
  5289  		OpenIssues       int64     `json:"open_issues"`
  5290  		Watchers         int64     `json:"watchers"`
  5291  		DefaultBranch    string    `json:"default_branch"`
  5292  	} `json:"repository"`
  5293  	Sender struct {
  5294  		Login             string `json:"login"`
  5295  		ID                int64  `json:"id"`
  5296  		NodeID            string `json:"node_id"`
  5297  		AvatarURL         string `json:"avatar_url"`
  5298  		GravatarID        string `json:"gravatar_id"`
  5299  		URL               string `json:"url"`
  5300  		HTMLURL           string `json:"html_url"`
  5301  		FollowersURL      string `json:"followers_url"`
  5302  		FollowingURL      string `json:"following_url"`
  5303  		GistsURL          string `json:"gists_url"`
  5304  		StarredURL        string `json:"starred_url"`
  5305  		SubscriptionsURL  string `json:"subscriptions_url"`
  5306  		OrganizationsURL  string `json:"organizations_url"`
  5307  		ReposURL          string `json:"repos_url"`
  5308  		EventsURL         string `json:"events_url"`
  5309  		ReceivedEventsURL string `json:"received_events_url"`
  5310  		Type              string `json:"type"`
  5311  		SiteAdmin         bool   `json:"site_admin"`
  5312  	} `json:"sender"`
  5313  	Installation struct {
  5314  		ID int64 `json:"id"`
  5315  	} `json:"installation"`
  5316  }
  5317  
  5318  // PushPayload contains the information for GitHub's push hook event
  5319  type PushPayload struct {
  5320  	Ref     string  `json:"ref"`
  5321  	Before  string  `json:"before"`
  5322  	After   string  `json:"after"`
  5323  	Created bool    `json:"created"`
  5324  	Deleted bool    `json:"deleted"`
  5325  	Forced  bool    `json:"forced"`
  5326  	BaseRef *string `json:"base_ref"`
  5327  	Compare string  `json:"compare"`
  5328  	Commits []struct {
  5329  		Sha       string `json:"sha"`
  5330  		ID        string `json:"id"`
  5331  		NodeID    string `json:"node_id"`
  5332  		TreeID    string `json:"tree_id"`
  5333  		Distinct  bool   `json:"distinct"`
  5334  		Message   string `json:"message"`
  5335  		Timestamp string `json:"timestamp"`
  5336  		URL       string `json:"url"`
  5337  		Author    struct {
  5338  			Name     string `json:"name"`
  5339  			Email    string `json:"email"`
  5340  			Username string `json:"username"`
  5341  		} `json:"author"`
  5342  		Committer struct {
  5343  			Name     string `json:"name"`
  5344  			Email    string `json:"email"`
  5345  			Username string `json:"username"`
  5346  		} `json:"committer"`
  5347  		Added    []string `json:"added"`
  5348  		Removed  []string `json:"removed"`
  5349  		Modified []string `json:"modified"`
  5350  	} `json:"commits"`
  5351  	HeadCommit struct {
  5352  		ID        string `json:"id"`
  5353  		NodeID    string `json:"node_id"`
  5354  		TreeID    string `json:"tree_id"`
  5355  		Distinct  bool   `json:"distinct"`
  5356  		Message   string `json:"message"`
  5357  		Timestamp string `json:"timestamp"`
  5358  		URL       string `json:"url"`
  5359  		Author    struct {
  5360  			Name     string `json:"name"`
  5361  			Email    string `json:"email"`
  5362  			Username string `json:"username"`
  5363  		} `json:"author"`
  5364  		Committer struct {
  5365  			Name     string `json:"name"`
  5366  			Email    string `json:"email"`
  5367  			Username string `json:"username"`
  5368  		} `json:"committer"`
  5369  		Added    []string `json:"added"`
  5370  		Removed  []string `json:"removed"`
  5371  		Modified []string `json:"modified"`
  5372  	} `json:"head_commit"`
  5373  	Repository struct {
  5374  		ID       int64  `json:"id"`
  5375  		NodeID   string `json:"node_id"`
  5376  		Name     string `json:"name"`
  5377  		FullName string `json:"full_name"`
  5378  		Owner    struct {
  5379  			Login             string `json:"login"`
  5380  			ID                int64  `json:"id"`
  5381  			NodeID            string `json:"node_id"`
  5382  			AvatarURL         string `json:"avatar_url"`
  5383  			GravatarID        string `json:"gravatar_id"`
  5384  			URL               string `json:"url"`
  5385  			HTMLURL           string `json:"html_url"`
  5386  			FollowersURL      string `json:"followers_url"`
  5387  			FollowingURL      string `json:"following_url"`
  5388  			GistsURL          string `json:"gists_url"`
  5389  			StarredURL        string `json:"starred_url"`
  5390  			SubscriptionsURL  string `json:"subscriptions_url"`
  5391  			OrganizationsURL  string `json:"organizations_url"`
  5392  			ReposURL          string `json:"repos_url"`
  5393  			EventsURL         string `json:"events_url"`
  5394  			ReceivedEventsURL string `json:"received_events_url"`
  5395  			Type              string `json:"type"`
  5396  			SiteAdmin         bool   `json:"site_admin"`
  5397  		} `json:"owner"`
  5398  		Private          bool      `json:"private"`
  5399  		HTMLURL          string    `json:"html_url"`
  5400  		Description      string    `json:"description"`
  5401  		Fork             bool      `json:"fork"`
  5402  		URL              string    `json:"url"`
  5403  		ForksURL         string    `json:"forks_url"`
  5404  		KeysURL          string    `json:"keys_url"`
  5405  		CollaboratorsURL string    `json:"collaborators_url"`
  5406  		TeamsURL         string    `json:"teams_url"`
  5407  		HooksURL         string    `json:"hooks_url"`
  5408  		IssueEventsURL   string    `json:"issue_events_url"`
  5409  		EventsURL        string    `json:"events_url"`
  5410  		AssigneesURL     string    `json:"assignees_url"`
  5411  		BranchesURL      string    `json:"branches_url"`
  5412  		TagsURL          string    `json:"tags_url"`
  5413  		BlobsURL         string    `json:"blobs_url"`
  5414  		GitTagsURL       string    `json:"git_tags_url"`
  5415  		GitRefsURL       string    `json:"git_refs_url"`
  5416  		TreesURL         string    `json:"trees_url"`
  5417  		StatusesURL      string    `json:"statuses_url"`
  5418  		LanguagesURL     string    `json:"languages_url"`
  5419  		StargazersURL    string    `json:"stargazers_url"`
  5420  		ContributorsURL  string    `json:"contributors_url"`
  5421  		SubscribersURL   string    `json:"subscribers_url"`
  5422  		SubscriptionURL  string    `json:"subscription_url"`
  5423  		CommitsURL       string    `json:"commits_url"`
  5424  		GitCommitsURL    string    `json:"git_commits_url"`
  5425  		CommentsURL      string    `json:"comments_url"`
  5426  		IssueCommentURL  string    `json:"issue_comment_url"`
  5427  		ContentsURL      string    `json:"contents_url"`
  5428  		CompareURL       string    `json:"compare_url"`
  5429  		MergesURL        string    `json:"merges_url"`
  5430  		ArchiveURL       string    `json:"archive_url"`
  5431  		DownloadsURL     string    `json:"downloads_url"`
  5432  		IssuesURL        string    `json:"issues_url"`
  5433  		PullsURL         string    `json:"pulls_url"`
  5434  		MilestonesURL    string    `json:"milestones_url"`
  5435  		NotificationsURL string    `json:"notifications_url"`
  5436  		LabelsURL        string    `json:"labels_url"`
  5437  		ReleasesURL      string    `json:"releases_url"`
  5438  		CreatedAt        int64     `json:"created_at"`
  5439  		UpdatedAt        time.Time `json:"updated_at"`
  5440  		PushedAt         int64     `json:"pushed_at"`
  5441  		GitURL           string    `json:"git_url"`
  5442  		SSHURL           string    `json:"ssh_url"`
  5443  		CloneURL         string    `json:"clone_url"`
  5444  		SvnURL           string    `json:"svn_url"`
  5445  		Homepage         *string   `json:"homepage"`
  5446  		Size             int64     `json:"size"`
  5447  		StargazersCount  int64     `json:"stargazers_count"`
  5448  		WatchersCount    int64     `json:"watchers_count"`
  5449  		Language         *string   `json:"language"`
  5450  		HasIssues        bool      `json:"has_issues"`
  5451  		HasDownloads     bool      `json:"has_downloads"`
  5452  		HasWiki          bool      `json:"has_wiki"`
  5453  		HasPages         bool      `json:"has_pages"`
  5454  		ForksCount       int64     `json:"forks_count"`
  5455  		MirrorURL        *string   `json:"mirror_url"`
  5456  		OpenIssuesCount  int64     `json:"open_issues_count"`
  5457  		Forks            int64     `json:"forks"`
  5458  		OpenIssues       int64     `json:"open_issues"`
  5459  		Watchers         int64     `json:"watchers"`
  5460  		DefaultBranch    string    `json:"default_branch"`
  5461  		Stargazers       int64     `json:"stargazers"`
  5462  		MasterBranch     string    `json:"master_branch"`
  5463  	} `json:"repository"`
  5464  	Pusher struct {
  5465  		Name  string `json:"name"`
  5466  		Email string `json:"email"`
  5467  	} `json:"pusher"`
  5468  	Sender struct {
  5469  		Login             string `json:"login"`
  5470  		ID                int64  `json:"id"`
  5471  		NodeID            string `json:"node_id"`
  5472  		AvatarURL         string `json:"avatar_url"`
  5473  		GravatarID        string `json:"gravatar_id"`
  5474  		URL               string `json:"url"`
  5475  		HTMLURL           string `json:"html_url"`
  5476  		FollowersURL      string `json:"followers_url"`
  5477  		FollowingURL      string `json:"following_url"`
  5478  		GistsURL          string `json:"gists_url"`
  5479  		StarredURL        string `json:"starred_url"`
  5480  		SubscriptionsURL  string `json:"subscriptions_url"`
  5481  		OrganizationsURL  string `json:"organizations_url"`
  5482  		ReposURL          string `json:"repos_url"`
  5483  		EventsURL         string `json:"events_url"`
  5484  		ReceivedEventsURL string `json:"received_events_url"`
  5485  		Type              string `json:"type"`
  5486  		SiteAdmin         bool   `json:"site_admin"`
  5487  	} `json:"sender"`
  5488  	Installation struct {
  5489  		ID int `json:"id"`
  5490  	} `json:"installation"`
  5491  }
  5492  
  5493  // ReleasePayload contains the information for GitHub's release hook event
  5494  type ReleasePayload struct {
  5495  	Action  string `json:"action"`
  5496  	Release struct {
  5497  		URL             string  `json:"url"`
  5498  		AssetsURL       string  `json:"assets_url"`
  5499  		UploadURL       string  `json:"upload_url"`
  5500  		HTMLURL         string  `json:"html_url"`
  5501  		ID              int64   `json:"id"`
  5502  		NodeID          string  `json:"node_id"`
  5503  		TagName         string  `json:"tag_name"`
  5504  		TargetCommitish string  `json:"target_commitish"`
  5505  		Name            *string `json:"name"`
  5506  		Draft           bool    `json:"draft"`
  5507  		Author          struct {
  5508  			Login             string `json:"login"`
  5509  			ID                int64  `json:"id"`
  5510  			NodeID            string `json:"node_id"`
  5511  			AvatarURL         string `json:"avatar_url"`
  5512  			GravatarID        string `json:"gravatar_id"`
  5513  			URL               string `json:"url"`
  5514  			HTMLURL           string `json:"html_url"`
  5515  			FollowersURL      string `json:"followers_url"`
  5516  			FollowingURL      string `json:"following_url"`
  5517  			GistsURL          string `json:"gists_url"`
  5518  			StarredURL        string `json:"starred_url"`
  5519  			SubscriptionsURL  string `json:"subscriptions_url"`
  5520  			OrganizationsURL  string `json:"organizations_url"`
  5521  			ReposURL          string `json:"repos_url"`
  5522  			EventsURL         string `json:"events_url"`
  5523  			ReceivedEventsURL string `json:"received_events_url"`
  5524  			Type              string `json:"type"`
  5525  			SiteAdmin         bool   `json:"site_admin"`
  5526  		} `json:"author"`
  5527  		Prerelease  bool      `json:"prerelease"`
  5528  		CreatedAt   time.Time `json:"created_at"`
  5529  		PublishedAt time.Time `json:"published_at"`
  5530  		Assets      []Asset   `json:"assets"`
  5531  		TarballURL  string    `json:"tarball_url"`
  5532  		ZipballURL  string    `json:"zipball_url"`
  5533  		Body        *string   `json:"body"`
  5534  	} `json:"release"`
  5535  	Repository struct {
  5536  		ID       int64  `json:"id"`
  5537  		Name     string `json:"name"`
  5538  		FullName string `json:"full_name"`
  5539  		Owner    struct {
  5540  			Login             string `json:"login"`
  5541  			ID                int64  `json:"id"`
  5542  			NodeID            string `json:"node_id"`
  5543  			AvatarURL         string `json:"avatar_url"`
  5544  			GravatarID        string `json:"gravatar_id"`
  5545  			URL               string `json:"url"`
  5546  			HTMLURL           string `json:"html_url"`
  5547  			FollowersURL      string `json:"followers_url"`
  5548  			FollowingURL      string `json:"following_url"`
  5549  			GistsURL          string `json:"gists_url"`
  5550  			StarredURL        string `json:"starred_url"`
  5551  			SubscriptionsURL  string `json:"subscriptions_url"`
  5552  			OrganizationsURL  string `json:"organizations_url"`
  5553  			ReposURL          string `json:"repos_url"`
  5554  			EventsURL         string `json:"events_url"`
  5555  			ReceivedEventsURL string `json:"received_events_url"`
  5556  			Type              string `json:"type"`
  5557  			SiteAdmin         bool   `json:"site_admin"`
  5558  		} `json:"owner"`
  5559  		Private          bool      `json:"private"`
  5560  		HTMLURL          string    `json:"html_url"`
  5561  		Description      string    `json:"description"`
  5562  		Fork             bool      `json:"fork"`
  5563  		URL              string    `json:"url"`
  5564  		ForksURL         string    `json:"forks_url"`
  5565  		KeysURL          string    `json:"keys_url"`
  5566  		CollaboratorsURL string    `json:"collaborators_url"`
  5567  		TeamsURL         string    `json:"teams_url"`
  5568  		HooksURL         string    `json:"hooks_url"`
  5569  		IssueEventsURL   string    `json:"issue_events_url"`
  5570  		EventsURL        string    `json:"events_url"`
  5571  		AssigneesURL     string    `json:"assignees_url"`
  5572  		BranchesURL      string    `json:"branches_url"`
  5573  		TagsURL          string    `json:"tags_url"`
  5574  		BlobsURL         string    `json:"blobs_url"`
  5575  		GitTagsURL       string    `json:"git_tags_url"`
  5576  		GitRefsURL       string    `json:"git_refs_url"`
  5577  		TreesURL         string    `json:"trees_url"`
  5578  		StatusesURL      string    `json:"statuses_url"`
  5579  		LanguagesURL     string    `json:"languages_url"`
  5580  		StargazersURL    string    `json:"stargazers_url"`
  5581  		ContributorsURL  string    `json:"contributors_url"`
  5582  		SubscribersURL   string    `json:"subscribers_url"`
  5583  		SubscriptionURL  string    `json:"subscription_url"`
  5584  		CommitsURL       string    `json:"commits_url"`
  5585  		GitCommitsURL    string    `json:"git_commits_url"`
  5586  		CommentsURL      string    `json:"comments_url"`
  5587  		IssueCommentURL  string    `json:"issue_comment_url"`
  5588  		ContentsURL      string    `json:"contents_url"`
  5589  		CompareURL       string    `json:"compare_url"`
  5590  		MergesURL        string    `json:"merges_url"`
  5591  		ArchiveURL       string    `json:"archive_url"`
  5592  		DownloadsURL     string    `json:"downloads_url"`
  5593  		IssuesURL        string    `json:"issues_url"`
  5594  		PullsURL         string    `json:"pulls_url"`
  5595  		MilestonesURL    string    `json:"milestones_url"`
  5596  		NotificationsURL string    `json:"notifications_url"`
  5597  		LabelsURL        string    `json:"labels_url"`
  5598  		ReleasesURL      string    `json:"releases_url"`
  5599  		CreatedAt        time.Time `json:"created_at"`
  5600  		UpdatedAt        time.Time `json:"updated_at"`
  5601  		PushedAt         time.Time `json:"pushed_at"`
  5602  		GitURL           string    `json:"git_url"`
  5603  		SSHURL           string    `json:"ssh_url"`
  5604  		CloneURL         string    `json:"clone_url"`
  5605  		SvnURL           string    `json:"svn_url"`
  5606  		Homepage         *string   `json:"homepage"`
  5607  		Size             int64     `json:"size"`
  5608  		StargazersCount  int64     `json:"stargazers_count"`
  5609  		WatchersCount    int64     `json:"watchers_count"`
  5610  		Language         *string   `json:"language"`
  5611  		HasIssues        bool      `json:"has_issues"`
  5612  		HasDownloads     bool      `json:"has_downloads"`
  5613  		HasWiki          bool      `json:"has_wiki"`
  5614  		HasPages         bool      `json:"has_pages"`
  5615  		ForksCount       int64     `json:"forks_count"`
  5616  		MirrorURL        *string   `json:"mirror_url"`
  5617  		OpenIssuesCount  int64     `json:"open_issues_count"`
  5618  		Forks            int64     `json:"forks"`
  5619  		OpenIssues       int64     `json:"open_issues"`
  5620  		Watchers         int64     `json:"watchers"`
  5621  		DefaultBranch    string    `json:"default_branch"`
  5622  	} `json:"repository"`
  5623  	Sender struct {
  5624  		Login             string `json:"login"`
  5625  		ID                int64  `json:"id"`
  5626  		NodeID            string `json:"node_id"`
  5627  		AvatarURL         string `json:"avatar_url"`
  5628  		GravatarID        string `json:"gravatar_id"`
  5629  		URL               string `json:"url"`
  5630  		HTMLURL           string `json:"html_url"`
  5631  		FollowersURL      string `json:"followers_url"`
  5632  		FollowingURL      string `json:"following_url"`
  5633  		GistsURL          string `json:"gists_url"`
  5634  		StarredURL        string `json:"starred_url"`
  5635  		SubscriptionsURL  string `json:"subscriptions_url"`
  5636  		OrganizationsURL  string `json:"organizations_url"`
  5637  		ReposURL          string `json:"repos_url"`
  5638  		EventsURL         string `json:"events_url"`
  5639  		ReceivedEventsURL string `json:"received_events_url"`
  5640  		Type              string `json:"type"`
  5641  		SiteAdmin         bool   `json:"site_admin"`
  5642  	} `json:"sender"`
  5643  	Installation struct {
  5644  		ID int `json:"id"`
  5645  	} `json:"installation"`
  5646  }
  5647  
  5648  // RepositoryPayload contains the information for GitHub's repository hook event
  5649  type RepositoryPayload struct {
  5650  	Action  string `json:"action"`
  5651  	Changes struct {
  5652  		DefaultBranch struct {
  5653  			From string `json:"from"`
  5654  		} `json:"default_branch,omitempty"`
  5655  		Description struct {
  5656  			From string `json:"from"`
  5657  		} `json:"description,omitempty"`
  5658  		Homepage struct {
  5659  			From string `json:"from"`
  5660  		} `json:"homepage,omitempty"`
  5661  		Topics struct {
  5662  			From string `json:"from,omitempty"`
  5663  		} `json:"topics,omitempty"`
  5664  		Repository struct {
  5665  			Name struct {
  5666  				From string `json:"from"`
  5667  			} `json:"name"`
  5668  		} `json:"repository,omitempty"`
  5669  		Owner struct {
  5670  			From string `json:"from"`
  5671  		} `json:"owner,omitempty"`
  5672  	} `json:"changes,omitempty"`
  5673  	Repository struct {
  5674  		ID       int64  `json:"id"`
  5675  		NodeID   string `json:"node_id"`
  5676  		Name     string `json:"name"`
  5677  		FullName string `json:"full_name"`
  5678  		Owner    struct {
  5679  			Login             string `json:"login"`
  5680  			ID                int64  `json:"id"`
  5681  			NodeID            string `json:"node_id"`
  5682  			AvatarURL         string `json:"avatar_url"`
  5683  			GravatarID        string `json:"gravatar_id"`
  5684  			URL               string `json:"url"`
  5685  			HTMLURL           string `json:"html_url"`
  5686  			FollowersURL      string `json:"followers_url"`
  5687  			FollowingURL      string `json:"following_url"`
  5688  			GistsURL          string `json:"gists_url"`
  5689  			StarredURL        string `json:"starred_url"`
  5690  			SubscriptionsURL  string `json:"subscriptions_url"`
  5691  			OrganizationsURL  string `json:"organizations_url"`
  5692  			ReposURL          string `json:"repos_url"`
  5693  			EventsURL         string `json:"events_url"`
  5694  			ReceivedEventsURL string `json:"received_events_url"`
  5695  			Type              string `json:"type"`
  5696  			SiteAdmin         bool   `json:"site_admin"`
  5697  		} `json:"owner"`
  5698  		Private          bool      `json:"private"`
  5699  		HTMLURL          string    `json:"html_url"`
  5700  		Description      string    `json:"description"`
  5701  		Fork             bool      `json:"fork"`
  5702  		URL              string    `json:"url"`
  5703  		ForksURL         string    `json:"forks_url"`
  5704  		KeysURL          string    `json:"keys_url"`
  5705  		CollaboratorsURL string    `json:"collaborators_url"`
  5706  		TeamsURL         string    `json:"teams_url"`
  5707  		HooksURL         string    `json:"hooks_url"`
  5708  		IssueEventsURL   string    `json:"issue_events_url"`
  5709  		EventsURL        string    `json:"events_url"`
  5710  		AssigneesURL     string    `json:"assignees_url"`
  5711  		BranchesURL      string    `json:"branches_url"`
  5712  		TagsURL          string    `json:"tags_url"`
  5713  		BlobsURL         string    `json:"blobs_url"`
  5714  		GitTagsURL       string    `json:"git_tags_url"`
  5715  		GitRefsURL       string    `json:"git_refs_url"`
  5716  		TreesURL         string    `json:"trees_url"`
  5717  		StatusesURL      string    `json:"statuses_url"`
  5718  		LanguagesURL     string    `json:"languages_url"`
  5719  		StargazersURL    string    `json:"stargazers_url"`
  5720  		ContributorsURL  string    `json:"contributors_url"`
  5721  		SubscribersURL   string    `json:"subscribers_url"`
  5722  		SubscriptionURL  string    `json:"subscription_url"`
  5723  		CommitsURL       string    `json:"commits_url"`
  5724  		GitCommitsURL    string    `json:"git_commits_url"`
  5725  		CommentsURL      string    `json:"comments_url"`
  5726  		IssueCommentURL  string    `json:"issue_comment_url"`
  5727  		ContentsURL      string    `json:"contents_url"`
  5728  		CompareURL       string    `json:"compare_url"`
  5729  		MergesURL        string    `json:"merges_url"`
  5730  		ArchiveURL       string    `json:"archive_url"`
  5731  		DownloadsURL     string    `json:"downloads_url"`
  5732  		IssuesURL        string    `json:"issues_url"`
  5733  		PullsURL         string    `json:"pulls_url"`
  5734  		MilestonesURL    string    `json:"milestones_url"`
  5735  		NotificationsURL string    `json:"notifications_url"`
  5736  		LabelsURL        string    `json:"labels_url"`
  5737  		ReleasesURL      string    `json:"releases_url"`
  5738  		CreatedAt        time.Time `json:"created_at"`
  5739  		UpdatedAt        time.Time `json:"updated_at"`
  5740  		PushedAt         time.Time `json:"pushed_at"`
  5741  		GitURL           string    `json:"git_url"`
  5742  		SSHURL           string    `json:"ssh_url"`
  5743  		CloneURL         string    `json:"clone_url"`
  5744  		SvnURL           string    `json:"svn_url"`
  5745  		Homepage         *string   `json:"homepage"`
  5746  		Size             int64     `json:"size"`
  5747  		StargazersCount  int64     `json:"stargazers_count"`
  5748  		WatchersCount    int64     `json:"watchers_count"`
  5749  		Language         *string   `json:"language"`
  5750  		HasIssues        bool      `json:"has_issues"`
  5751  		HasDownloads     bool      `json:"has_downloads"`
  5752  		HasWiki          bool      `json:"has_wiki"`
  5753  		HasPages         bool      `json:"has_pages"`
  5754  		ForksCount       int64     `json:"forks_count"`
  5755  		MirrorURL        *string   `json:"mirror_url"`
  5756  		OpenIssuesCount  int64     `json:"open_issues_count"`
  5757  		Forks            int64     `json:"forks"`
  5758  		OpenIssues       int64     `json:"open_issues"`
  5759  		Watchers         int64     `json:"watchers"`
  5760  		DefaultBranch    string    `json:"default_branch"`
  5761  	} `json:"repository"`
  5762  	Organization struct {
  5763  		Login            string `json:"login"`
  5764  		ID               int64  `json:"id"`
  5765  		NodeID           string `json:"node_id"`
  5766  		URL              string `json:"url"`
  5767  		ReposURL         string `json:"repos_url"`
  5768  		EventsURL        string `json:"events_url"`
  5769  		MembersURL       string `json:"members_url"`
  5770  		PublicMembersURL string `json:"public_members_url"`
  5771  		AvatarURL        string `json:"avatar_url"`
  5772  	} `json:"organization"`
  5773  	Sender struct {
  5774  		Login             string `json:"login"`
  5775  		ID                int64  `json:"id"`
  5776  		NodeID            string `json:"node_id"`
  5777  		AvatarURL         string `json:"avatar_url"`
  5778  		GravatarID        string `json:"gravatar_id"`
  5779  		URL               string `json:"url"`
  5780  		HTMLURL           string `json:"html_url"`
  5781  		FollowersURL      string `json:"followers_url"`
  5782  		FollowingURL      string `json:"following_url"`
  5783  		GistsURL          string `json:"gists_url"`
  5784  		StarredURL        string `json:"starred_url"`
  5785  		SubscriptionsURL  string `json:"subscriptions_url"`
  5786  		OrganizationsURL  string `json:"organizations_url"`
  5787  		ReposURL          string `json:"repos_url"`
  5788  		EventsURL         string `json:"events_url"`
  5789  		ReceivedEventsURL string `json:"received_events_url"`
  5790  		Type              string `json:"type"`
  5791  		SiteAdmin         bool   `json:"site_admin"`
  5792  	} `json:"sender"`
  5793  }
  5794  
  5795  // RepositoryVulnerabilityAlertEvent contains the information for GitHub's repository_vulnerability_alert hook event.
  5796  type RepositoryVulnerabilityAlertPayload struct {
  5797  	Action string `json:"action"`
  5798  	Alert  struct {
  5799  		ID                  int64  `json:"id"`
  5800  		Summary             string `json:"summary"`
  5801  		AffectedRange       string `json:"affected_range"`
  5802  		AffectedPackageName string `json:"affected_package_name"`
  5803  		ExternalReference   string `json:"external_reference"`
  5804  		ExternalIdentifier  string `json:"external_identifier"`
  5805  		FixedIn             string `json:"fixed_in"`
  5806  		Dismisser           struct {
  5807  			Login             string `json:"login"`
  5808  			ID                int64  `json:"id"`
  5809  			NodeID            string `json:"node_id"`
  5810  			AvatarURL         string `json:"avatar_url"`
  5811  			GravatarID        string `json:"gravatar_id"`
  5812  			URL               string `json:"url"`
  5813  			HTMLURL           string `json:"html_url"`
  5814  			FollowersURL      string `json:"followers_url"`
  5815  			FollowingURL      string `json:"following_url"`
  5816  			GistsURL          string `json:"gists_url"`
  5817  			StarredURL        string `json:"starred_url"`
  5818  			SubscriptionsURL  string `json:"subscriptions_url"`
  5819  			OrganizationsURL  string `json:"organizations_url"`
  5820  			ReposURL          string `json:"repos_url"`
  5821  			EventsURL         string `json:"events_url"`
  5822  			ReceivedEventsURL string `json:"received_events_url"`
  5823  			Type              string `json:"type"`
  5824  			SiteAdmin         bool   `json:"site_admin"`
  5825  		} `json:"dismisser"`
  5826  	} `json:"alert"`
  5827  }
  5828  
  5829  // SecurityAdvisoryPayload contains the information for GitHub's security_advisory hook event.
  5830  type SecurityAdvisoryPayload struct {
  5831  	Action           string `json:"action"`
  5832  	SecurityAdvisory struct {
  5833  		GHSAID      string `json:"ghsa_id"`
  5834  		Summary     string `json:"summary"`
  5835  		Description string `json:"description"`
  5836  		Severity    string `json:"string"`
  5837  		Identifiers []struct {
  5838  			Value string `json:"value"`
  5839  			Type  string `json:"type"`
  5840  		} `json:"identifiers"`
  5841  		References []struct {
  5842  			URL string `json:"url"`
  5843  		} `json:"references"`
  5844  		PublishedAt     time.Time  `json:"published_at"`
  5845  		UpdatedAt       time.Time  `json:"updated_at"`
  5846  		WithdrawnAt     *time.Time `json:"withdrawn_at"`
  5847  		Vulnerabilities []struct {
  5848  			Package struct {
  5849  				Ecosystem string `json:"ecosystem"`
  5850  				Name      string `json:"name"`
  5851  			}
  5852  			Severity               string `json:"severity"`
  5853  			VulnerableVersionRange string `json:"vulnerable_version_range"`
  5854  			FirstPatchedVersion    *struct {
  5855  				Identifier string `json:"identifier"`
  5856  			} `json:"first_patched_version"`
  5857  		} `json:"vulnerabilities"`
  5858  	} `json:"security_advisory"`
  5859  }
  5860  
  5861  // StatusPayload contains the information for GitHub's status hook event
  5862  type StatusPayload struct {
  5863  	ID          int64   `json:"id"`
  5864  	Sha         string  `json:"sha"`
  5865  	Name        string  `json:"name"`
  5866  	TargetURL   *string `json:"target_url"`
  5867  	Context     string  `json:"context"`
  5868  	Description *string `json:"description"`
  5869  	State       string  `json:"state"`
  5870  	Commit      struct {
  5871  		Sha    string `json:"sha"`
  5872  		NodeID string `json:"node_id"`
  5873  		Commit struct {
  5874  			Author struct {
  5875  				Name  string    `json:"name"`
  5876  				Email string    `json:"email"`
  5877  				Date  time.Time `json:"date"`
  5878  			} `json:"author"`
  5879  			Committer struct {
  5880  				Name  string    `json:"name"`
  5881  				Email string    `json:"email"`
  5882  				Date  time.Time `json:"date"`
  5883  			} `json:"committer"`
  5884  			Message string `json:"message"`
  5885  			Tree    struct {
  5886  				Sha string `json:"sha"`
  5887  				URL string `json:"url"`
  5888  			} `json:"tree"`
  5889  			URL          string `json:"url"`
  5890  			CommentCount int64  `json:"comment_count"`
  5891  		} `json:"commit"`
  5892  		URL         string `json:"url"`
  5893  		HTMLURL     string `json:"html_url"`
  5894  		CommentsURL string `json:"comments_url"`
  5895  		Author      struct {
  5896  			Login             string `json:"login"`
  5897  			ID                int64  `json:"id"`
  5898  			NodeID            string `json:"node_id"`
  5899  			AvatarURL         string `json:"avatar_url"`
  5900  			GravatarID        string `json:"gravatar_id"`
  5901  			URL               string `json:"url"`
  5902  			HTMLURL           string `json:"html_url"`
  5903  			FollowersURL      string `json:"followers_url"`
  5904  			FollowingURL      string `json:"following_url"`
  5905  			GistsURL          string `json:"gists_url"`
  5906  			StarredURL        string `json:"starred_url"`
  5907  			SubscriptionsURL  string `json:"subscriptions_url"`
  5908  			OrganizationsURL  string `json:"organizations_url"`
  5909  			ReposURL          string `json:"repos_url"`
  5910  			EventsURL         string `json:"events_url"`
  5911  			ReceivedEventsURL string `json:"received_events_url"`
  5912  			Type              string `json:"type"`
  5913  			SiteAdmin         bool   `json:"site_admin"`
  5914  		} `json:"author"`
  5915  		Committer struct {
  5916  			Login             string `json:"login"`
  5917  			ID                int64  `json:"id"`
  5918  			NodeID            string `json:"node_id"`
  5919  			AvatarURL         string `json:"avatar_url"`
  5920  			GravatarID        string `json:"gravatar_id"`
  5921  			URL               string `json:"url"`
  5922  			HTMLURL           string `json:"html_url"`
  5923  			FollowersURL      string `json:"followers_url"`
  5924  			FollowingURL      string `json:"following_url"`
  5925  			GistsURL          string `json:"gists_url"`
  5926  			StarredURL        string `json:"starred_url"`
  5927  			SubscriptionsURL  string `json:"subscriptions_url"`
  5928  			OrganizationsURL  string `json:"organizations_url"`
  5929  			ReposURL          string `json:"repos_url"`
  5930  			EventsURL         string `json:"events_url"`
  5931  			ReceivedEventsURL string `json:"received_events_url"`
  5932  			Type              string `json:"type"`
  5933  			SiteAdmin         bool   `json:"site_admin"`
  5934  		} `json:"committer"`
  5935  		Parents []Parent `json:"parents"`
  5936  	} `json:"commit"`
  5937  	Branches []struct {
  5938  		Name   string `json:"name"`
  5939  		Commit struct {
  5940  			Sha string `json:"sha"`
  5941  			URL string `json:"url"`
  5942  		} `json:"commit"`
  5943  	} `json:"branches"`
  5944  	CreatedAt  time.Time `json:"created_at"`
  5945  	UpdatedAt  time.Time `json:"updated_at"`
  5946  	Repository struct {
  5947  		ID       int64  `json:"id"`
  5948  		NodeID   string `json:"node_id"`
  5949  		Name     string `json:"name"`
  5950  		FullName string `json:"full_name"`
  5951  		Owner    struct {
  5952  			Login             string `json:"login"`
  5953  			ID                int64  `json:"id"`
  5954  			NodeID            string `json:"node_id"`
  5955  			AvatarURL         string `json:"avatar_url"`
  5956  			GravatarID        string `json:"gravatar_id"`
  5957  			URL               string `json:"url"`
  5958  			HTMLURL           string `json:"html_url"`
  5959  			FollowersURL      string `json:"followers_url"`
  5960  			FollowingURL      string `json:"following_url"`
  5961  			GistsURL          string `json:"gists_url"`
  5962  			StarredURL        string `json:"starred_url"`
  5963  			SubscriptionsURL  string `json:"subscriptions_url"`
  5964  			OrganizationsURL  string `json:"organizations_url"`
  5965  			ReposURL          string `json:"repos_url"`
  5966  			EventsURL         string `json:"events_url"`
  5967  			ReceivedEventsURL string `json:"received_events_url"`
  5968  			Type              string `json:"type"`
  5969  			SiteAdmin         bool   `json:"site_admin"`
  5970  		} `json:"owner"`
  5971  		Private          bool      `json:"private"`
  5972  		HTMLURL          string    `json:"html_url"`
  5973  		Description      string    `json:"description"`
  5974  		Fork             bool      `json:"fork"`
  5975  		URL              string    `json:"url"`
  5976  		ForksURL         string    `json:"forks_url"`
  5977  		KeysURL          string    `json:"keys_url"`
  5978  		CollaboratorsURL string    `json:"collaborators_url"`
  5979  		TeamsURL         string    `json:"teams_url"`
  5980  		HooksURL         string    `json:"hooks_url"`
  5981  		IssueEventsURL   string    `json:"issue_events_url"`
  5982  		EventsURL        string    `json:"events_url"`
  5983  		AssigneesURL     string    `json:"assignees_url"`
  5984  		BranchesURL      string    `json:"branches_url"`
  5985  		TagsURL          string    `json:"tags_url"`
  5986  		BlobsURL         string    `json:"blobs_url"`
  5987  		GitTagsURL       string    `json:"git_tags_url"`
  5988  		GitRefsURL       string    `json:"git_refs_url"`
  5989  		TreesURL         string    `json:"trees_url"`
  5990  		StatusesURL      string    `json:"statuses_url"`
  5991  		LanguagesURL     string    `json:"languages_url"`
  5992  		StargazersURL    string    `json:"stargazers_url"`
  5993  		ContributorsURL  string    `json:"contributors_url"`
  5994  		SubscribersURL   string    `json:"subscribers_url"`
  5995  		SubscriptionURL  string    `json:"subscription_url"`
  5996  		CommitsURL       string    `json:"commits_url"`
  5997  		GitCommitsURL    string    `json:"git_commits_url"`
  5998  		CommentsURL      string    `json:"comments_url"`
  5999  		IssueCommentURL  string    `json:"issue_comment_url"`
  6000  		ContentsURL      string    `json:"contents_url"`
  6001  		CompareURL       string    `json:"compare_url"`
  6002  		MergesURL        string    `json:"merges_url"`
  6003  		ArchiveURL       string    `json:"archive_url"`
  6004  		DownloadsURL     string    `json:"downloads_url"`
  6005  		IssuesURL        string    `json:"issues_url"`
  6006  		PullsURL         string    `json:"pulls_url"`
  6007  		MilestonesURL    string    `json:"milestones_url"`
  6008  		NotificationsURL string    `json:"notifications_url"`
  6009  		LabelsURL        string    `json:"labels_url"`
  6010  		ReleasesURL      string    `json:"releases_url"`
  6011  		CreatedAt        time.Time `json:"created_at"`
  6012  		UpdatedAt        time.Time `json:"updated_at"`
  6013  		PushedAt         time.Time `json:"pushed_at"`
  6014  		GitURL           string    `json:"git_url"`
  6015  		SSHURL           string    `json:"ssh_url"`
  6016  		CloneURL         string    `json:"clone_url"`
  6017  		SvnURL           string    `json:"svn_url"`
  6018  		Homepage         *string   `json:"homepage"`
  6019  		Size             int64     `json:"size"`
  6020  		StargazersCount  int64     `json:"stargazers_count"`
  6021  		WatchersCount    int64     `json:"watchers_count"`
  6022  		Language         *string   `json:"language"`
  6023  		HasIssues        bool      `json:"has_issues"`
  6024  		HasDownloads     bool      `json:"has_downloads"`
  6025  		HasWiki          bool      `json:"has_wiki"`
  6026  		HasPages         bool      `json:"has_pages"`
  6027  		ForksCount       int64     `json:"forks_count"`
  6028  		MirrorURL        *string   `json:"mirror_url"`
  6029  		OpenIssuesCount  int64     `json:"open_issues_count"`
  6030  		Forks            int64     `json:"forks"`
  6031  		OpenIssues       int64     `json:"open_issues"`
  6032  		Watchers         int64     `json:"watchers"`
  6033  		DefaultBranch    string    `json:"default_branch"`
  6034  	} `json:"repository"`
  6035  	Sender struct {
  6036  		Login             string `json:"login"`
  6037  		ID                int64  `json:"id"`
  6038  		NodeID            string `json:"node_id"`
  6039  		AvatarURL         string `json:"avatar_url"`
  6040  		GravatarID        string `json:"gravatar_id"`
  6041  		URL               string `json:"url"`
  6042  		HTMLURL           string `json:"html_url"`
  6043  		FollowersURL      string `json:"followers_url"`
  6044  		FollowingURL      string `json:"following_url"`
  6045  		GistsURL          string `json:"gists_url"`
  6046  		StarredURL        string `json:"starred_url"`
  6047  		SubscriptionsURL  string `json:"subscriptions_url"`
  6048  		OrganizationsURL  string `json:"organizations_url"`
  6049  		ReposURL          string `json:"repos_url"`
  6050  		EventsURL         string `json:"events_url"`
  6051  		ReceivedEventsURL string `json:"received_events_url"`
  6052  		Type              string `json:"type"`
  6053  		SiteAdmin         bool   `json:"site_admin"`
  6054  	} `json:"sender"`
  6055  }
  6056  
  6057  // TeamPayload contains the information for GitHub's team hook event
  6058  type TeamPayload struct {
  6059  	Action       string `json:"action"`
  6060  	Team         *Team  `json:"team"`
  6061  	Organization struct {
  6062  		Login            string `json:"login"`
  6063  		ID               int64  `json:"id"`
  6064  		NodeID           string `json:"node_id"`
  6065  		URL              string `json:"url"`
  6066  		ReposURL         string `json:"repos_url"`
  6067  		EventsURL        string `json:"events_url"`
  6068  		HooksURL         string `json:"hooks_url"`
  6069  		IssuesURL        string `json:"issues_url"`
  6070  		MembersURL       string `json:"members_url"`
  6071  		PublicMembersURL string `json:"public_members_url"`
  6072  		AvatarURL        string `json:"avatar_url"`
  6073  		Description      string `json:"description"`
  6074  	} `json:"organization"`
  6075  	Sender struct {
  6076  		Login             string `json:"login"`
  6077  		ID                int64  `json:"id"`
  6078  		NodeID            string `json:"node_id"`
  6079  		AvatarURL         string `json:"avatar_url"`
  6080  		GravatarID        string `json:"gravatar_id"`
  6081  		URL               string `json:"url"`
  6082  		HTMLURL           string `json:"html_url"`
  6083  		FollowersURL      string `json:"followers_url"`
  6084  		FollowingURL      string `json:"following_url"`
  6085  		GistsURL          string `json:"gists_url"`
  6086  		StarredURL        string `json:"starred_url"`
  6087  		SubscriptionsURL  string `json:"subscriptions_url"`
  6088  		OrganizationsURL  string `json:"organizations_url"`
  6089  		ReposURL          string `json:"repos_url"`
  6090  		EventsURL         string `json:"events_url"`
  6091  		ReceivedEventsURL string `json:"received_events_url"`
  6092  		Type              string `json:"type"`
  6093  		SiteAdmin         bool   `json:"site_admin"`
  6094  	} `json:"sender"`
  6095  }
  6096  
  6097  // TeamAddPayload contains the information for GitHub's team_add hook event
  6098  type TeamAddPayload struct {
  6099  	Team       *Team `json:"team"`
  6100  	Repository struct {
  6101  		ID       int64  `json:"id"`
  6102  		NodeID   string `json:"node_id"`
  6103  		Name     string `json:"name"`
  6104  		FullName string `json:"full_name"`
  6105  		Owner    struct {
  6106  			Login             string `json:"login"`
  6107  			ID                int64  `json:"id"`
  6108  			NodeID            string `json:"node_id"`
  6109  			AvatarURL         string `json:"avatar_url"`
  6110  			GravatarID        string `json:"gravatar_id"`
  6111  			URL               string `json:"url"`
  6112  			HTMLURL           string `json:"html_url"`
  6113  			FollowersURL      string `json:"followers_url"`
  6114  			FollowingURL      string `json:"following_url"`
  6115  			GistsURL          string `json:"gists_url"`
  6116  			StarredURL        string `json:"starred_url"`
  6117  			SubscriptionsURL  string `json:"subscriptions_url"`
  6118  			OrganizationsURL  string `json:"organizations_url"`
  6119  			ReposURL          string `json:"repos_url"`
  6120  			EventsURL         string `json:"events_url"`
  6121  			ReceivedEventsURL string `json:"received_events_url"`
  6122  			Type              string `json:"type"`
  6123  			SiteAdmin         bool   `json:"site_admin"`
  6124  		} `json:"owner"`
  6125  		Private          bool      `json:"private"`
  6126  		HTMLURL          string    `json:"html_url"`
  6127  		Description      string    `json:"description"`
  6128  		Fork             bool      `json:"fork"`
  6129  		URL              string    `json:"url"`
  6130  		ForksURL         string    `json:"forks_url"`
  6131  		KeysURL          string    `json:"keys_url"`
  6132  		CollaboratorsURL string    `json:"collaborators_url"`
  6133  		TeamsURL         string    `json:"teams_url"`
  6134  		HooksURL         string    `json:"hooks_url"`
  6135  		IssueEventsURL   string    `json:"issue_events_url"`
  6136  		EventsURL        string    `json:"events_url"`
  6137  		AssigneesURL     string    `json:"assignees_url"`
  6138  		BranchesURL      string    `json:"branches_url"`
  6139  		TagsURL          string    `json:"tags_url"`
  6140  		BlobsURL         string    `json:"blobs_url"`
  6141  		GitTagsURL       string    `json:"git_tags_url"`
  6142  		GitRefsURL       string    `json:"git_refs_url"`
  6143  		TreesURL         string    `json:"trees_url"`
  6144  		StatusesURL      string    `json:"statuses_url"`
  6145  		LanguagesURL     string    `json:"languages_url"`
  6146  		StargazersURL    string    `json:"stargazers_url"`
  6147  		ContributorsURL  string    `json:"contributors_url"`
  6148  		SubscribersURL   string    `json:"subscribers_url"`
  6149  		SubscriptionURL  string    `json:"subscription_url"`
  6150  		CommitsURL       string    `json:"commits_url"`
  6151  		GitCommitsURL    string    `json:"git_commits_url"`
  6152  		CommentsURL      string    `json:"comments_url"`
  6153  		IssueCommentURL  string    `json:"issue_comment_url"`
  6154  		ContentsURL      string    `json:"contents_url"`
  6155  		CompareURL       string    `json:"compare_url"`
  6156  		MergesURL        string    `json:"merges_url"`
  6157  		ArchiveURL       string    `json:"archive_url"`
  6158  		DownloadsURL     string    `json:"downloads_url"`
  6159  		IssuesURL        string    `json:"issues_url"`
  6160  		PullsURL         string    `json:"pulls_url"`
  6161  		MilestonesURL    string    `json:"milestones_url"`
  6162  		NotificationsURL string    `json:"notifications_url"`
  6163  		LabelsURL        string    `json:"labels_url"`
  6164  		ReleasesURL      string    `json:"releases_url"`
  6165  		CreatedAt        time.Time `json:"created_at"`
  6166  		UpdatedAt        time.Time `json:"updated_at"`
  6167  		PushedAt         time.Time `json:"pushed_at"`
  6168  		GitURL           string    `json:"git_url"`
  6169  		SSHURL           string    `json:"ssh_url"`
  6170  		CloneURL         string    `json:"clone_url"`
  6171  		SvnURL           string    `json:"svn_url"`
  6172  		Homepage         *string   `json:"homepage"`
  6173  		Size             int64     `json:"size"`
  6174  		StargazersCount  int64     `json:"stargazers_count"`
  6175  		WatchersCount    int64     `json:"watchers_count"`
  6176  		Language         *string   `json:"language"`
  6177  		HasIssues        bool      `json:"has_issues"`
  6178  		HasDownloads     bool      `json:"has_downloads"`
  6179  		HasWiki          bool      `json:"has_wiki"`
  6180  		HasPages         bool      `json:"has_pages"`
  6181  		ForksCount       int64     `json:"forks_count"`
  6182  		MirrorURL        *string   `json:"mirror_url"`
  6183  		OpenIssuesCount  int64     `json:"open_issues_count"`
  6184  		Forks            int64     `json:"forks"`
  6185  		OpenIssues       int64     `json:"open_issues"`
  6186  		Watchers         int64     `json:"watchers"`
  6187  		DefaultBranch    string    `json:"default_branch"`
  6188  	} `json:"repository"`
  6189  	Organization struct {
  6190  		Login            string  `json:"login"`
  6191  		ID               int64   `json:"id"`
  6192  		NodeID           string  `json:"node_id"`
  6193  		URL              string  `json:"url"`
  6194  		ReposURL         string  `json:"repos_url"`
  6195  		EventsURL        string  `json:"events_url"`
  6196  		MembersURL       string  `json:"members_url"`
  6197  		PublicMembersURL string  `json:"public_members_url"`
  6198  		AvatarURL        string  `json:"avatar_url"`
  6199  		Description      *string `json:"description"`
  6200  	} `json:"organization"`
  6201  	Sender struct {
  6202  		Login             string `json:"login"`
  6203  		ID                int64  `json:"id"`
  6204  		NodeID            string `json:"node_id"`
  6205  		AvatarURL         string `json:"avatar_url"`
  6206  		GravatarID        string `json:"gravatar_id"`
  6207  		URL               string `json:"url"`
  6208  		HTMLURL           string `json:"html_url"`
  6209  		FollowersURL      string `json:"followers_url"`
  6210  		FollowingURL      string `json:"following_url"`
  6211  		GistsURL          string `json:"gists_url"`
  6212  		StarredURL        string `json:"starred_url"`
  6213  		SubscriptionsURL  string `json:"subscriptions_url"`
  6214  		OrganizationsURL  string `json:"organizations_url"`
  6215  		ReposURL          string `json:"repos_url"`
  6216  		EventsURL         string `json:"events_url"`
  6217  		ReceivedEventsURL string `json:"received_events_url"`
  6218  		Type              string `json:"type"`
  6219  		SiteAdmin         bool   `json:"site_admin"`
  6220  	} `json:"sender"`
  6221  }
  6222  
  6223  // WatchPayload contains the information for GitHub's watch hook event
  6224  type WatchPayload struct {
  6225  	Action     string `json:"action"`
  6226  	Repository struct {
  6227  		ID       int64  `json:"id"`
  6228  		NodeID   string `json:"node_id"`
  6229  		Name     string `json:"name"`
  6230  		FullName string `json:"full_name"`
  6231  		Owner    struct {
  6232  			Login             string `json:"login"`
  6233  			ID                int64  `json:"id"`
  6234  			NodeID            string `json:"node_id"`
  6235  			AvatarURL         string `json:"avatar_url"`
  6236  			GravatarID        string `json:"gravatar_id"`
  6237  			URL               string `json:"url"`
  6238  			HTMLURL           string `json:"html_url"`
  6239  			FollowersURL      string `json:"followers_url"`
  6240  			FollowingURL      string `json:"following_url"`
  6241  			GistsURL          string `json:"gists_url"`
  6242  			StarredURL        string `json:"starred_url"`
  6243  			SubscriptionsURL  string `json:"subscriptions_url"`
  6244  			OrganizationsURL  string `json:"organizations_url"`
  6245  			ReposURL          string `json:"repos_url"`
  6246  			EventsURL         string `json:"events_url"`
  6247  			ReceivedEventsURL string `json:"received_events_url"`
  6248  			Type              string `json:"type"`
  6249  			SiteAdmin         bool   `json:"site_admin"`
  6250  		} `json:"owner"`
  6251  		Private          bool      `json:"private"`
  6252  		HTMLURL          string    `json:"html_url"`
  6253  		Description      string    `json:"description"`
  6254  		Fork             bool      `json:"fork"`
  6255  		URL              string    `json:"url"`
  6256  		ForksURL         string    `json:"forks_url"`
  6257  		KeysURL          string    `json:"keys_url"`
  6258  		CollaboratorsURL string    `json:"collaborators_url"`
  6259  		TeamsURL         string    `json:"teams_url"`
  6260  		HooksURL         string    `json:"hooks_url"`
  6261  		IssueEventsURL   string    `json:"issue_events_url"`
  6262  		EventsURL        string    `json:"events_url"`
  6263  		AssigneesURL     string    `json:"assignees_url"`
  6264  		BranchesURL      string    `json:"branches_url"`
  6265  		TagsURL          string    `json:"tags_url"`
  6266  		BlobsURL         string    `json:"blobs_url"`
  6267  		GitTagsURL       string    `json:"git_tags_url"`
  6268  		GitRefsURL       string    `json:"git_refs_url"`
  6269  		TreesURL         string    `json:"trees_url"`
  6270  		StatusesURL      string    `json:"statuses_url"`
  6271  		LanguagesURL     string    `json:"languages_url"`
  6272  		StargazersURL    string    `json:"stargazers_url"`
  6273  		ContributorsURL  string    `json:"contributors_url"`
  6274  		SubscribersURL   string    `json:"subscribers_url"`
  6275  		SubscriptionURL  string    `json:"subscription_url"`
  6276  		CommitsURL       string    `json:"commits_url"`
  6277  		GitCommitsURL    string    `json:"git_commits_url"`
  6278  		CommentsURL      string    `json:"comments_url"`
  6279  		IssueCommentURL  string    `json:"issue_comment_url"`
  6280  		ContentsURL      string    `json:"contents_url"`
  6281  		CompareURL       string    `json:"compare_url"`
  6282  		MergesURL        string    `json:"merges_url"`
  6283  		ArchiveURL       string    `json:"archive_url"`
  6284  		DownloadsURL     string    `json:"downloads_url"`
  6285  		IssuesURL        string    `json:"issues_url"`
  6286  		PullsURL         string    `json:"pulls_url"`
  6287  		MilestonesURL    string    `json:"milestones_url"`
  6288  		NotificationsURL string    `json:"notifications_url"`
  6289  		LabelsURL        string    `json:"labels_url"`
  6290  		ReleasesURL      string    `json:"releases_url"`
  6291  		CreatedAt        time.Time `json:"created_at"`
  6292  		UpdatedAt        time.Time `json:"updated_at"`
  6293  		PushedAt         time.Time `json:"pushed_at"`
  6294  		GitURL           string    `json:"git_url"`
  6295  		SSHURL           string    `json:"ssh_url"`
  6296  		CloneURL         string    `json:"clone_url"`
  6297  		SvnURL           string    `json:"svn_url"`
  6298  		Homepage         *string   `json:"homepage"`
  6299  		Size             int64     `json:"size"`
  6300  		StargazersCount  int64     `json:"stargazers_count"`
  6301  		WatchersCount    int64     `json:"watchers_count"`
  6302  		Language         *string   `json:"language"`
  6303  		HasIssues        bool      `json:"has_issues"`
  6304  		HasDownloads     bool      `json:"has_downloads"`
  6305  		HasWiki          bool      `json:"has_wiki"`
  6306  		HasPages         bool      `json:"has_pages"`
  6307  		ForksCount       int64     `json:"forks_count"`
  6308  		MirrorURL        *string   `json:"mirror_url"`
  6309  		OpenIssuesCount  int64     `json:"open_issues_count"`
  6310  		Forks            int64     `json:"forks"`
  6311  		OpenIssues       int64     `json:"open_issues"`
  6312  		Watchers         int64     `json:"watchers"`
  6313  		DefaultBranch    string    `json:"default_branch"`
  6314  	} `json:"repository"`
  6315  	Sender struct {
  6316  		Login             string `json:"login"`
  6317  		ID                int64  `json:"id"`
  6318  		NodeID            string `json:"node_id"`
  6319  		AvatarURL         string `json:"avatar_url"`
  6320  		GravatarID        string `json:"gravatar_id"`
  6321  		URL               string `json:"url"`
  6322  		HTMLURL           string `json:"html_url"`
  6323  		FollowersURL      string `json:"followers_url"`
  6324  		FollowingURL      string `json:"following_url"`
  6325  		GistsURL          string `json:"gists_url"`
  6326  		StarredURL        string `json:"starred_url"`
  6327  		SubscriptionsURL  string `json:"subscriptions_url"`
  6328  		OrganizationsURL  string `json:"organizations_url"`
  6329  		ReposURL          string `json:"repos_url"`
  6330  		EventsURL         string `json:"events_url"`
  6331  		ReceivedEventsURL string `json:"received_events_url"`
  6332  		Type              string `json:"type"`
  6333  		SiteAdmin         bool   `json:"site_admin"`
  6334  	} `json:"sender"`
  6335  }
  6336  
  6337  // WorkflowDispatchPayload contains the information for GitHub's workflow dispatch event
  6338  type WorkflowDispatchPayload struct {
  6339  	Inputs struct {
  6340  		Name string `json:"name"`
  6341  	}
  6342  	Ref        string `json:"ref"`
  6343  	Repository struct {
  6344  		ID       int64  `json:"id"`
  6345  		NodeID   string `json:"node_id"`
  6346  		Name     string `json:"name"`
  6347  		FullName string `json:"full_name"`
  6348  		Owner    struct {
  6349  			Login             string `json:"login"`
  6350  			ID                int64  `json:"id"`
  6351  			NodeID            string `json:"node_id"`
  6352  			AvatarURL         string `json:"avatar_url"`
  6353  			GravatarID        string `json:"gravatar_id"`
  6354  			URL               string `json:"url"`
  6355  			HTMLURL           string `json:"html_url"`
  6356  			FollowersURL      string `json:"followers_url"`
  6357  			FollowingURL      string `json:"following_url"`
  6358  			GistsURL          string `json:"gists_url"`
  6359  			StarredURL        string `json:"starred_url"`
  6360  			SubscriptionsURL  string `json:"subscriptions_url"`
  6361  			OrganizationsURL  string `json:"organizations_url"`
  6362  			ReposURL          string `json:"repos_url"`
  6363  			EventsURL         string `json:"events_url"`
  6364  			ReceivedEventsURL string `json:"received_events_url"`
  6365  			Type              string `json:"type"`
  6366  			SiteAdmin         bool   `json:"site_admin"`
  6367  		} `json:"owner"`
  6368  		Private          bool      `json:"private"`
  6369  		HTMLURL          string    `json:"html_url"`
  6370  		Description      string    `json:"description"`
  6371  		Fork             bool      `json:"fork"`
  6372  		URL              string    `json:"url"`
  6373  		ForksURL         string    `json:"forks_url"`
  6374  		KeysURL          string    `json:"keys_url"`
  6375  		CollaboratorsURL string    `json:"collaborators_url"`
  6376  		TeamsURL         string    `json:"teams_url"`
  6377  		HooksURL         string    `json:"hooks_url"`
  6378  		IssueEventsURL   string    `json:"issue_events_url"`
  6379  		EventsURL        string    `json:"events_url"`
  6380  		AssigneesURL     string    `json:"assignees_url"`
  6381  		BranchesURL      string    `json:"branches_url"`
  6382  		TagsURL          string    `json:"tags_url"`
  6383  		BlobsURL         string    `json:"blobs_url"`
  6384  		GitTagsURL       string    `json:"git_tags_url"`
  6385  		GitRefsURL       string    `json:"git_refs_url"`
  6386  		TreesURL         string    `json:"trees_url"`
  6387  		StatusesURL      string    `json:"statuses_url"`
  6388  		LanguagesURL     string    `json:"languages_url"`
  6389  		StargazersURL    string    `json:"stargazers_url"`
  6390  		ContributorsURL  string    `json:"contributors_url"`
  6391  		SubscribersURL   string    `json:"subscribers_url"`
  6392  		SubscriptionURL  string    `json:"subscription_url"`
  6393  		CommitsURL       string    `json:"commits_url"`
  6394  		GitCommitsURL    string    `json:"git_commits_url"`
  6395  		CommentsURL      string    `json:"comments_url"`
  6396  		IssueCommentURL  string    `json:"issue_comment_url"`
  6397  		ContentsURL      string    `json:"contents_url"`
  6398  		CompareURL       string    `json:"compare_url"`
  6399  		MergesURL        string    `json:"merges_url"`
  6400  		ArchiveURL       string    `json:"archive_url"`
  6401  		DownloadsURL     string    `json:"downloads_url"`
  6402  		IssuesURL        string    `json:"issues_url"`
  6403  		PullsURL         string    `json:"pulls_url"`
  6404  		MilestonesURL    string    `json:"milestones_url"`
  6405  		NotificationsURL string    `json:"notifications_url"`
  6406  		LabelsURL        string    `json:"labels_url"`
  6407  		ReleasesURL      string    `json:"releases_url"`
  6408  		CreatedAt        time.Time `json:"created_at"`
  6409  		UpdatedAt        time.Time `json:"updated_at"`
  6410  		PushedAt         time.Time `json:"pushed_at"`
  6411  		GitURL           string    `json:"git_url"`
  6412  		SSHURL           string    `json:"ssh_url"`
  6413  		CloneURL         string    `json:"clone_url"`
  6414  		SvnURL           string    `json:"svn_url"`
  6415  		Homepage         *string   `json:"homepage"`
  6416  		Size             int64     `json:"size"`
  6417  		StargazersCount  int64     `json:"stargazers_count"`
  6418  		WatchersCount    int64     `json:"watchers_count"`
  6419  		Language         *string   `json:"language"`
  6420  		HasIssues        bool      `json:"has_issues"`
  6421  		HasDownloads     bool      `json:"has_downloads"`
  6422  		HasWiki          bool      `json:"has_wiki"`
  6423  		HasPages         bool      `json:"has_pages"`
  6424  		ForksCount       int64     `json:"forks_count"`
  6425  		MirrorURL        *string   `json:"mirror_url"`
  6426  		OpenIssuesCount  int64     `json:"open_issues_count"`
  6427  		Forks            int64     `json:"forks"`
  6428  		OpenIssues       int64     `json:"open_issues"`
  6429  		Watchers         int64     `json:"watchers"`
  6430  		DefaultBranch    string    `json:"default_branch"`
  6431  	} `json:"repository"`
  6432  	Organization struct {
  6433  		Login            string `json:"login"`
  6434  		ID               int64  `json:"id"`
  6435  		NodeID           string `json:"node_id"`
  6436  		URL              string `json:"url"`
  6437  		ReposURL         string `json:"repos_url"`
  6438  		EventsURL        string `json:"events_url"`
  6439  		HooksURL         string `json:"hooks_url"`
  6440  		IssuesURL        string `json:"issues_url"`
  6441  		MembersURL       string `json:"members_url"`
  6442  		PublicMembersURL string `json:"public_members_url"`
  6443  		AvatarURL        string `json:"avatar_url"`
  6444  		Description      string `json:"description"`
  6445  	} `json:"organization"`
  6446  	Sender struct {
  6447  		Login             string `json:"login"`
  6448  		ID                int64  `json:"id"`
  6449  		NodeID            string `json:"node_id"`
  6450  		AvatarURL         string `json:"avatar_url"`
  6451  		GravatarID        string `json:"gravatar_id"`
  6452  		URL               string `json:"url"`
  6453  		HTMLURL           string `json:"html_url"`
  6454  		FollowersURL      string `json:"followers_url"`
  6455  		FollowingURL      string `json:"following_url"`
  6456  		GistsURL          string `json:"gists_url"`
  6457  		StarredURL        string `json:"starred_url"`
  6458  		SubscriptionsURL  string `json:"subscriptions_url"`
  6459  		OrganizationsURL  string `json:"organizations_url"`
  6460  		ReposURL          string `json:"repos_url"`
  6461  		EventsURL         string `json:"events_url"`
  6462  		ReceivedEventsURL string `json:"received_events_url"`
  6463  		Type              string `json:"type"`
  6464  		SiteAdmin         bool   `json:"site_admin"`
  6465  	} `json:"sender"`
  6466  	Workflow string `json:"workflow"`
  6467  }
  6468  
  6469  // WorkflowJobPayload contains the information for GitHub's workflow job event
  6470  type WorkflowJobPayload struct {
  6471  	Action      string `json:"action"`
  6472  	WorkflowJob struct {
  6473  		ID          int64     `json:"id"`
  6474  		RunID       int64     `json:"run_id"`
  6475  		RunURL      string    `json:"run_url"`
  6476  		RunAttempt  int64     `json:"run_attempt"`
  6477  		NodeID      string    `json:"node_id"`
  6478  		HeadSha     string    `json:"head_sha"`
  6479  		URL         string    `json:"url"`
  6480  		HTMLURL     string    `json:"html_url"`
  6481  		Status      string    `json:"status"`
  6482  		Conclusion  string    `json:"conclusion"`
  6483  		StartedAt   time.Time `json:"started_at"`
  6484  		CompletedAt time.Time `json:"completed_at"`
  6485  		Name        string    `json:"name"`
  6486  		Steps       []struct {
  6487  			Name        string    `json:"name"`
  6488  			Status      string    `json:"status"`
  6489  			Conclusion  string    `json:"conclusion"`
  6490  			Number      int64     `json:"number"`
  6491  			StartedAt   time.Time `json:"started_at"`
  6492  			CompletedAt time.Time `json:"completed_at"`
  6493  		} `json:"steps"`
  6494  		CheckRunURL     string   `json:"check_run_url"`
  6495  		Labels          []string `json:"labels"`
  6496  		RunnerID        int64    `json:"runner_id"`
  6497  		RunnerName      string   `json:"runner_name"`
  6498  		RunnerGroupID   int64    `json:"runner_group_id"`
  6499  		RunnerGroupName string   `json:"runner_group_name"`
  6500  	} `json:"workflow_job"`
  6501  	Repository struct {
  6502  		ID       int64  `json:"id"`
  6503  		NodeID   string `json:"node_id"`
  6504  		Name     string `json:"name"`
  6505  		FullName string `json:"full_name"`
  6506  		Private  bool   `json:"private"`
  6507  		Owner    struct {
  6508  			Login             string `json:"login"`
  6509  			ID                int64  `json:"id"`
  6510  			NodeID            string `json:"node_id"`
  6511  			AvatarURL         string `json:"avatar_url"`
  6512  			GravatarID        string `json:"gravatar_id"`
  6513  			URL               string `json:"url"`
  6514  			HTMLURL           string `json:"html_url"`
  6515  			FollowersURL      string `json:"followers_url"`
  6516  			FollowingURL      string `json:"following_url"`
  6517  			GistsURL          string `json:"gists_url"`
  6518  			StarredURL        string `json:"starred_url"`
  6519  			SubscriptionsURL  string `json:"subscriptions_url"`
  6520  			OrganizationsURL  string `json:"organizations_url"`
  6521  			ReposURL          string `json:"repos_url"`
  6522  			EventsURL         string `json:"events_url"`
  6523  			ReceivedEventsURL string `json:"received_events_url"`
  6524  			Type              string `json:"type"`
  6525  			SiteAdmin         bool   `json:"site_admin"`
  6526  		} `json:"owner"`
  6527  		HTMLURL          string    `json:"html_url"`
  6528  		Description      string    `json:"description"`
  6529  		Fork             bool      `json:"fork"`
  6530  		URL              string    `json:"url"`
  6531  		ForksURL         string    `json:"forks_url"`
  6532  		KeysURL          string    `json:"keys_url"`
  6533  		CollaboratorsURL string    `json:"collaborators_url"`
  6534  		TeamsURL         string    `json:"teams_url"`
  6535  		HooksURL         string    `json:"hooks_url"`
  6536  		IssueEventsURL   string    `json:"issue_events_url"`
  6537  		EventsURL        string    `json:"events_url"`
  6538  		AssigneesURL     string    `json:"assignees_url"`
  6539  		BranchesURL      string    `json:"branches_url"`
  6540  		TagsURL          string    `json:"tags_url"`
  6541  		BlobsURL         string    `json:"blobs_url"`
  6542  		GitTagsURL       string    `json:"git_tags_url"`
  6543  		GitRefsURL       string    `json:"git_refs_url"`
  6544  		TreesURL         string    `json:"trees_url"`
  6545  		StatusesURL      string    `json:"statuses_url"`
  6546  		LanguagesURL     string    `json:"languages_url"`
  6547  		StargazersURL    string    `json:"stargazers_url"`
  6548  		ContributorsURL  string    `json:"contributors_url"`
  6549  		SubscribersURL   string    `json:"subscribers_url"`
  6550  		SubscriptionURL  string    `json:"subscription_url"`
  6551  		CommitsURL       string    `json:"commits_url"`
  6552  		GitCommitsURL    string    `json:"git_commits_url"`
  6553  		CommentsURL      string    `json:"comments_url"`
  6554  		IssueCommentURL  string    `json:"issue_comment_url"`
  6555  		ContentsURL      string    `json:"contents_url"`
  6556  		CompareURL       string    `json:"compare_url"`
  6557  		MergesURL        string    `json:"merges_url"`
  6558  		ArchiveURL       string    `json:"archive_url"`
  6559  		DownloadsURL     string    `json:"downloads_url"`
  6560  		IssuesURL        string    `json:"issues_url"`
  6561  		PullsURL         string    `json:"pulls_url"`
  6562  		MilestonesURL    string    `json:"milestones_url"`
  6563  		NotificationsURL string    `json:"notifications_url"`
  6564  		LabelsURL        string    `json:"labels_url"`
  6565  		ReleasesURL      string    `json:"releases_url"`
  6566  		DeploymentsURL   string    `json:"deployments_url"`
  6567  		CreatedAt        time.Time `json:"created_at"`
  6568  		UpdatedAt        time.Time `json:"updated_at"`
  6569  		PushedAt         time.Time `json:"pushed_at"`
  6570  		GitURL           string    `json:"git_url"`
  6571  		SSHURL           string    `json:"ssh_url"`
  6572  		CloneURL         string    `json:"clone_url"`
  6573  		SvnURL           string    `json:"svn_url"`
  6574  		Homepage         *string   `json:"homepage"`
  6575  		Size             int64     `json:"size"`
  6576  		StargazersCount  int64     `json:"stargazers_count"`
  6577  		WatchersCount    int64     `json:"watchers_count"`
  6578  		Language         *string   `json:"language"`
  6579  		HasIssues        bool      `json:"has_issues"`
  6580  		HasProjects      bool      `json:"has_projects"`
  6581  		HasDownloads     bool      `json:"has_downloads"`
  6582  		HasWiki          bool      `json:"has_wiki"`
  6583  		HasPages         bool      `json:"has_pages"`
  6584  		ForksCount       int64     `json:"forks_count"`
  6585  		MirrorURL        *string   `json:"mirror_url"`
  6586  		Archived         bool      `json:"archived"`
  6587  		Disabled         bool      `json:"disabled"`
  6588  		OpenIssuesCount  int64     `json:"open_issues_count"`
  6589  		License          struct {
  6590  			Key    string `json:"key"`
  6591  			Name   string `json:"name"`
  6592  			SpdxID string `json:"spdx_id"`
  6593  			URL    string `json:"url"`
  6594  			NodeID string `json:"node_id"`
  6595  		} `json:"license"`
  6596  		AllowForking bool `json:"allow_forking"`
  6597  		IsTemplate   bool `json:"is_template"`
  6598  		// Topics        []interface{} `json:"topics"`
  6599  		Visibility    string `json:"visibility"`
  6600  		Forks         int64  `json:"forks"`
  6601  		OpenIssues    int64  `json:"open_issues"`
  6602  		Watchers      int64  `json:"watchers"`
  6603  		DefaultBranch string `json:"default_branch"`
  6604  	} `json:"repository"`
  6605  	Organization struct {
  6606  		Login            string `json:"login"`
  6607  		ID               int64  `json:"id"`
  6608  		NodeID           string `json:"node_id"`
  6609  		URL              string `json:"url"`
  6610  		ReposURL         string `json:"repos_url"`
  6611  		EventsURL        string `json:"events_url"`
  6612  		HooksURL         string `json:"hooks_url"`
  6613  		IssuesURL        string `json:"issues_url"`
  6614  		MembersURL       string `json:"members_url"`
  6615  		PublicMembersURL string `json:"public_members_url"`
  6616  		AvatarURL        string `json:"avatar_url"`
  6617  		Description      string `json:"description"`
  6618  	} `json:"organization"`
  6619  	Enterprise struct {
  6620  		ID        int64  `json:"id"`
  6621  		Slug      string `json:"slug"`
  6622  		Name      string `json:"name"`
  6623  		NodeID    string `json:"node_id"`
  6624  		AvatarURL string `json:"avatar_url"`
  6625  		// Description interface{} `json:"description"`
  6626  		// WebsiteURL  interface{} `json:"website_url"`
  6627  		HTMLURL   string    `json:"html_url"`
  6628  		CreatedAt time.Time `json:"created_at"`
  6629  		UpdatedAt time.Time `json:"updated_at"`
  6630  	} `json:"enterprise"`
  6631  	Sender struct {
  6632  		Login             string `json:"login"`
  6633  		ID                int64  `json:"id"`
  6634  		NodeID            string `json:"node_id"`
  6635  		AvatarURL         string `json:"avatar_url"`
  6636  		GravatarID        string `json:"gravatar_id"`
  6637  		URL               string `json:"url"`
  6638  		HTMLURL           string `json:"html_url"`
  6639  		FollowersURL      string `json:"followers_url"`
  6640  		FollowingURL      string `json:"following_url"`
  6641  		GistsURL          string `json:"gists_url"`
  6642  		StarredURL        string `json:"starred_url"`
  6643  		SubscriptionsURL  string `json:"subscriptions_url"`
  6644  		OrganizationsURL  string `json:"organizations_url"`
  6645  		ReposURL          string `json:"repos_url"`
  6646  		EventsURL         string `json:"events_url"`
  6647  		ReceivedEventsURL string `json:"received_events_url"`
  6648  		Type              string `json:"type"`
  6649  		SiteAdmin         bool   `json:"site_admin"`
  6650  	} `json:"sender"`
  6651  }
  6652  
  6653  // WorkflowRunPayload contains the information for GitHub's workflow run event
  6654  type WorkflowRunPayload struct {
  6655  	Action      string `json:"action"`
  6656  	WorkflowRun struct {
  6657  		ID               int64  `json:"id"`
  6658  		Name             string `json:"name"`
  6659  		NodeID           string `json:"node_id"`
  6660  		HeadBranch       string `json:"head_branch"`
  6661  		HeadSha          string `json:"head_sha"`
  6662  		RunNumber        int64  `json:"run_number"`
  6663  		Event            string `json:"event"`
  6664  		Status           string `json:"status"`
  6665  		Conclusion       string `json:"conclusion"`
  6666  		WorkflowID       int64  `json:"workflow_id"`
  6667  		CheckSuiteID     int64  `json:"check_suite_id"`
  6668  		CheckSuiteNodeID string `json:"check_suite_node_id"`
  6669  		URL              string `json:"url"`
  6670  		HTMLURL          string `json:"html_url"`
  6671  		// PullRequests       []interface{} `json:"pull_requests"`
  6672  		CreatedAt     time.Time `json:"created_at"`
  6673  		UpdatedAt     time.Time `json:"updated_at"`
  6674  		RunAttempt    int64     `json:"run_attempt"`
  6675  		RunStartedAt  time.Time `json:"run_started_at"`
  6676  		JobsURL       string    `json:"jobs_url"`
  6677  		LogsURL       string    `json:"logs_url"`
  6678  		CheckSuiteURL string    `json:"check_suite_url"`
  6679  		ArtifactsURL  string    `json:"artifacts_url"`
  6680  		CancelURL     string    `json:"cancel_url"`
  6681  		RerunURL      string    `json:"rerun_url"`
  6682  		// PreviousAttemptURL interface{}   `json:"previous_attempt_url"`
  6683  		WorkflowURL string `json:"workflow_url"`
  6684  		HeadCommit  struct {
  6685  			ID        string    `json:"id"`
  6686  			TreeID    string    `json:"tree_id"`
  6687  			Message   string    `json:"message"`
  6688  			Timestamp time.Time `json:"timestamp"`
  6689  			Author    struct {
  6690  				Name  string `json:"name"`
  6691  				Email string `json:"email"`
  6692  			} `json:"author"`
  6693  			Committer struct {
  6694  				Name  string `json:"name"`
  6695  				Email string `json:"email"`
  6696  			} `json:"committer"`
  6697  		} `json:"head_commit"`
  6698  		Repository struct {
  6699  			ID       int64  `json:"id"`
  6700  			NodeID   string `json:"node_id"`
  6701  			Name     string `json:"name"`
  6702  			FullName string `json:"full_name"`
  6703  			Private  bool   `json:"private"`
  6704  			Owner    struct {
  6705  				Login             string `json:"login"`
  6706  				ID                int64  `json:"id"`
  6707  				NodeID            string `json:"node_id"`
  6708  				AvatarURL         string `json:"avatar_url"`
  6709  				GravatarID        string `json:"gravatar_id"`
  6710  				URL               string `json:"url"`
  6711  				HTMLURL           string `json:"html_url"`
  6712  				FollowersURL      string `json:"followers_url"`
  6713  				FollowingURL      string `json:"following_url"`
  6714  				GistsURL          string `json:"gists_url"`
  6715  				StarredURL        string `json:"starred_url"`
  6716  				SubscriptionsURL  string `json:"subscriptions_url"`
  6717  				OrganizationsURL  string `json:"organizations_url"`
  6718  				ReposURL          string `json:"repos_url"`
  6719  				EventsURL         string `json:"events_url"`
  6720  				ReceivedEventsURL string `json:"received_events_url"`
  6721  				Type              string `json:"type"`
  6722  				SiteAdmin         bool   `json:"site_admin"`
  6723  			} `json:"owner"`
  6724  			HTMLURL          string `json:"html_url"`
  6725  			Description      string `json:"description"`
  6726  			Fork             bool   `json:"fork"`
  6727  			URL              string `json:"url"`
  6728  			ForksURL         string `json:"forks_url"`
  6729  			KeysURL          string `json:"keys_url"`
  6730  			CollaboratorsURL string `json:"collaborators_url"`
  6731  			TeamsURL         string `json:"teams_url"`
  6732  			HooksURL         string `json:"hooks_url"`
  6733  			IssueEventsURL   string `json:"issue_events_url"`
  6734  			EventsURL        string `json:"events_url"`
  6735  			AssigneesURL     string `json:"assignees_url"`
  6736  			BranchesURL      string `json:"branches_url"`
  6737  			TagsURL          string `json:"tags_url"`
  6738  			BlobsURL         string `json:"blobs_url"`
  6739  			GitTagsURL       string `json:"git_tags_url"`
  6740  			GitRefsURL       string `json:"git_refs_url"`
  6741  			TreesURL         string `json:"trees_url"`
  6742  			StatusesURL      string `json:"statuses_url"`
  6743  			LanguagesURL     string `json:"languages_url"`
  6744  			StargazersURL    string `json:"stargazers_url"`
  6745  			ContributorsURL  string `json:"contributors_url"`
  6746  			SubscribersURL   string `json:"subscribers_url"`
  6747  			SubscriptionURL  string `json:"subscription_url"`
  6748  			CommitsURL       string `json:"commits_url"`
  6749  			GitCommitsURL    string `json:"git_commits_url"`
  6750  			CommentsURL      string `json:"comments_url"`
  6751  			IssueCommentURL  string `json:"issue_comment_url"`
  6752  			ContentsURL      string `json:"contents_url"`
  6753  			CompareURL       string `json:"compare_url"`
  6754  			MergesURL        string `json:"merges_url"`
  6755  			ArchiveURL       string `json:"archive_url"`
  6756  			DownloadsURL     string `json:"downloads_url"`
  6757  			IssuesURL        string `json:"issues_url"`
  6758  			PullsURL         string `json:"pulls_url"`
  6759  			MilestonesURL    string `json:"milestones_url"`
  6760  			NotificationsURL string `json:"notifications_url"`
  6761  			LabelsURL        string `json:"labels_url"`
  6762  			ReleasesURL      string `json:"releases_url"`
  6763  			DeploymentsURL   string `json:"deployments_url"`
  6764  		} `json:"repository"`
  6765  		HeadRepository struct {
  6766  			ID       int64  `json:"id"`
  6767  			NodeID   string `json:"node_id"`
  6768  			Name     string `json:"name"`
  6769  			FullName string `json:"full_name"`
  6770  			Private  bool   `json:"private"`
  6771  			Owner    struct {
  6772  				Login             string `json:"login"`
  6773  				ID                int64  `json:"id"`
  6774  				NodeID            string `json:"node_id"`
  6775  				AvatarURL         string `json:"avatar_url"`
  6776  				GravatarID        string `json:"gravatar_id"`
  6777  				URL               string `json:"url"`
  6778  				HTMLURL           string `json:"html_url"`
  6779  				FollowersURL      string `json:"followers_url"`
  6780  				FollowingURL      string `json:"following_url"`
  6781  				GistsURL          string `json:"gists_url"`
  6782  				StarredURL        string `json:"starred_url"`
  6783  				SubscriptionsURL  string `json:"subscriptions_url"`
  6784  				OrganizationsURL  string `json:"organizations_url"`
  6785  				ReposURL          string `json:"repos_url"`
  6786  				EventsURL         string `json:"events_url"`
  6787  				ReceivedEventsURL string `json:"received_events_url"`
  6788  				Type              string `json:"type"`
  6789  				SiteAdmin         bool   `json:"site_admin"`
  6790  			} `json:"owner"`
  6791  			HTMLURL          string `json:"html_url"`
  6792  			Description      string `json:"description"`
  6793  			Fork             bool   `json:"fork"`
  6794  			URL              string `json:"url"`
  6795  			ForksURL         string `json:"forks_url"`
  6796  			KeysURL          string `json:"keys_url"`
  6797  			CollaboratorsURL string `json:"collaborators_url"`
  6798  			TeamsURL         string `json:"teams_url"`
  6799  			HooksURL         string `json:"hooks_url"`
  6800  			IssueEventsURL   string `json:"issue_events_url"`
  6801  			EventsURL        string `json:"events_url"`
  6802  			AssigneesURL     string `json:"assignees_url"`
  6803  			BranchesURL      string `json:"branches_url"`
  6804  			TagsURL          string `json:"tags_url"`
  6805  			BlobsURL         string `json:"blobs_url"`
  6806  			GitTagsURL       string `json:"git_tags_url"`
  6807  			GitRefsURL       string `json:"git_refs_url"`
  6808  			TreesURL         string `json:"trees_url"`
  6809  			StatusesURL      string `json:"statuses_url"`
  6810  			LanguagesURL     string `json:"languages_url"`
  6811  			StargazersURL    string `json:"stargazers_url"`
  6812  			ContributorsURL  string `json:"contributors_url"`
  6813  			SubscribersURL   string `json:"subscribers_url"`
  6814  			SubscriptionURL  string `json:"subscription_url"`
  6815  			CommitsURL       string `json:"commits_url"`
  6816  			GitCommitsURL    string `json:"git_commits_url"`
  6817  			CommentsURL      string `json:"comments_url"`
  6818  			IssueCommentURL  string `json:"issue_comment_url"`
  6819  			ContentsURL      string `json:"contents_url"`
  6820  			CompareURL       string `json:"compare_url"`
  6821  			MergesURL        string `json:"merges_url"`
  6822  			ArchiveURL       string `json:"archive_url"`
  6823  			DownloadsURL     string `json:"downloads_url"`
  6824  			IssuesURL        string `json:"issues_url"`
  6825  			PullsURL         string `json:"pulls_url"`
  6826  			MilestonesURL    string `json:"milestones_url"`
  6827  			NotificationsURL string `json:"notifications_url"`
  6828  			LabelsURL        string `json:"labels_url"`
  6829  			ReleasesURL      string `json:"releases_url"`
  6830  			DeploymentsURL   string `json:"deployments_url"`
  6831  		} `json:"head_repository"`
  6832  	} `json:"workflow_run"`
  6833  	Workflow struct {
  6834  		ID        int64     `json:"id"`
  6835  		NodeID    string    `json:"node_id"`
  6836  		Name      string    `json:"name"`
  6837  		Path      string    `json:"path"`
  6838  		State     string    `json:"state"`
  6839  		CreatedAt time.Time `json:"created_at"`
  6840  		UpdatedAt time.Time `json:"updated_at"`
  6841  		URL       string    `json:"url"`
  6842  		HTMLURL   string    `json:"html_url"`
  6843  		BadgeURL  string    `json:"badge_url"`
  6844  	} `json:"workflow"`
  6845  	Repository struct {
  6846  		ID       int64  `json:"id"`
  6847  		NodeID   string `json:"node_id"`
  6848  		Name     string `json:"name"`
  6849  		FullName string `json:"full_name"`
  6850  		Private  bool   `json:"private"`
  6851  		Owner    struct {
  6852  			Login             string `json:"login"`
  6853  			ID                int64  `json:"id"`
  6854  			NodeID            string `json:"node_id"`
  6855  			AvatarURL         string `json:"avatar_url"`
  6856  			GravatarID        string `json:"gravatar_id"`
  6857  			URL               string `json:"url"`
  6858  			HTMLURL           string `json:"html_url"`
  6859  			FollowersURL      string `json:"followers_url"`
  6860  			FollowingURL      string `json:"following_url"`
  6861  			GistsURL          string `json:"gists_url"`
  6862  			StarredURL        string `json:"starred_url"`
  6863  			SubscriptionsURL  string `json:"subscriptions_url"`
  6864  			OrganizationsURL  string `json:"organizations_url"`
  6865  			ReposURL          string `json:"repos_url"`
  6866  			EventsURL         string `json:"events_url"`
  6867  			ReceivedEventsURL string `json:"received_events_url"`
  6868  			Type              string `json:"type"`
  6869  			SiteAdmin         bool   `json:"site_admin"`
  6870  		} `json:"owner"`
  6871  		HTMLURL          string    `json:"html_url"`
  6872  		Description      string    `json:"description"`
  6873  		Fork             bool      `json:"fork"`
  6874  		URL              string    `json:"url"`
  6875  		ForksURL         string    `json:"forks_url"`
  6876  		KeysURL          string    `json:"keys_url"`
  6877  		CollaboratorsURL string    `json:"collaborators_url"`
  6878  		TeamsURL         string    `json:"teams_url"`
  6879  		HooksURL         string    `json:"hooks_url"`
  6880  		IssueEventsURL   string    `json:"issue_events_url"`
  6881  		EventsURL        string    `json:"events_url"`
  6882  		AssigneesURL     string    `json:"assignees_url"`
  6883  		BranchesURL      string    `json:"branches_url"`
  6884  		TagsURL          string    `json:"tags_url"`
  6885  		BlobsURL         string    `json:"blobs_url"`
  6886  		GitTagsURL       string    `json:"git_tags_url"`
  6887  		GitRefsURL       string    `json:"git_refs_url"`
  6888  		TreesURL         string    `json:"trees_url"`
  6889  		StatusesURL      string    `json:"statuses_url"`
  6890  		LanguagesURL     string    `json:"languages_url"`
  6891  		StargazersURL    string    `json:"stargazers_url"`
  6892  		ContributorsURL  string    `json:"contributors_url"`
  6893  		SubscribersURL   string    `json:"subscribers_url"`
  6894  		SubscriptionURL  string    `json:"subscription_url"`
  6895  		CommitsURL       string    `json:"commits_url"`
  6896  		GitCommitsURL    string    `json:"git_commits_url"`
  6897  		CommentsURL      string    `json:"comments_url"`
  6898  		IssueCommentURL  string    `json:"issue_comment_url"`
  6899  		ContentsURL      string    `json:"contents_url"`
  6900  		CompareURL       string    `json:"compare_url"`
  6901  		MergesURL        string    `json:"merges_url"`
  6902  		ArchiveURL       string    `json:"archive_url"`
  6903  		DownloadsURL     string    `json:"downloads_url"`
  6904  		IssuesURL        string    `json:"issues_url"`
  6905  		PullsURL         string    `json:"pulls_url"`
  6906  		MilestonesURL    string    `json:"milestones_url"`
  6907  		NotificationsURL string    `json:"notifications_url"`
  6908  		LabelsURL        string    `json:"labels_url"`
  6909  		ReleasesURL      string    `json:"releases_url"`
  6910  		DeploymentsURL   string    `json:"deployments_url"`
  6911  		CreatedAt        time.Time `json:"created_at"`
  6912  		UpdatedAt        time.Time `json:"updated_at"`
  6913  		PushedAt         time.Time `json:"pushed_at"`
  6914  		GitURL           string    `json:"git_url"`
  6915  		SSHURL           string    `json:"ssh_url"`
  6916  		CloneURL         string    `json:"clone_url"`
  6917  		SvnURL           string    `json:"svn_url"`
  6918  		Homepage         *string   `json:"homepage"`
  6919  		Size             int64     `json:"size"`
  6920  		StargazersCount  int64     `json:"stargazers_count"`
  6921  		WatchersCount    int64     `json:"watchers_count"`
  6922  		Language         *string   `json:"language"`
  6923  		HasIssues        bool      `json:"has_issues"`
  6924  		HasProjects      bool      `json:"has_projects"`
  6925  		HasDownloads     bool      `json:"has_downloads"`
  6926  		HasWiki          bool      `json:"has_wiki"`
  6927  		HasPages         bool      `json:"has_pages"`
  6928  		ForksCount       int64     `json:"forks_count"`
  6929  		MirrorURL        *string   `json:"mirror_url"`
  6930  		Archived         bool      `json:"archived"`
  6931  		Disabled         bool      `json:"disabled"`
  6932  		OpenIssuesCount  int64     `json:"open_issues_count"`
  6933  		License          struct {
  6934  			Key    string `json:"key"`
  6935  			Name   string `json:"name"`
  6936  			SpdxID string `json:"spdx_id"`
  6937  			URL    string `json:"url"`
  6938  			NodeID string `json:"node_id"`
  6939  		} `json:"license"`
  6940  		AllowForking bool `json:"allow_forking"`
  6941  		IsTemplate   bool `json:"is_template"`
  6942  		// Topics        []interface{} `json:"topics"`
  6943  		Visibility    string `json:"visibility"`
  6944  		Forks         int64  `json:"forks"`
  6945  		OpenIssues    int64  `json:"open_issues"`
  6946  		Watchers      int64  `json:"watchers"`
  6947  		DefaultBranch string `json:"default_branch"`
  6948  	} `json:"repository"`
  6949  	Organization struct {
  6950  		Login            string `json:"login"`
  6951  		ID               int64  `json:"id"`
  6952  		NodeID           string `json:"node_id"`
  6953  		URL              string `json:"url"`
  6954  		ReposURL         string `json:"repos_url"`
  6955  		EventsURL        string `json:"events_url"`
  6956  		HooksURL         string `json:"hooks_url"`
  6957  		IssuesURL        string `json:"issues_url"`
  6958  		MembersURL       string `json:"members_url"`
  6959  		PublicMembersURL string `json:"public_members_url"`
  6960  		AvatarURL        string `json:"avatar_url"`
  6961  		Description      string `json:"description"`
  6962  	} `json:"organization"`
  6963  	Enterprise struct {
  6964  		ID        int64  `json:"id"`
  6965  		Slug      string `json:"slug"`
  6966  		Name      string `json:"name"`
  6967  		NodeID    string `json:"node_id"`
  6968  		AvatarURL string `json:"avatar_url"`
  6969  		// Description interface{} `json:"description"`
  6970  		// WebsiteURL  interface{} `json:"website_url"`
  6971  		HTMLURL   string    `json:"html_url"`
  6972  		CreatedAt time.Time `json:"created_at"`
  6973  		UpdatedAt time.Time `json:"updated_at"`
  6974  	} `json:"enterprise"`
  6975  	Sender struct {
  6976  		Login             string `json:"login"`
  6977  		ID                int64  `json:"id"`
  6978  		NodeID            string `json:"node_id"`
  6979  		AvatarURL         string `json:"avatar_url"`
  6980  		GravatarID        string `json:"gravatar_id"`
  6981  		URL               string `json:"url"`
  6982  		HTMLURL           string `json:"html_url"`
  6983  		FollowersURL      string `json:"followers_url"`
  6984  		FollowingURL      string `json:"following_url"`
  6985  		GistsURL          string `json:"gists_url"`
  6986  		StarredURL        string `json:"starred_url"`
  6987  		SubscriptionsURL  string `json:"subscriptions_url"`
  6988  		OrganizationsURL  string `json:"organizations_url"`
  6989  		ReposURL          string `json:"repos_url"`
  6990  		EventsURL         string `json:"events_url"`
  6991  		ReceivedEventsURL string `json:"received_events_url"`
  6992  		Type              string `json:"type"`
  6993  		SiteAdmin         bool   `json:"site_admin"`
  6994  	} `json:"sender"`
  6995  }
  6996  
  6997  // Assignee contains GitHub's assignee information
  6998  type Assignee struct {
  6999  	Login             string `json:"login"`
  7000  	ID                int64  `json:"id"`
  7001  	NodeID            string `json:"node_id"`
  7002  	AvatarURL         string `json:"avatar_url"`
  7003  	GravatarID        string `json:"gravatar_id"`
  7004  	URL               string `json:"url"`
  7005  	HTMLURL           string `json:"html_url"`
  7006  	FollowersURL      string `json:"followers_url"`
  7007  	FollowingURL      string `json:"following_url"`
  7008  	GistsURL          string `json:"gists_url"`
  7009  	StarredURL        string `json:"starred_url"`
  7010  	SubscriptionsURL  string `json:"subscriptions_url"`
  7011  	OrganizationsURL  string `json:"organizations_url"`
  7012  	ReposURL          string `json:"repos_url"`
  7013  	EventsURL         string `json:"events_url"`
  7014  	ReceivedEventsURL string `json:"received_events_url"`
  7015  	Type              string `json:"type"`
  7016  	SiteAdmin         bool   `json:"site_admin"`
  7017  }
  7018  
  7019  // Milestone contains GitHub's milestone information
  7020  type Milestone struct {
  7021  	URL         string `json:"url"`
  7022  	HTMLURL     string `json:"html_url"`
  7023  	LabelsURL   string `json:"labels_url"`
  7024  	ID          int64  `json:"id"`
  7025  	NodeID      string `json:"node_id"`
  7026  	Number      int64  `json:"number"`
  7027  	State       string `json:"state"`
  7028  	Title       string `json:"title"`
  7029  	Description string `json:"description"`
  7030  	Creator     struct {
  7031  		Login             string `json:"login"`
  7032  		ID                int64  `json:"id"`
  7033  		NodeID            string `json:"node_id"`
  7034  		AvatarURL         string `json:"avatar_url"`
  7035  		GravatarID        string `json:"gravatar_id"`
  7036  		URL               string `json:"url"`
  7037  		HTMLURL           string `json:"html_url"`
  7038  		FollowersURL      string `json:"followers_url"`
  7039  		FollowingURL      string `json:"following_url"`
  7040  		GistsURL          string `json:"gists_url"`
  7041  		StarredURL        string `json:"starred_url"`
  7042  		SubscriptionsURL  string `json:"subscriptions_url"`
  7043  		OrganizationsURL  string `json:"organizations_url"`
  7044  		ReposURL          string `json:"repos_url"`
  7045  		EventsURL         string `json:"events_url"`
  7046  		ReceivedEventsURL string `json:"received_events_url"`
  7047  		Type              string `json:"type"`
  7048  		SiteAdmin         bool   `json:"site_admin"`
  7049  	} `json:"creator"`
  7050  	OpenIssues   int64     `json:"open_issues"`
  7051  	ClosedIssues int64     `json:"closed_issues"`
  7052  	CreatedAt    time.Time `json:"created_at"`
  7053  	UpdatedAt    time.Time `json:"updated_at"`
  7054  	ClosedAt     time.Time `json:"closed_at"`
  7055  	DueOn        time.Time `json:"due_on"`
  7056  }
  7057  
  7058  // MergedBy contains GitHub's merged-by information
  7059  type MergedBy struct {
  7060  	Login             string `json:"login"`
  7061  	ID                int64  `json:"id"`
  7062  	NodeID            string `json:"node_id"`
  7063  	AvatarURL         string `json:"avatar_url"`
  7064  	GravatarID        string `json:"gravatar_id"`
  7065  	URL               string `json:"url"`
  7066  	HTMLURL           string `json:"html_url"`
  7067  	FollowersURL      string `json:"followers_url"`
  7068  	FollowingURL      string `json:"following_url"`
  7069  	GistsURL          string `json:"gists_url"`
  7070  	StarredURL        string `json:"starred_url"`
  7071  	SubscriptionsURL  string `json:"subscriptions_url"`
  7072  	OrganizationsURL  string `json:"organizations_url"`
  7073  	ReposURL          string `json:"repos_url"`
  7074  	EventsURL         string `json:"events_url"`
  7075  	ReceivedEventsURL string `json:"received_events_url"`
  7076  	Type              string `json:"type"`
  7077  	SiteAdmin         bool   `json:"site_admin"`
  7078  }
  7079  
  7080  // Asset contains GitHub's asset information
  7081  type Asset struct {
  7082  	URL                string    `json:"url"`
  7083  	BrowserDownloadURL string    `json:"browser_download_url"`
  7084  	ID                 int64     `json:"id"`
  7085  	NodeID             string    `json:"node_id"`
  7086  	Name               string    `json:"name"`
  7087  	Label              string    `json:"label"`
  7088  	State              string    `json:"state"`
  7089  	ContentType        string    `json:"content_type"`
  7090  	Size               int64     `json:"size"`
  7091  	DownloadCount      int64     `json:"download_count"`
  7092  	CreatedAt          time.Time `json:"created_at"`
  7093  	UpdatedAt          time.Time `json:"updated_at"`
  7094  	Uploader           struct {
  7095  		Login             string `json:"login"`
  7096  		ID                int64  `json:"id"`
  7097  		NodeID            string `json:"node_id"`
  7098  		AvatarURL         string `json:"avatar_url"`
  7099  		GravatarID        string `json:"gravatar_id"`
  7100  		URL               string `json:"url"`
  7101  		HTMLURL           string `json:"html_url"`
  7102  		FollowersURL      string `json:"followers_url"`
  7103  		FollowingURL      string `json:"following_url"`
  7104  		GistsURL          string `json:"gists_url"`
  7105  		StarredURL        string `json:"starred_url"`
  7106  		SubscriptionsURL  string `json:"subscriptions_url"`
  7107  		OrganizationsURL  string `json:"organizations_url"`
  7108  		ReposURL          string `json:"repos_url"`
  7109  		EventsURL         string `json:"events_url"`
  7110  		ReceivedEventsURL string `json:"received_events_url"`
  7111  		Type              string `json:"type"`
  7112  		SiteAdmin         bool   `json:"site_admin"`
  7113  	} `json:"uploader"`
  7114  }
  7115  
  7116  // Parent contains GitHub's parent information
  7117  type Parent struct {
  7118  	URL string `json:"url"`
  7119  	Sha string `json:"sha"`
  7120  }
  7121  
  7122  // Label contains Issue's Label information
  7123  type Label struct {
  7124  	ID      int64  `json:"id"`
  7125  	NodeID  string `json:"node_id"`
  7126  	URL     string `json:"url"`
  7127  	Name    string `json:"name"`
  7128  	Color   string `json:"color"`
  7129  	Default bool   `json:"default"`
  7130  }
  7131  
  7132  // Team contains GitHub's Team information
  7133  type Team struct {
  7134  	Name            string `json:"name"`
  7135  	ID              int64  `json:"id"`
  7136  	NodeID          string `json:"node_id"`
  7137  	Slug            string `json:"slug"`
  7138  	Permission      string `json:"permission"`
  7139  	URL             string `json:"url"`
  7140  	MembersURL      string `json:"members_url"`
  7141  	RepositoriesURL string `json:"repositories_url"`
  7142  	Parent          *Team  `json:"parent,omitempty"`
  7143  }
  7144  
  7145  // Step contains workflow_job step information
  7146  type Step struct {
  7147  	Name        string    `json:"name"`
  7148  	Status      string    `json:"status"`
  7149  	Conclusion  string    `json:"conclusion"`
  7150  	ID          int64     `json:"id"`
  7151  	StartedAt   time.Time `json:"started_at"`
  7152  	CompletedAt time.Time `json:"completed_at"`
  7153  }
  7154  
  7155  // GitHubAppAuthorizationPayload contains revoke action payload
  7156  type GitHubAppAuthorizationPayload struct {
  7157  	Action string `json:"action"`
  7158  	Sender struct {
  7159  		Login             string `json:"login"`
  7160  		ID                int64  `json:"id"`
  7161  		NodeID            string `json:"node_id"`
  7162  		AvatarURL         string `json:"avatar_url"`
  7163  		GravatarID        string `json:"gravatar_id"`
  7164  		URL               string `json:"url"`
  7165  		HTMLURL           string `json:"html_url"`
  7166  		FollowersURL      string `json:"followers_url"`
  7167  		FollowingURL      string `json:"following_url"`
  7168  		GistsURL          string `json:"gists_url"`
  7169  		StarredURL        string `json:"starred_url"`
  7170  		SubscriptionsURL  string `json:"subscriptions_url"`
  7171  		OrganizationsURL  string `json:"orranizations_url"`
  7172  		ReposURL          string `json:"repos_url"`
  7173  		EventsURL         string `json:"events_url"`
  7174  		ReceivedEventsURL string `json:"received_events_url"`
  7175  		Type              string `json:"type"`
  7176  		SiteAdmin         bool   `json:"site_admin"`
  7177  	} `json:"sender"`
  7178  }