diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,14 @@
+## Changes for 0.27
+
+- Add vector of SimpleTeam in "requested_teams" field of PullRequest
+  [#453](https://github.com/phadej/github/pull/453)
+- Add endpoint to create gist
+  [#455](https://github.com/phadej/github/pull/455)
+- Update RepoWebhookEvent
+  [#461](https://github.com/phadej/github/pull/461)
+- PullRequest Reviews may not have submitted_at field 
+  [#450](https://github.com/phadej/github/pull/450)
+
 ## Changes for 0.26
 
 - Generalize PagedQuery to allow its reuse by preview github APIs
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -42,7 +42,7 @@
 Each module lines up with the hierarchy of
 [documentation from the Github API](http://developer.github.com/v3/).
 
-Request functions (ending with `R`) construct a data type with can be executed
+Request functions (ending with `R`) construct a data type which can be executed
 in `IO` by `executeRequest` functions. They are all listed in the root `GitHub`
 module.
 
diff --git a/fixtures/pull-request-approved-review.json b/fixtures/pull-request-approved-review.json
new file mode 100644
--- /dev/null
+++ b/fixtures/pull-request-approved-review.json
@@ -0,0 +1,38 @@
+{
+  "id": 80,
+  "node_id": "MDE3OlB1bGxSZXF1ZXN0UmV2aWV3ODA=",
+  "user": {
+    "login": "octocat",
+    "id": 1,
+    "node_id": "MDQ6VXNlcjE=",
+    "avatar_url": "https://github.com/images/error/octocat_happy.gif",
+    "gravatar_id": "",
+    "url": "https://api.github.com/users/octocat",
+    "html_url": "https://github.com/octocat",
+    "followers_url": "https://api.github.com/users/octocat/followers",
+    "following_url": "https://api.github.com/users/octocat/following{/other_user}",
+    "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}",
+    "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}",
+    "subscriptions_url": "https://api.github.com/users/octocat/subscriptions",
+    "organizations_url": "https://api.github.com/users/octocat/orgs",
+    "repos_url": "https://api.github.com/users/octocat/repos",
+    "events_url": "https://api.github.com/users/octocat/events{/privacy}",
+    "received_events_url": "https://api.github.com/users/octocat/received_events",
+    "type": "User",
+    "site_admin": false
+  },
+  "body": "Here is the body for the review.",
+  "state": "APPROVED",
+  "html_url": "https://github.com/octocat/Hello-World/pull/12#pullrequestreview-80",
+  "pull_request_url": "https://api.github.com/repos/octocat/Hello-World/pulls/12",
+  "_links": {
+    "html": {
+      "href": "https://github.com/octocat/Hello-World/pull/12#pullrequestreview-80"
+    },
+    "pull_request": {
+      "href": "https://api.github.com/repos/octocat/Hello-World/pulls/12"
+    }
+  },
+  "submitted_at": "2019-11-17T17:43:43Z",
+  "commit_id": "ecdd80bb57125d7ba9641ffaa4d7d2c19d3f3091"
+}
diff --git a/fixtures/pull-request-pending-review.json b/fixtures/pull-request-pending-review.json
new file mode 100644
--- /dev/null
+++ b/fixtures/pull-request-pending-review.json
@@ -0,0 +1,37 @@
+{
+  "id": 80,
+  "node_id": "MDE3OlB1bGxSZXF1ZXN0UmV2aWV3ODA=",
+  "user": {
+    "login": "octocat",
+    "id": 1,
+    "node_id": "MDQ6VXNlcjE=",
+    "avatar_url": "https://github.com/images/error/octocat_happy.gif",
+    "gravatar_id": "",
+    "url": "https://api.github.com/users/octocat",
+    "html_url": "https://github.com/octocat",
+    "followers_url": "https://api.github.com/users/octocat/followers",
+    "following_url": "https://api.github.com/users/octocat/following{/other_user}",
+    "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}",
+    "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}",
+    "subscriptions_url": "https://api.github.com/users/octocat/subscriptions",
+    "organizations_url": "https://api.github.com/users/octocat/orgs",
+    "repos_url": "https://api.github.com/users/octocat/repos",
+    "events_url": "https://api.github.com/users/octocat/events{/privacy}",
+    "received_events_url": "https://api.github.com/users/octocat/received_events",
+    "type": "User",
+    "site_admin": false
+  },
+  "body": "Here is the body for the review.",
+  "state": "PENDING",
+  "html_url": "https://github.com/octocat/Hello-World/pull/12#pullrequestreview-80",
+  "pull_request_url": "https://api.github.com/repos/octocat/Hello-World/pulls/12",
+  "_links": {
+    "html": {
+      "href": "https://github.com/octocat/Hello-World/pull/12#pullrequestreview-80"
+    },
+    "pull_request": {
+      "href": "https://api.github.com/repos/octocat/Hello-World/pulls/12"
+    }
+  },
+  "commit_id": "ecdd80bb57125d7ba9641ffaa4d7d2c19d3f3091"
+}
diff --git a/fixtures/pull-request-team-review-requested.json b/fixtures/pull-request-team-review-requested.json
new file mode 100644
--- /dev/null
+++ b/fixtures/pull-request-team-review-requested.json
@@ -0,0 +1,362 @@
+{
+  "url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/pulls/910",
+  "id": 529597962,
+  "node_id": "MDExOlB1bGxSZXF1ZXN0NTI5NTk3OTYy",
+  "html_url": "https://github.com/tahoe-lafs/tahoe-lafs/pull/910",
+  "diff_url": "https://github.com/tahoe-lafs/tahoe-lafs/pull/910.diff",
+  "patch_url": "https://github.com/tahoe-lafs/tahoe-lafs/pull/910.patch",
+  "issue_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/issues/910",
+  "number": 910,
+  "state": "open",
+  "locked": false,
+  "title": "Fix NodeMaker's use of the WeakValueDictionary",
+  "user": {
+    "login": "exarkun",
+    "id": 254565,
+    "node_id": "MDQ6VXNlcjI1NDU2NQ==",
+    "avatar_url": "https://avatars1.githubusercontent.com/u/254565?v=4",
+    "gravatar_id": "",
+    "url": "https://api.github.com/users/exarkun",
+    "html_url": "https://github.com/exarkun",
+    "followers_url": "https://api.github.com/users/exarkun/followers",
+    "following_url": "https://api.github.com/users/exarkun/following{/other_user}",
+    "gists_url": "https://api.github.com/users/exarkun/gists{/gist_id}",
+    "starred_url": "https://api.github.com/users/exarkun/starred{/owner}{/repo}",
+    "subscriptions_url": "https://api.github.com/users/exarkun/subscriptions",
+    "organizations_url": "https://api.github.com/users/exarkun/orgs",
+    "repos_url": "https://api.github.com/users/exarkun/repos",
+    "events_url": "https://api.github.com/users/exarkun/events{/privacy}",
+    "received_events_url": "https://api.github.com/users/exarkun/received_events",
+    "type": "User",
+    "site_admin": false
+  },
+  "body": "https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3539",
+  "created_at": "2020-11-30T14:46:37Z",
+  "updated_at": "2020-12-02T17:23:41Z",
+  "closed_at": null,
+  "merged_at": null,
+  "merge_commit_sha": "3c97064ee5f71357c88f7940a91da8859641c2c6",
+  "assignee": null,
+  "assignees": [
+
+  ],
+  "requested_reviewers": [
+
+  ],
+  "requested_teams": [
+    {
+      "name": "Tahoe Committers",
+      "id": 121616,
+      "node_id": "MDQ6VGVhbTEyMTYxNg==",
+      "slug": "tahoe-committers",
+      "description": null,
+      "privacy": "closed",
+      "url": "https://api.github.com/organizations/1156454/team/121616",
+      "html_url": "https://github.com/orgs/tahoe-lafs/teams/tahoe-committers",
+      "members_url": "https://api.github.com/organizations/1156454/team/121616/members{/member}",
+      "repositories_url": "https://api.github.com/organizations/1156454/team/121616/repos",
+      "permission": "push",
+      "parent": null
+    }
+  ],
+  "labels": [
+
+  ],
+  "milestone": null,
+  "draft": false,
+  "commits_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/pulls/910/commits",
+  "review_comments_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/pulls/910/comments",
+  "review_comment_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/pulls/comments{/number}",
+  "comments_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/issues/910/comments",
+  "statuses_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/statuses/ef2f7e61364c6a3187d2ab4859adfc4031213bdd",
+  "head": {
+    "label": "tahoe-lafs:3539.nodemaker-weakrefdict",
+    "ref": "3539.nodemaker-weakrefdict",
+    "sha": "ef2f7e61364c6a3187d2ab4859adfc4031213bdd",
+    "user": {
+      "login": "tahoe-lafs",
+      "id": 1156454,
+      "node_id": "MDEyOk9yZ2FuaXphdGlvbjExNTY0NTQ=",
+      "avatar_url": "https://avatars1.githubusercontent.com/u/1156454?v=4",
+      "gravatar_id": "",
+      "url": "https://api.github.com/users/tahoe-lafs",
+      "html_url": "https://github.com/tahoe-lafs",
+      "followers_url": "https://api.github.com/users/tahoe-lafs/followers",
+      "following_url": "https://api.github.com/users/tahoe-lafs/following{/other_user}",
+      "gists_url": "https://api.github.com/users/tahoe-lafs/gists{/gist_id}",
+      "starred_url": "https://api.github.com/users/tahoe-lafs/starred{/owner}{/repo}",
+      "subscriptions_url": "https://api.github.com/users/tahoe-lafs/subscriptions",
+      "organizations_url": "https://api.github.com/users/tahoe-lafs/orgs",
+      "repos_url": "https://api.github.com/users/tahoe-lafs/repos",
+      "events_url": "https://api.github.com/users/tahoe-lafs/events{/privacy}",
+      "received_events_url": "https://api.github.com/users/tahoe-lafs/received_events",
+      "type": "Organization",
+      "site_admin": false
+    },
+    "repo": {
+      "id": 3007569,
+      "node_id": "MDEwOlJlcG9zaXRvcnkzMDA3NTY5",
+      "name": "tahoe-lafs",
+      "full_name": "tahoe-lafs/tahoe-lafs",
+      "private": false,
+      "owner": {
+        "login": "tahoe-lafs",
+        "id": 1156454,
+        "node_id": "MDEyOk9yZ2FuaXphdGlvbjExNTY0NTQ=",
+        "avatar_url": "https://avatars1.githubusercontent.com/u/1156454?v=4",
+        "gravatar_id": "",
+        "url": "https://api.github.com/users/tahoe-lafs",
+        "html_url": "https://github.com/tahoe-lafs",
+        "followers_url": "https://api.github.com/users/tahoe-lafs/followers",
+        "following_url": "https://api.github.com/users/tahoe-lafs/following{/other_user}",
+        "gists_url": "https://api.github.com/users/tahoe-lafs/gists{/gist_id}",
+        "starred_url": "https://api.github.com/users/tahoe-lafs/starred{/owner}{/repo}",
+        "subscriptions_url": "https://api.github.com/users/tahoe-lafs/subscriptions",
+        "organizations_url": "https://api.github.com/users/tahoe-lafs/orgs",
+        "repos_url": "https://api.github.com/users/tahoe-lafs/repos",
+        "events_url": "https://api.github.com/users/tahoe-lafs/events{/privacy}",
+        "received_events_url": "https://api.github.com/users/tahoe-lafs/received_events",
+        "type": "Organization",
+        "site_admin": false
+      },
+      "html_url": "https://github.com/tahoe-lafs/tahoe-lafs",
+      "description": "The Tahoe-LAFS decentralized secure filesystem.",
+      "fork": false,
+      "url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs",
+      "forks_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/forks",
+      "keys_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/keys{/key_id}",
+      "collaborators_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/collaborators{/collaborator}",
+      "teams_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/teams",
+      "hooks_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/hooks",
+      "issue_events_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/issues/events{/number}",
+      "events_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/events",
+      "assignees_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/assignees{/user}",
+      "branches_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/branches{/branch}",
+      "tags_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/tags",
+      "blobs_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/git/blobs{/sha}",
+      "git_tags_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/git/tags{/sha}",
+      "git_refs_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/git/refs{/sha}",
+      "trees_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/git/trees{/sha}",
+      "statuses_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/statuses/{sha}",
+      "languages_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/languages",
+      "stargazers_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/stargazers",
+      "contributors_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/contributors",
+      "subscribers_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/subscribers",
+      "subscription_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/subscription",
+      "commits_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/commits{/sha}",
+      "git_commits_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/git/commits{/sha}",
+      "comments_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/comments{/number}",
+      "issue_comment_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/issues/comments{/number}",
+      "contents_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/contents/{+path}",
+      "compare_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/compare/{base}...{head}",
+      "merges_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/merges",
+      "archive_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/{archive_format}{/ref}",
+      "downloads_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/downloads",
+      "issues_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/issues{/number}",
+      "pulls_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/pulls{/number}",
+      "milestones_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/milestones{/number}",
+      "notifications_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/notifications{?since,all,participating}",
+      "labels_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/labels{/name}",
+      "releases_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/releases{/id}",
+      "deployments_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/deployments",
+      "created_at": "2011-12-18T19:33:55Z",
+      "updated_at": "2020-12-02T20:24:23Z",
+      "pushed_at": "2020-12-02T20:27:05Z",
+      "git_url": "git://github.com/tahoe-lafs/tahoe-lafs.git",
+      "ssh_url": "git@github.com:tahoe-lafs/tahoe-lafs.git",
+      "clone_url": "https://github.com/tahoe-lafs/tahoe-lafs.git",
+      "svn_url": "https://github.com/tahoe-lafs/tahoe-lafs",
+      "homepage": "https://tahoe-lafs.org/",
+      "size": 73606,
+      "stargazers_count": 1018,
+      "watchers_count": 1018,
+      "language": "Python",
+      "has_issues": false,
+      "has_projects": false,
+      "has_downloads": true,
+      "has_wiki": false,
+      "has_pages": false,
+      "forks_count": 236,
+      "mirror_url": null,
+      "archived": false,
+      "disabled": false,
+      "open_issues_count": 21,
+      "license": {
+        "key": "other",
+        "name": "Other",
+        "spdx_id": "NOASSERTION",
+        "url": null,
+        "node_id": "MDc6TGljZW5zZTA="
+      },
+      "forks": 236,
+      "open_issues": 21,
+      "watchers": 1018,
+      "default_branch": "master"
+    }
+  },
+  "base": {
+    "label": "tahoe-lafs:master",
+    "ref": "master",
+    "sha": "fba386cb8ee2b48a34c0d954b5c6b5b080d3234e",
+    "user": {
+      "login": "tahoe-lafs",
+      "id": 1156454,
+      "node_id": "MDEyOk9yZ2FuaXphdGlvbjExNTY0NTQ=",
+      "avatar_url": "https://avatars1.githubusercontent.com/u/1156454?v=4",
+      "gravatar_id": "",
+      "url": "https://api.github.com/users/tahoe-lafs",
+      "html_url": "https://github.com/tahoe-lafs",
+      "followers_url": "https://api.github.com/users/tahoe-lafs/followers",
+      "following_url": "https://api.github.com/users/tahoe-lafs/following{/other_user}",
+      "gists_url": "https://api.github.com/users/tahoe-lafs/gists{/gist_id}",
+      "starred_url": "https://api.github.com/users/tahoe-lafs/starred{/owner}{/repo}",
+      "subscriptions_url": "https://api.github.com/users/tahoe-lafs/subscriptions",
+      "organizations_url": "https://api.github.com/users/tahoe-lafs/orgs",
+      "repos_url": "https://api.github.com/users/tahoe-lafs/repos",
+      "events_url": "https://api.github.com/users/tahoe-lafs/events{/privacy}",
+      "received_events_url": "https://api.github.com/users/tahoe-lafs/received_events",
+      "type": "Organization",
+      "site_admin": false
+    },
+    "repo": {
+      "id": 3007569,
+      "node_id": "MDEwOlJlcG9zaXRvcnkzMDA3NTY5",
+      "name": "tahoe-lafs",
+      "full_name": "tahoe-lafs/tahoe-lafs",
+      "private": false,
+      "owner": {
+        "login": "tahoe-lafs",
+        "id": 1156454,
+        "node_id": "MDEyOk9yZ2FuaXphdGlvbjExNTY0NTQ=",
+        "avatar_url": "https://avatars1.githubusercontent.com/u/1156454?v=4",
+        "gravatar_id": "",
+        "url": "https://api.github.com/users/tahoe-lafs",
+        "html_url": "https://github.com/tahoe-lafs",
+        "followers_url": "https://api.github.com/users/tahoe-lafs/followers",
+        "following_url": "https://api.github.com/users/tahoe-lafs/following{/other_user}",
+        "gists_url": "https://api.github.com/users/tahoe-lafs/gists{/gist_id}",
+        "starred_url": "https://api.github.com/users/tahoe-lafs/starred{/owner}{/repo}",
+        "subscriptions_url": "https://api.github.com/users/tahoe-lafs/subscriptions",
+        "organizations_url": "https://api.github.com/users/tahoe-lafs/orgs",
+        "repos_url": "https://api.github.com/users/tahoe-lafs/repos",
+        "events_url": "https://api.github.com/users/tahoe-lafs/events{/privacy}",
+        "received_events_url": "https://api.github.com/users/tahoe-lafs/received_events",
+        "type": "Organization",
+        "site_admin": false
+      },
+      "html_url": "https://github.com/tahoe-lafs/tahoe-lafs",
+      "description": "The Tahoe-LAFS decentralized secure filesystem.",
+      "fork": false,
+      "url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs",
+      "forks_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/forks",
+      "keys_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/keys{/key_id}",
+      "collaborators_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/collaborators{/collaborator}",
+      "teams_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/teams",
+      "hooks_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/hooks",
+      "issue_events_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/issues/events{/number}",
+      "events_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/events",
+      "assignees_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/assignees{/user}",
+      "branches_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/branches{/branch}",
+      "tags_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/tags",
+      "blobs_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/git/blobs{/sha}",
+      "git_tags_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/git/tags{/sha}",
+      "git_refs_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/git/refs{/sha}",
+      "trees_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/git/trees{/sha}",
+      "statuses_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/statuses/{sha}",
+      "languages_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/languages",
+      "stargazers_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/stargazers",
+      "contributors_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/contributors",
+      "subscribers_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/subscribers",
+      "subscription_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/subscription",
+      "commits_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/commits{/sha}",
+      "git_commits_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/git/commits{/sha}",
+      "comments_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/comments{/number}",
+      "issue_comment_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/issues/comments{/number}",
+      "contents_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/contents/{+path}",
+      "compare_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/compare/{base}...{head}",
+      "merges_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/merges",
+      "archive_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/{archive_format}{/ref}",
+      "downloads_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/downloads",
+      "issues_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/issues{/number}",
+      "pulls_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/pulls{/number}",
+      "milestones_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/milestones{/number}",
+      "notifications_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/notifications{?since,all,participating}",
+      "labels_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/labels{/name}",
+      "releases_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/releases{/id}",
+      "deployments_url": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/deployments",
+      "created_at": "2011-12-18T19:33:55Z",
+      "updated_at": "2020-12-02T20:24:23Z",
+      "pushed_at": "2020-12-02T20:27:05Z",
+      "git_url": "git://github.com/tahoe-lafs/tahoe-lafs.git",
+      "ssh_url": "git@github.com:tahoe-lafs/tahoe-lafs.git",
+      "clone_url": "https://github.com/tahoe-lafs/tahoe-lafs.git",
+      "svn_url": "https://github.com/tahoe-lafs/tahoe-lafs",
+      "homepage": "https://tahoe-lafs.org/",
+      "size": 73606,
+      "stargazers_count": 1018,
+      "watchers_count": 1018,
+      "language": "Python",
+      "has_issues": false,
+      "has_projects": false,
+      "has_downloads": true,
+      "has_wiki": false,
+      "has_pages": false,
+      "forks_count": 236,
+      "mirror_url": null,
+      "archived": false,
+      "disabled": false,
+      "open_issues_count": 21,
+      "license": {
+        "key": "other",
+        "name": "Other",
+        "spdx_id": "NOASSERTION",
+        "url": null,
+        "node_id": "MDc6TGljZW5zZTA="
+      },
+      "forks": 236,
+      "open_issues": 21,
+      "watchers": 1018,
+      "default_branch": "master"
+    }
+  },
+  "_links": {
+    "self": {
+      "href": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/pulls/910"
+    },
+    "html": {
+      "href": "https://github.com/tahoe-lafs/tahoe-lafs/pull/910"
+    },
+    "issue": {
+      "href": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/issues/910"
+    },
+    "comments": {
+      "href": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/issues/910/comments"
+    },
+    "review_comments": {
+      "href": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/pulls/910/comments"
+    },
+    "review_comment": {
+      "href": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/pulls/comments{/number}"
+    },
+    "commits": {
+      "href": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/pulls/910/commits"
+    },
+    "statuses": {
+      "href": "https://api.github.com/repos/tahoe-lafs/tahoe-lafs/statuses/ef2f7e61364c6a3187d2ab4859adfc4031213bdd"
+    }
+  },
+  "author_association": "MEMBER",
+  "active_lock_reason": null,
+  "merged": false,
+  "mergeable": true,
+  "rebaseable": true,
+  "mergeable_state": "clean",
+  "merged_by": null,
+  "comments": 1,
+  "review_comments": 0,
+  "maintainer_can_modify": false,
+  "commits": 5,
+  "additions": 223,
+  "deletions": 4,
+  "changed_files": 5
+}
diff --git a/github.cabal b/github.cabal
--- a/github.cabal
+++ b/github.cabal
@@ -1,6 +1,6 @@
 cabal-version:      >=1.10
 name:               github
-version:            0.26
+version:            0.27
 synopsis:           Access to the GitHub API, v3.
 category:           Network
 description:
@@ -27,7 +27,7 @@
 homepage:           https://github.com/phadej/github
 build-type:         Simple
 copyright:
-  Copyright 2012-2013 Mike Burns, Copyright 2013-2015 John Wiegley, Copyright 2016-2019 Oleg Grenrus
+  Copyright 2012-2013 Mike Burns, Copyright 2013-2015 John Wiegley, Copyright 2016-2021 Oleg Grenrus
 
 tested-with:
   GHC ==7.8.4
@@ -36,20 +36,14 @@
    || ==8.2.2
    || ==8.4.4
    || ==8.6.5
-   || ==8.8.3
-   || ==8.10.1
+   || ==8.8.4
+   || ==8.10.4
+   || ==9.0.1
 
 extra-source-files:
   README.md
   CHANGELOG.md
-  fixtures/issue-search.json
-  fixtures/list-teams.json
-  fixtures/members-list.json
-  fixtures/pull-request-opened.json
-  fixtures/pull-request-review-requested.json
-  fixtures/user-organizations.json
-  fixtures/user.json
-  fixtures/user-bot.json
+  fixtures/*.json
 
 source-repository head
   type:     git
@@ -164,7 +158,7 @@
 
   -- Packages bundles with GHC, mtl and text are also here
   build-depends:
-      base          >=4.7      && <4.15
+      base          >=4.7      && <4.16
     , binary        >=0.7.1.0  && <0.11
     , bytestring    >=0.10.4.0 && <0.11
     , containers    >=0.5.5.1  && <0.7
@@ -176,21 +170,21 @@
 
   -- other packages
   build-depends:
-      aeson                 >=1.4.0.0    && <1.6
-    , base-compat           >=0.11.1     && <0.12
-    , base16-bytestring     >=0.1.1.6    && <0.2
+      aeson                 >=1.4.0.0    && <1.6 || >=2.0.1.0 && <2.1
+    , base-compat           >=0.11.1     && <0.13
+    , base16-bytestring     >=0.1.1.6    && <1.1
     , binary-instances      >=1          && <1.1
     , cryptohash-sha1       >=0.11.100.1 && <0.12
     , deepseq-generics      >=0.2.0.0    && <0.3
     , exceptions            >=0.10.2     && <0.11
     , hashable              >=1.2.7.0    && <1.4
     , http-client           >=0.5.12     && <0.8
-    , http-link-header      >=1.0.3.1    && <1.1
+    , http-link-header      >=1.0.3.1    && <1.3
     , http-types            >=0.12.3     && <0.13
     , iso8601-time          >=0.1.5      && <0.2
     , network-uri           >=2.6.1.0    && <2.7
     , tagged                >=0.8.5      && <0.9
-    , transformers-compat   >=0.6.5      && <0.7
+    , transformers-compat   >=0.6.5      && <0.8
     , unordered-containers  >=0.2.10.0   && <0.3
     , vector                >=0.12.0.1   && <0.13
     , vector-instances      >=3.4        && <3.5
@@ -229,6 +223,7 @@
     GitHub.RateLimitSpec
     GitHub.ReleasesSpec
     GitHub.ReposSpec
+    GitHub.ReviewDecodeSpec
     GitHub.SearchSpec
     GitHub.UsersSpec
 
diff --git a/spec/GitHub/PullRequestsSpec.hs b/spec/GitHub/PullRequestsSpec.hs
--- a/spec/GitHub/PullRequestsSpec.hs
+++ b/spec/GitHub/PullRequestsSpec.hs
@@ -65,6 +65,13 @@
             V.length (GH.pullRequestRequestedReviewers pullRequestReviewRequested)
                 `shouldBe` 1
 
+        it "decodes a pull request 'team_requested' payload" $ do
+          V.length (GH.simplePullRequestRequestedTeamReviewers simplePullRequestTeamReviewRequested)
+                `shouldBe` 1
+
+          V.length (GH.pullRequestRequestedTeamReviewers pullRequestTeamReviewRequested)
+                `shouldBe` 1
+
     describe "checking if a pull request is merged" $ do
         it "works" $ withAuth $ \auth -> do
             b <- GH.executeRequest auth $ GH.isPullRequestMergedR "phadej" "github" (GH.IssueNumber 14)
@@ -97,15 +104,26 @@
     simplePullRequestReviewRequested =
         fromRightS (eitherDecodeStrict prReviewRequestedPayload)
 
+    simplePullRequestTeamReviewRequested :: GH.SimplePullRequest
+    simplePullRequestTeamReviewRequested =
+        fromRightS (eitherDecodeStrict prTeamReviewRequestedPayload)
+
     pullRequestReviewRequested :: GH.PullRequest
     pullRequestReviewRequested =
         fromRightS (eitherDecodeStrict prReviewRequestedPayload)
 
+    pullRequestTeamReviewRequested :: GH.PullRequest
+    pullRequestTeamReviewRequested =
+        fromRightS (eitherDecodeStrict prTeamReviewRequestedPayload)
+
     prOpenedPayload :: ByteString
     prOpenedPayload = $(embedFile "fixtures/pull-request-opened.json")
 
     prReviewRequestedPayload :: ByteString
     prReviewRequestedPayload = $(embedFile "fixtures/pull-request-review-requested.json")
+
+    prTeamReviewRequestedPayload :: ByteString
+    prTeamReviewRequestedPayload = $(embedFile "fixtures/pull-request-team-review-requested.json")
 
 -------------------------------------------------------------------------------
 -- Draft Pull Requests
diff --git a/spec/GitHub/ReviewDecodeSpec.hs b/spec/GitHub/ReviewDecodeSpec.hs
new file mode 100644
--- /dev/null
+++ b/spec/GitHub/ReviewDecodeSpec.hs
@@ -0,0 +1,25 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE TemplateHaskell   #-}
+module GitHub.ReviewDecodeSpec where
+
+import Data.Aeson         (eitherDecodeStrict)
+import Data.Either.Compat (isRight)
+import Data.FileEmbed     (embedFile)
+import Test.Hspec
+       (Spec, describe, it, shouldSatisfy)
+
+import GitHub.Data (Review)
+
+spec :: Spec
+spec = do
+  describe "PENDING state" $ do
+    -- https://docs.github.com/en/rest/reference/pulls#create-a-review-for-a-pull-request
+    -- > Pull request reviews created in the PENDING state do not include the submitted_at property in the response.
+    it "decodes review when submitted_at is missing" $ do
+      let reviewInfo = eitherDecodeStrict $(embedFile "fixtures/pull-request-pending-review.json") :: Either String Review
+      reviewInfo `shouldSatisfy` isRight
+
+  describe "Other states" $ do
+    it "decodes review" $ do
+      let reviewInfo = eitherDecodeStrict $(embedFile "fixtures/pull-request-approved-review.json") :: Either String Review
+      reviewInfo `shouldSatisfy` isRight
diff --git a/src/GitHub.hs b/src/GitHub.hs
--- a/src/GitHub.hs
+++ b/src/GitHub.hs
@@ -62,7 +62,6 @@
     -- Missing endpoints:
     --
     -- * Query a specific revision of a gist
-    -- * Create a gist
     -- * Edit a gist
     -- * List gist commits
     -- * Check if a gist is starred
@@ -70,6 +69,7 @@
     -- * List gist forks
     gistsR,
     gistR,
+    createGistR,
     starGistR,
     unstarGistR,
     deleteGistR,
diff --git a/src/GitHub/Data/Content.hs b/src/GitHub/Data/Content.hs
--- a/src/GitHub/Data/Content.hs
+++ b/src/GitHub/Data/Content.hs
@@ -1,4 +1,5 @@
 {-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE CPP #-}
 -----------------------------------------------------------------------------
 -- |
 -- License     :  BSD-3-Clause
@@ -15,6 +16,10 @@
 import Data.Maybe (maybe)
 import qualified Data.Text as T
 
+#if MIN_VERSION_aeson(2,0,0)
+import Data.Aeson (Key)
+#endif
+
 data Content
   = ContentFile !ContentFileData
   | ContentDirectory !(Vector ContentItem)
@@ -205,5 +210,9 @@
     ++ "author"    .=? deleteFileAuthor
     ++ "committer" .=? deleteFileCommitter
 
+#if MIN_VERSION_aeson(2,0,0)
+(.=?) :: ToJSON v => Key -> Maybe v -> [Pair]
+#else
 (.=?) :: ToJSON v => Text -> Maybe v -> [Pair]
+#endif
 name .=? value = maybe [] (pure . (name .=)) value
diff --git a/src/GitHub/Data/Definitions.hs b/src/GitHub/Data/Definitions.hs
--- a/src/GitHub/Data/Definitions.hs
+++ b/src/GitHub/Data/Definitions.hs
@@ -121,7 +121,7 @@
 instance NFData Organization where rnf = genericRnf
 instance Binary Organization
 
--- | In practic, you cam't have concrete values of 'Owner'.
+-- | In practice you can't have concrete values of 'Owner'.
 newtype Owner = Owner (Either User Organization)
     deriving (Show, Data, Typeable, Eq, Ord, Generic)
 
diff --git a/src/GitHub/Data/Gists.hs b/src/GitHub/Data/Gists.hs
--- a/src/GitHub/Data/Gists.hs
+++ b/src/GitHub/Data/Gists.hs
@@ -89,3 +89,35 @@
         <*> o .: "body"
         <*> o .: "updated_at"
         <*> o .: "id"
+
+data NewGist = NewGist
+    { newGistDescription :: !(Maybe Text)
+    , newGistFiles       :: !(HashMap Text NewGistFile)
+    , newGistPublic      :: !(Maybe Bool)
+    } deriving (Show, Data, Typeable, Eq, Generic)
+
+instance NFData NewGist where rnf = genericRnf
+instance Binary NewGist
+
+instance ToJSON NewGist where
+    toJSON NewGist { newGistDescription = description
+                   , newGistFiles       = files
+                   , newGistPublic      = public
+                   } = object $ filter notNull
+                   [ "description"      .= description
+                   , "files"            .= files
+                   , "public"           .= public
+                   ]
+      where
+        notNull (_, Null) = False
+        notNull (_, _)    = True
+
+data NewGistFile = NewGistFile
+    { newGistFileContent :: !Text
+    } deriving (Show, Data, Typeable, Eq, Generic)
+
+instance NFData NewGistFile where rnf = genericRnf
+instance Binary NewGistFile
+
+instance ToJSON NewGistFile where
+    toJSON (NewGistFile c) = object ["content" .= c]
diff --git a/src/GitHub/Data/PullRequests.hs b/src/GitHub/Data/PullRequests.hs
--- a/src/GitHub/Data/PullRequests.hs
+++ b/src/GitHub/Data/PullRequests.hs
@@ -21,6 +21,7 @@
 import GitHub.Data.Options     (IssueState (..), MergeableState (..))
 import GitHub.Data.Repos       (Repo)
 import GitHub.Data.URL         (URL)
+import GitHub.Data.Teams       (SimpleTeam)
 import GitHub.Internal.Prelude
 import Prelude ()
 
@@ -38,6 +39,7 @@
     , simplePullRequestBody               :: !(Maybe Text)
     , simplePullRequestAssignees          :: (Vector SimpleUser)
     , simplePullRequestRequestedReviewers :: (Vector SimpleUser)
+    , simplePullRequestRequestedTeamReviewers:: (Vector SimpleTeam)
     , simplePullRequestIssueUrl           :: !URL
     , simplePullRequestDiffUrl            :: !URL
     , simplePullRequestUrl                :: !URL
@@ -63,6 +65,7 @@
     , pullRequestBody                 :: !(Maybe Text)
     , pullRequestAssignees            :: (Vector SimpleUser)
     , pullRequestRequestedReviewers   :: (Vector SimpleUser)
+    , pullRequestRequestedTeamReviewers :: (Vector SimpleTeam)
     , pullRequestIssueUrl             :: !URL
     , pullRequestDiffUrl              :: !URL
     , pullRequestUrl                  :: !URL
@@ -198,6 +201,7 @@
         <*> o .:? "body"
         <*> o .: "assignees"
         <*> o .:? "requested_reviewers" .!= mempty
+        <*> o .:? "requested_teams" .!= mempty
         <*> o .: "issue_url"
         <*> o .: "diff_url"
         <*> o .: "url"
@@ -239,6 +243,7 @@
         <*> o .:? "body"
         <*> o .: "assignees"
         <*> o .:? "requested_reviewers" .!= mempty
+        <*> o .:? "requested_teams" .!= mempty
         <*> o .: "issue_url"
         <*> o .: "diff_url"
         <*> o .: "url"
diff --git a/src/GitHub/Data/Reviews.hs b/src/GitHub/Data/Reviews.hs
--- a/src/GitHub/Data/Reviews.hs
+++ b/src/GitHub/Data/Reviews.hs
@@ -35,7 +35,7 @@
     { reviewBody :: !Text
     , reviewCommitId :: !Text
     , reviewState :: ReviewState
-    , reviewSubmittedAt :: !UTCTime
+    , reviewSubmittedAt :: !(Maybe UTCTime)
     , reviewPullRequestUrl :: !URL
     , reviewHtmlUrl :: !Text
     , reviewUser :: !SimpleUser
@@ -51,11 +51,11 @@
     parseJSON =
         withObject "Review" $ \o ->
             Review <$> o .: "body" <*> o .: "commit_id" <*> o .: "state" <*>
-            o .: "submitted_at" <*>
-            o .: "pull_request_url" <*>
-            o .: "html_url" <*>
-            o .: "user" <*>
-            o .: "id"
+            o .:? "submitted_at" <*>
+            o .:  "pull_request_url" <*>
+            o .:  "html_url" <*>
+            o .:  "user" <*>
+            o .:  "id"
 
 data ReviewComment = ReviewComment
     { reviewCommentId :: !(Id ReviewComment)
diff --git a/src/GitHub/Data/Webhooks.hs b/src/GitHub/Data/Webhooks.hs
--- a/src/GitHub/Data/Webhooks.hs
+++ b/src/GitHub/Data/Webhooks.hs
@@ -35,6 +35,7 @@
     = WebhookWildcardEvent
     | WebhookCheckRunEvent
     | WebhookCheckSuiteEvent
+    | WebhookCodeScanningAlert
     | WebhookCommitCommentEvent
     | WebhookContentReferenceEvent
     | WebhookCreateEvent
@@ -42,12 +43,13 @@
     | WebhookDeployKeyEvent
     | WebhookDeploymentEvent
     | WebhookDeploymentStatusEvent
+    | WebhookDiscussion
+    | WebhookDiscussionComment
     | WebhookDownloadEvent
     | WebhookFollowEvent
     | WebhookForkEvent
-    | WebhookForkApplyEvent
-    | WebhookGitHubAppAuthorizationEvent
     | WebhookGistEvent
+    | WebhookGitHubAppAuthorizationEvent
     | WebhookGollumEvent
     | WebhookInstallationEvent
     | WebhookInstallationRepositoriesEvent
@@ -59,8 +61,9 @@
     | WebhookMembershipEvent
     | WebhookMetaEvent
     | WebhookMilestoneEvent
-    | WebhookOrganizationEvent
     | WebhookOrgBlockEvent
+    | WebhookOrganizationEvent
+    | WebhookPackage
     | WebhookPageBuildEvent
     | WebhookPingEvent
     | WebhookProjectCardEvent
@@ -68,20 +71,25 @@
     | WebhookProjectEvent
     | WebhookPublicEvent
     | WebhookPullRequestEvent
-    | WebhookPullRequestReviewEvent
     | WebhookPullRequestReviewCommentEvent
+    | WebhookPullRequestReviewEvent
     | WebhookPushEvent
     | WebhookRegistryPackageEvent
     | WebhookReleaseEvent
+    | WebhookRepositoryDispatch
     | WebhookRepositoryEvent
     | WebhookRepositoryImportEvent
     | WebhookRepositoryVulnerabilityAlertEvent
+    | WebhookSecretScanningAlert
     | WebhookSecurityAdvisoryEvent
+    | WebhookSponsorship
     | WebhookStarEvent
     | WebhookStatusEvent
-    | WebhookTeamEvent
     | WebhookTeamAddEvent
+    | WebhookTeamEvent
     | WebhookWatchEvent
+    | WebhookWorkflowDispatch
+    | WebhookWorkflowRun
   deriving (Show, Data, Typeable, Eq, Ord, Generic)
 
 instance NFData RepoWebhookEvent where rnf = genericRnf
@@ -137,6 +145,7 @@
         "*"                              -> pure WebhookWildcardEvent
         "check_run"                      -> pure WebhookCheckRunEvent
         "check_suite"                    -> pure WebhookCheckSuiteEvent
+        "code_scanning_alert"            -> pure WebhookCodeScanningAlert
         "commit_comment"                 -> pure WebhookCommitCommentEvent
         "content_reference"              -> pure WebhookContentReferenceEvent
         "create"                         -> pure WebhookCreateEvent
@@ -144,12 +153,13 @@
         "deploy_key"                     -> pure WebhookDeployKeyEvent
         "deployment"                     -> pure WebhookDeploymentEvent
         "deployment_status"              -> pure WebhookDeploymentStatusEvent
+        "discussion"                     -> pure WebhookDiscussion
+        "discussion_comment"             -> pure WebhookDiscussionComment
         "download"                       -> pure WebhookDownloadEvent
         "follow"                         -> pure WebhookFollowEvent
         "fork"                           -> pure WebhookForkEvent
-        "fork_apply"                     -> pure WebhookForkApplyEvent
-        "github_app_authorization"       -> pure WebhookGitHubAppAuthorizationEvent
         "gist"                           -> pure WebhookGistEvent
+        "github_app_authorization"       -> pure WebhookGitHubAppAuthorizationEvent
         "gollum"                         -> pure WebhookGollumEvent
         "installation"                   -> pure WebhookInstallationEvent
         "installation_repositories"      -> pure WebhookInstallationRepositoriesEvent
@@ -161,13 +171,14 @@
         "membership"                     -> pure WebhookMembershipEvent
         "meta"                           -> pure WebhookMetaEvent
         "milestone"                      -> pure WebhookMilestoneEvent
-        "organization"                   -> pure WebhookOrganizationEvent
         "org_block"                      -> pure WebhookOrgBlockEvent
+        "organization"                   -> pure WebhookOrganizationEvent
+        "package"                        -> pure WebhookPackage
         "page_build"                     -> pure WebhookPageBuildEvent
         "ping"                           -> pure WebhookPingEvent
+        "project"                        -> pure WebhookProjectEvent
         "project_card"                   -> pure WebhookProjectCardEvent
         "project_column"                 -> pure WebhookProjectColumnEvent
-        "project"                        -> pure WebhookProjectEvent
         "public"                         -> pure WebhookPublicEvent
         "pull_request"                   -> pure WebhookPullRequestEvent
         "pull_request_review"            -> pure WebhookPullRequestReviewEvent
@@ -176,20 +187,26 @@
         "registry_package"               -> pure WebhookRegistryPackageEvent
         "release"                        -> pure WebhookReleaseEvent
         "repository"                     -> pure WebhookRepositoryEvent
+        "repository_dispatch"            -> pure WebhookRepositoryDispatch
         "repository_import"              -> pure WebhookRepositoryImportEvent
         "repository_vulnerability_alert" -> pure WebhookRepositoryVulnerabilityAlertEvent
+        "secret_scanning_alert"          -> pure WebhookSecretScanningAlert
         "security_advisory"              -> pure WebhookSecurityAdvisoryEvent
+        "sponsorship"                    -> pure WebhookSponsorship
         "star"                           -> pure WebhookStarEvent
         "status"                         -> pure WebhookStatusEvent
         "team"                           -> pure WebhookTeamEvent
         "team_add"                       -> pure WebhookTeamAddEvent
         "watch"                          -> pure WebhookWatchEvent
+        "workflow_dispatch"              -> pure WebhookWorkflowDispatch
+        "workflow_run"                   -> pure WebhookWorkflowRun
         _                                -> fail $ "Unknown RepoWebhookEvent: " <> T.unpack t
 
 instance ToJSON RepoWebhookEvent where
     toJSON WebhookWildcardEvent                     = String "*"
     toJSON WebhookCheckRunEvent                     = String "check_run"
     toJSON WebhookCheckSuiteEvent                   = String "check_suite"
+    toJSON WebhookCodeScanningAlert                 = String "code_scanning_alert"
     toJSON WebhookCommitCommentEvent                = String "commit_comment"
     toJSON WebhookContentReferenceEvent             = String "content_reference"
     toJSON WebhookCreateEvent                       = String "create"
@@ -197,12 +214,13 @@
     toJSON WebhookDeployKeyEvent                    = String "deploy_key"
     toJSON WebhookDeploymentEvent                   = String "deployment"
     toJSON WebhookDeploymentStatusEvent             = String "deployment_status"
+    toJSON WebhookDiscussion                        = String "discussion"
+    toJSON WebhookDiscussionComment                 = String "discussion_comment"
     toJSON WebhookDownloadEvent                     = String "download"
     toJSON WebhookFollowEvent                       = String "follow"
     toJSON WebhookForkEvent                         = String "fork"
-    toJSON WebhookForkApplyEvent                    = String "fork_apply"
-    toJSON WebhookGitHubAppAuthorizationEvent       = String "github_app_authorization"
     toJSON WebhookGistEvent                         = String "gist"
+    toJSON WebhookGitHubAppAuthorizationEvent       = String "github_app_authorization"
     toJSON WebhookGollumEvent                       = String "gollum"
     toJSON WebhookInstallationEvent                 = String "installation"
     toJSON WebhookInstallationRepositoriesEvent     = String "installation_repositories"
@@ -214,8 +232,9 @@
     toJSON WebhookMembershipEvent                   = String "membership"
     toJSON WebhookMetaEvent                         = String "meta"
     toJSON WebhookMilestoneEvent                    = String "milestone"
-    toJSON WebhookOrganizationEvent                 = String "organization"
     toJSON WebhookOrgBlockEvent                     = String "org_block"
+    toJSON WebhookOrganizationEvent                 = String "organization"
+    toJSON WebhookPackage                           = String "package"
     toJSON WebhookPageBuildEvent                    = String "page_build"
     toJSON WebhookPingEvent                         = String "ping"
     toJSON WebhookProjectCardEvent                  = String "project_card"
@@ -223,20 +242,25 @@
     toJSON WebhookProjectEvent                      = String "project"
     toJSON WebhookPublicEvent                       = String "public"
     toJSON WebhookPullRequestEvent                  = String "pull_request"
-    toJSON WebhookPullRequestReviewEvent            = String "pull_request_review"
     toJSON WebhookPullRequestReviewCommentEvent     = String "pull_request_review_comment"
+    toJSON WebhookPullRequestReviewEvent            = String "pull_request_review"
     toJSON WebhookPushEvent                         = String "push"
     toJSON WebhookRegistryPackageEvent              = String "registry_package"
     toJSON WebhookReleaseEvent                      = String "release"
+    toJSON WebhookRepositoryDispatch                = String "repository_dispatch"
     toJSON WebhookRepositoryEvent                   = String "repository"
     toJSON WebhookRepositoryImportEvent             = String "repository_import"
     toJSON WebhookRepositoryVulnerabilityAlertEvent = String "repository_vulnerability_alert"
+    toJSON WebhookSecretScanningAlert               = String "secret_scanning_alert"
     toJSON WebhookSecurityAdvisoryEvent             = String "security_advisory"
+    toJSON WebhookSponsorship                       = String "sponsorship"
     toJSON WebhookStarEvent                         = String "star"
     toJSON WebhookStatusEvent                       = String "status"
-    toJSON WebhookTeamEvent                         = String "team"
     toJSON WebhookTeamAddEvent                      = String "team_add"
+    toJSON WebhookTeamEvent                         = String "team"
     toJSON WebhookWatchEvent                        = String "watch"
+    toJSON WebhookWorkflowDispatch                  = String "workflow_dispatch"
+    toJSON WebhookWorkflowRun                       = String "workflow_run"
 
 instance FromJSON RepoWebhook where
     parseJSON = withObject "RepoWebhook" $ \o -> RepoWebhook
diff --git a/src/GitHub/Endpoints/Gists.hs b/src/GitHub/Endpoints/Gists.hs
--- a/src/GitHub/Endpoints/Gists.hs
+++ b/src/GitHub/Endpoints/Gists.hs
@@ -7,6 +7,7 @@
 module GitHub.Endpoints.Gists (
     gistsR,
     gistR,
+    createGistR,
     starGistR,
     unstarGistR,
     deleteGistR,
@@ -27,6 +28,11 @@
 gistR :: Name Gist -> Request k Gist
 gistR gid =
     query ["gists", toPathPart gid] []
+
+-- | Create a new gist
+-- See <https://docs.github.com/rest/reference/gists#create-a-gist>
+createGistR :: NewGist -> Request 'RW Gist
+createGistR ngist = command Post ["gists"] (encode ngist)
 
 -- | Star a gist by the authenticated user.
 -- See <https://developer.github.com/v3/gists/#star-a-gist>
diff --git a/src/GitHub/Internal/Prelude.hs b/src/GitHub/Internal/Prelude.hs
--- a/src/GitHub/Internal/Prelude.hs
+++ b/src/GitHub/Internal/Prelude.hs
@@ -1,4 +1,5 @@
 {-# LANGUAGE NoImplicitPrelude #-}
+{-# LANGUAGE CPP #-}
 -----------------------------------------------------------------------------
 -- |
 -- License     :  BSD-3-Clause
diff --git a/src/GitHub/Request.hs b/src/GitHub/Request.hs
--- a/src/GitHub/Request.hs
+++ b/src/GitHub/Request.hs
@@ -90,7 +90,7 @@
        httpLbs, method, newManager, redirectCount, requestBody, requestHeaders,
        setQueryString, setRequestIgnoreStatus)
 import Network.HTTP.Link.Parser (parseLinkHeaderBS)
-import Network.HTTP.Link.Types  (Link (..), LinkParam (..), href, linkParams)
+import Network.HTTP.Link.Types  (LinkParam (..), href, linkParams)
 import Network.HTTP.Types       (Method, RequestHeaders, Status (..))
 import Network.URI
        (URI, escapeURIString, isUnescapedInURIComponent, parseURIReference,
@@ -507,7 +507,7 @@
     nextURI <- find isRelNext links
     return $ href nextURI
   where
-    isRelNext :: Link -> Bool
+    -- isRelNext :: Link -> Bool or Link uri -> Bool
     isRelNext = any (== relNextLinkParam) . linkParams
 
     relNextLinkParam :: (LinkParam, Text)
