about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2021-02-14 11:57:45 +0000
committerAlyssa Ross <hi@alyssa.is>2021-02-17 15:16:29 +0000
commit6f9ccf054b8af59243e50b24d2c8b36e22ab3ac4 (patch)
tree5955257a31295586dd2203137736693ae01068d9
downloadpr-tracker-6f9ccf054b8af59243e50b24d2c8b36e22ab3ac4.tar
pr-tracker-6f9ccf054b8af59243e50b24d2c8b36e22ab3ac4.tar.gz
pr-tracker-6f9ccf054b8af59243e50b24d2c8b36e22ab3ac4.tar.bz2
pr-tracker-6f9ccf054b8af59243e50b24d2c8b36e22ab3ac4.tar.lz
pr-tracker-6f9ccf054b8af59243e50b24d2c8b36e22ab3ac4.tar.xz
pr-tracker-6f9ccf054b8af59243e50b24d2c8b36e22ab3ac4.tar.zst
pr-tracker-6f9ccf054b8af59243e50b24d2c8b36e22ab3ac4.zip
Initial commit
-rw-r--r--.editorconfig19
-rw-r--r--.gitignore4
-rw-r--r--Cargo.lock2377
-rw-r--r--Cargo.lock.license2
-rw-r--r--Cargo.toml37
-rw-r--r--LICENSES/AGPL-3.0-or-later.txt603
-rw-r--r--LICENSES/CC0-1.0.txt121
-rw-r--r--LICENSES/GPL-3.0-linking-exception.txt3
-rw-r--r--LICENSES/MIT.txt20
-rw-r--r--Makefile41
-rw-r--r--README112
-rw-r--r--README.license2
-rw-r--r--build.rs6
-rw-r--r--src/branches.rs62
-rw-r--r--src/github.rs139
-rw-r--r--src/main.rs211
-rw-r--r--src/merge_commit.graphql15
-rw-r--r--src/nixpkgs.rs127
-rw-r--r--src/systemd.rs49
-rw-r--r--src/tree.rs91
-rw-r--r--templates/page.html203
-rw-r--r--templates/tree.html23
-rw-r--r--vendor/github_schema.graphql39245
-rw-r--r--vendor/github_schema.graphql.license2
24 files changed, 43514 insertions, 0 deletions
diff --git a/.editorconfig b/.editorconfig
new file mode 100644
index 0000000..e24f4d2
--- /dev/null
+++ b/.editorconfig
@@ -0,0 +1,19 @@
+# SPDX-License-Identifier: CC0-1.0
+# SPDX-FileCopyrightText: 2021 Alyssa Ross <hi@alyssa.is>
+
+root = true
+
+[*]
+charset = utf-8
+end_of_line = lf
+indent_size = 2
+indent_style = spaces
+insert_final_newline = true
+trim_trailing_whilespace = true
+
+[README]
+indent_style = tabs
+
+[*.rs]
+indent_size = 4
+indent_style = spaces
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..5d9e9ba
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+# SPDX-License-Identifier: CC0-1.0
+# SPDX-FileCopyrightText: 2021 Alyssa Ross <hi@alyssa.is>
+
+/target
diff --git a/Cargo.lock b/Cargo.lock
new file mode 100644
index 0000000..2e2228d
--- /dev/null
+++ b/Cargo.lock
@@ -0,0 +1,2377 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+[[package]]
+name = "addr2line"
+version = "0.14.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a55f82cfe485775d02112886f4169bde0c5894d75e79ead7eafe7e40a25e45f7"
+dependencies = [
+ "gimli",
+]
+
+[[package]]
+name = "adler"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ee2a4ec343196209d6594e19543ae87a39f96d5534d7174822a3ad825dd6ed7e"
+
+[[package]]
+name = "aead"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7fc95d1bdb8e6666b2b217308eeeb09f2d6728d104be3e31916cc74d15420331"
+dependencies = [
+ "generic-array",
+]
+
+[[package]]
+name = "aes"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "884391ef1066acaa41e766ba8f596341b96e93ce34f9a43e7d24bf0a0eaf0561"
+dependencies = [
+ "aes-soft",
+ "aesni",
+ "cipher",
+]
+
+[[package]]
+name = "aes-gcm"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5278b5fabbb9bd46e24aa69b2fdea62c99088e0a950a9be40e3e0101298f88da"
+dependencies = [
+ "aead",
+ "aes",
+ "cipher",
+ "ctr",
+ "ghash",
+ "subtle",
+]
+
+[[package]]
+name = "aes-soft"
+version = "0.6.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "be14c7498ea50828a38d0e24a765ed2effe92a705885b57d029cd67d45744072"
+dependencies = [
+ "cipher",
+ "opaque-debug",
+]
+
+[[package]]
+name = "aesni"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ea2e11f5e94c2f7d386164cc2aa1f97823fed6f259e486940a71c174dd01b0ce"
+dependencies = [
+ "cipher",
+ "opaque-debug",
+]
+
+[[package]]
+name = "aho-corasick"
+version = "0.7.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7404febffaa47dac81aa44dba71523c9d069b1bdc50a77db41195149e17f68e5"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "ansi_term"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "anyhow"
+version = "1.0.38"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "afddf7f520a80dbf76e6f50a35bca42a2331ef227a28b3b6dc5c2e2338d114b1"
+
+[[package]]
+name = "ascii"
+version = "0.9.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eab1c04a571841102f5345a8fc0f6bb3d31c315dec879b5c6e42e40ce7ffa34e"
+
+[[package]]
+name = "askama"
+version = "0.10.6"
+source = "git+https://github.com/djc/askama?branch=main#2dbdcdfb640a5e7c1eecfd6eae71ea9d5a05723e"
+dependencies = [
+ "askama_derive",
+ "askama_escape",
+ "askama_shared",
+]
+
+[[package]]
+name = "askama_derive"
+version = "0.10.5"
+source = "git+https://github.com/djc/askama?branch=main#2dbdcdfb640a5e7c1eecfd6eae71ea9d5a05723e"
+dependencies = [
+ "askama_shared",
+ "proc-macro2 1.0.24",
+ "syn 1.0.60",
+]
+
+[[package]]
+name = "askama_escape"
+version = "0.10.1"
+source = "git+https://github.com/djc/askama?branch=main#2dbdcdfb640a5e7c1eecfd6eae71ea9d5a05723e"
+
+[[package]]
+name = "askama_shared"
+version = "0.11.2"
+source = "git+https://github.com/djc/askama?branch=main#2dbdcdfb640a5e7c1eecfd6eae71ea9d5a05723e"
+dependencies = [
+ "askama_escape",
+ "funty",
+ "humansize",
+ "nom",
+ "num-traits",
+ "percent-encoding",
+ "proc-macro2 1.0.24",
+ "quote 1.0.9",
+ "serde",
+ "syn 1.0.60",
+ "toml",
+]
+
+[[package]]
+name = "async-attributes"
+version = "1.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a3203e79f4dd9bdda415ed03cf14dae5a2bf775c683a00f94e9cd1faf0f596e5"
+dependencies = [
+ "quote 1.0.9",
+ "syn 1.0.60",
+]
+
+[[package]]
+name = "async-channel"
+version = "1.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "59740d83946db6a5af71ae25ddf9562c2b176b2ca42cf99a455f09f4a220d6b9"
+dependencies = [
+ "concurrent-queue",
+ "event-listener",
+ "futures-core",
+]
+
+[[package]]
+name = "async-dup"
+version = "1.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7427a12b8dc09291528cfb1da2447059adb4a257388c2acd6497a79d55cf6f7c"
+dependencies = [
+ "futures-io",
+ "simple-mutex",
+]
+
+[[package]]
+name = "async-executor"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eb877970c7b440ead138f6321a3b5395d6061183af779340b65e20c0fede9146"
+dependencies = [
+ "async-task",
+ "concurrent-queue",
+ "fastrand",
+ "futures-lite",
+ "once_cell",
+ "vec-arena",
+]
+
+[[package]]
+name = "async-global-executor"
+version = "2.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9586ec52317f36de58453159d48351bc244bc24ced3effc1fce22f3d48664af6"
+dependencies = [
+ "async-channel",
+ "async-executor",
+ "async-io",
+ "async-mutex",
+ "blocking",
+ "futures-lite",
+ "num_cpus",
+ "once_cell",
+]
+
+[[package]]
+name = "async-h1"
+version = "2.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3e9e2a9745d9cd0d92ed7641ce4d07568985762f92633260f0afe8ac7917d9d7"
+dependencies = [
+ "async-channel",
+ "async-dup",
+ "async-std",
+ "byte-pool",
+ "futures-core",
+ "http-types",
+ "httparse",
+ "lazy_static",
+ "log",
+ "pin-project 1.0.5",
+]
+
+[[package]]
+name = "async-io"
+version = "1.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9315f8f07556761c3e48fec2e6b276004acf426e6dc068b2c2251854d65ee0fd"
+dependencies = [
+ "concurrent-queue",
+ "fastrand",
+ "futures-lite",
+ "libc",
+ "log",
+ "nb-connect",
+ "once_cell",
+ "parking",
+ "polling",
+ "vec-arena",
+ "waker-fn",
+ "winapi",
+]
+
+[[package]]
+name = "async-lock"
+version = "2.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1996609732bde4a9988bc42125f55f2af5f3c36370e27c778d5191a4a1b63bfb"
+dependencies = [
+ "event-listener",
+]
+
+[[package]]
+name = "async-mutex"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "479db852db25d9dbf6204e6cb6253698f175c15726470f78af0d918e99d6156e"
+dependencies = [
+ "event-listener",
+]
+
+[[package]]
+name = "async-process"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ef37b86e2fa961bae5a4d212708ea0154f904ce31d1a4a7f47e1bbc33a0c040b"
+dependencies = [
+ "async-io",
+ "blocking",
+ "cfg-if 1.0.0",
+ "event-listener",
+ "futures-lite",
+ "once_cell",
+ "signal-hook",
+ "winapi",
+]
+
+[[package]]
+name = "async-sse"
+version = "4.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "53bba003996b8fd22245cd0c59b869ba764188ed435392cf2796d03b805ade10"
+dependencies = [
+ "async-channel",
+ "async-std",
+ "http-types",
+ "log",
+ "memchr",
+ "pin-project-lite 0.1.11",
+]
+
+[[package]]
+name = "async-std"
+version = "1.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d9f06685bad74e0570f5213741bea82158279a4103d988e57bfada11ad230341"
+dependencies = [
+ "async-attributes",
+ "async-channel",
+ "async-global-executor",
+ "async-io",
+ "async-lock",
+ "async-process",
+ "crossbeam-utils 0.8.1",
+ "futures-channel",
+ "futures-core",
+ "futures-io",
+ "futures-lite",
+ "gloo-timers",
+ "kv-log-macro",
+ "log",
+ "memchr",
+ "num_cpus",
+ "once_cell",
+ "pin-project-lite 0.2.4",
+ "pin-utils",
+ "slab",
+ "wasm-bindgen-futures",
+]
+
+[[package]]
+name = "async-task"
+version = "4.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e91831deabf0d6d7ec49552e489aed63b7456a7a3c46cff62adad428110b0af0"
+
+[[package]]
+name = "async-trait"
+version = "0.1.42"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8d3a45e77e34375a7923b1e8febb049bb011f064714a8e17a1a616fef01da13d"
+dependencies = [
+ "proc-macro2 1.0.24",
+ "quote 1.0.9",
+ "syn 1.0.60",
+]
+
+[[package]]
+name = "atomic-waker"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "065374052e7df7ee4047b1160cca5e1467a12351a40b3da123c870ba0b8eda2a"
+
+[[package]]
+name = "atty"
+version = "0.2.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
+dependencies = [
+ "hermit-abi",
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "autocfg"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a"
+
+[[package]]
+name = "backtrace"
+version = "0.3.56"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9d117600f438b1707d4e4ae15d3595657288f8235a0eb593e80ecc98ab34e1bc"
+dependencies = [
+ "addr2line",
+ "cfg-if 1.0.0",
+ "libc",
+ "miniz_oxide",
+ "object",
+ "rustc-demangle",
+]
+
+[[package]]
+name = "base-x"
+version = "0.2.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a4521f3e3d031370679b3b140beb36dfe4801b09ac77e30c61941f97df3ef28b"
+
+[[package]]
+name = "base64"
+version = "0.12.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff"
+
+[[package]]
+name = "base64"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd"
+
+[[package]]
+name = "bitflags"
+version = "1.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
+
+[[package]]
+name = "bitvec"
+version = "0.19.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a7ba35e9565969edb811639dbebfe34edc0368e472c5018474c8eb2543397f81"
+dependencies = [
+ "funty",
+ "radium",
+ "tap",
+ "wyz",
+]
+
+[[package]]
+name = "block-buffer"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4"
+dependencies = [
+ "generic-array",
+]
+
+[[package]]
+name = "blocking"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c5e170dbede1f740736619b776d7251cb1b9095c435c34d8ca9f57fcd2f335e9"
+dependencies = [
+ "async-channel",
+ "async-task",
+ "atomic-waker",
+ "fastrand",
+ "futures-lite",
+ "once_cell",
+]
+
+[[package]]
+name = "bumpalo"
+version = "3.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "099e596ef14349721d9016f6b80dd3419ea1bf289ab9b44df8e4dfd3a005d5d9"
+
+[[package]]
+name = "byte-pool"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e38e98299d518ec351ca016363e0cbfc77059dcd08dfa9700d15e405536097a"
+dependencies = [
+ "crossbeam-queue",
+ "stable_deref_trait",
+]
+
+[[package]]
+name = "byteorder"
+version = "1.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ae44d1a3d5a19df61dd0c8beb138458ac2a53a7ac09eba97d55592540004306b"
+
+[[package]]
+name = "bytes"
+version = "0.5.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0e4cec68f03f32e44924783795810fa50a7035d8c8ebe78580ad7e6c703fba38"
+
+[[package]]
+name = "bytes"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b700ce4376041dcd0a327fd0097c41095743c4c8af8887265942faf1100bd040"
+
+[[package]]
+name = "cache-padded"
+version = "1.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "631ae5198c9be5e753e5cc215e1bd73c2b466a3565173db433f52bb9d3e66dba"
+
+[[package]]
+name = "cc"
+version = "1.0.66"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4c0496836a84f8d0495758516b8621a622beb77c0fed418570e50764093ced48"
+
+[[package]]
+name = "cfg-if"
+version = "0.1.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
+
+[[package]]
+name = "cfg-if"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+[[package]]
+name = "cipher"
+version = "0.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "12f8e7987cbd042a63249497f41aed09f8e65add917ea6566effbc56578d6801"
+dependencies = [
+ "generic-array",
+]
+
+[[package]]
+name = "clap"
+version = "2.33.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "37e58ac78573c40708d45522f0d80fa2f01cc4f9b4e2bf749807255454312002"
+dependencies = [
+ "ansi_term",
+ "atty",
+ "bitflags",
+ "strsim",
+ "textwrap",
+ "unicode-width",
+ "vec_map",
+]
+
+[[package]]
+name = "combine"
+version = "3.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da3da6baa321ec19e1cc41d31bf599f00c783d0517095cdaf0332e3fe8d20680"
+dependencies = [
+ "ascii",
+ "byteorder",
+ "either",
+ "memchr",
+ "unreachable",
+]
+
+[[package]]
+name = "concurrent-queue"
+version = "1.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "30ed07550be01594c6026cff2a1d7fe9c8f683caa798e12b68694ac9e88286a3"
+dependencies = [
+ "cache-padded",
+]
+
+[[package]]
+name = "const_fn"
+version = "0.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "28b9d6de7f49e22cf97ad17fc4036ece69300032f45f78f30b4a4482cdc3f4a6"
+
+[[package]]
+name = "cookie"
+version = "0.14.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "784ad0fbab4f3e9cef09f20e0aea6000ae08d2cb98ac4c0abc53df18803d702f"
+dependencies = [
+ "aes-gcm",
+ "base64 0.12.3",
+ "hkdf",
+ "hmac",
+ "percent-encoding",
+ "rand",
+ "sha2",
+ "time",
+ "version_check",
+]
+
+[[package]]
+name = "cpuid-bool"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8aebca1129a03dc6dc2b127edd729435bbc4a37e1d5f4d7513165089ceb02634"
+
+[[package]]
+name = "cpuid-bool"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dcb25d077389e53838a8158c8e99174c5a9d902dee4904320db714f3c653ffba"
+
+[[package]]
+name = "crossbeam-queue"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "774ba60a54c213d409d5353bda12d49cd68d14e45036a285234c8d6f91f92570"
+dependencies = [
+ "cfg-if 0.1.10",
+ "crossbeam-utils 0.7.2",
+ "maybe-uninit",
+]
+
+[[package]]
+name = "crossbeam-utils"
+version = "0.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8"
+dependencies = [
+ "autocfg",
+ "cfg-if 0.1.10",
+ "lazy_static",
+]
+
+[[package]]
+name = "crossbeam-utils"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "02d96d1e189ef58269ebe5b97953da3274d83a93af647c2ddd6f9dab28cedb8d"
+dependencies = [
+ "autocfg",
+ "cfg-if 1.0.0",
+ "lazy_static",
+]
+
+[[package]]
+name = "crypto-mac"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4857fd85a0c34b3c3297875b747c1e02e06b6a0ea32dd892d8192b9ce0813ea6"
+dependencies = [
+ "generic-array",
+ "subtle",
+]
+
+[[package]]
+name = "ctor"
+version = "0.1.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e8f45d9ad417bcef4817d614a501ab55cdd96a6fdb24f49aab89a54acfd66b19"
+dependencies = [
+ "quote 1.0.9",
+ "syn 1.0.60",
+]
+
+[[package]]
+name = "ctr"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fb4a30d54f7443bf3d6191dcd486aca19e67cb3c49fa7a06a319966346707e7f"
+dependencies = [
+ "cipher",
+]
+
+[[package]]
+name = "curl"
+version = "0.4.34"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e268162af1a5fe89917ae25ba3b0a77c8da752bdc58e7dbb4f15b91fbd33756e"
+dependencies = [
+ "curl-sys",
+ "libc",
+ "openssl-probe",
+ "openssl-sys",
+ "schannel",
+ "socket2",
+ "winapi",
+]
+
+[[package]]
+name = "curl-sys"
+version = "0.4.40+curl-7.75.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2ffafc1c35958318bd7fdd0582995ce4c72f4f461a8e70499ccee83a619fd562"
+dependencies = [
+ "cc",
+ "libc",
+ "libnghttp2-sys",
+ "libz-sys",
+ "openssl-sys",
+ "pkg-config",
+ "vcpkg",
+ "winapi",
+]
+
+[[package]]
+name = "dashmap"
+version = "4.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e77a43b28d0668df09411cb0bc9a8c2adc40f9a048afe863e05fd43251e8e39c"
+dependencies = [
+ "cfg-if 1.0.0",
+ "num_cpus",
+]
+
+[[package]]
+name = "data-encoding"
+version = "2.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3ee2393c4a91429dffb4bedf19f4d6abf27d8a732c8ce4980305d782e5426d57"
+
+[[package]]
+name = "digest"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066"
+dependencies = [
+ "generic-array",
+]
+
+[[package]]
+name = "discard"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "212d0f5754cb6769937f4501cc0e67f4f4483c8d2c3e1e922ee9edbe4ab4c7c0"
+
+[[package]]
+name = "doc-comment"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10"
+
+[[package]]
+name = "either"
+version = "1.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457"
+
+[[package]]
+name = "encoding_rs"
+version = "0.8.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "80df024fbc5ac80f87dfef0d9f5209a252f2a497f7f42944cff24d8253cac065"
+dependencies = [
+ "cfg-if 1.0.0",
+]
+
+[[package]]
+name = "event-listener"
+version = "2.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f7531096570974c3a9dcf9e4b8e1cede1ec26cf5046219fb3b9d897503b9be59"
+
+[[package]]
+name = "failure"
+version = "0.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d32e9bd16cc02eae7db7ef620b392808b89f6a5e16bb3497d159c6b92a0f4f86"
+dependencies = [
+ "backtrace",
+ "failure_derive",
+]
+
+[[package]]
+name = "failure_derive"
+version = "0.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4"
+dependencies = [
+ "proc-macro2 1.0.24",
+ "quote 1.0.9",
+ "syn 1.0.60",
+ "synstructure",
+]
+
+[[package]]
+name = "fastrand"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca5faf057445ce5c9d4329e382b2ce7ca38550ef3b73a5348362d5f24e0c7fe3"
+dependencies = [
+ "instant",
+]
+
+[[package]]
+name = "femme"
+version = "2.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2af1a24f391a5a94d756db5092c6576aad494b88a71a5a36b20c67b63e0df034"
+dependencies = [
+ "cfg-if 0.1.10",
+ "js-sys",
+ "log",
+ "serde",
+ "serde_derive",
+ "serde_json",
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "flume"
+version = "0.9.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1bebadab126f8120d410b677ed95eee4ba6eb7c6dd8e34a5ec88a08050e26132"
+dependencies = [
+ "futures-core",
+ "futures-sink",
+ "spinning_top",
+]
+
+[[package]]
+name = "fnv"
+version = "1.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
+
+[[package]]
+name = "form_urlencoded"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ece68d15c92e84fa4f19d3780f1294e5ca82a78a6d515f1efaabcc144688be00"
+dependencies = [
+ "matches",
+ "percent-encoding",
+]
+
+[[package]]
+name = "funty"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fed34cd105917e91daa4da6b3728c47b068749d6a62c59811f06ed2ac71d9da7"
+
+[[package]]
+name = "futures-channel"
+version = "0.3.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f2d31b7ec7efab6eefc7c57233bb10b847986139d88cc2f5a02a1ae6871a1846"
+dependencies = [
+ "futures-core",
+]
+
+[[package]]
+name = "futures-core"
+version = "0.3.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "79e5145dde8da7d1b3892dad07a9c98fc04bc39892b1ecc9692cf53e2b780a65"
+
+[[package]]
+name = "futures-io"
+version = "0.3.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "28be053525281ad8259d47e4de5de657b25e7bac113458555bb4b70bc6870500"
+
+[[package]]
+name = "futures-lite"
+version = "1.11.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b4481d0cd0de1d204a4fa55e7d45f07b1d958abcb06714b3446438e2eff695fb"
+dependencies = [
+ "fastrand",
+ "futures-core",
+ "futures-io",
+ "memchr",
+ "parking",
+ "pin-project-lite 0.2.4",
+ "waker-fn",
+]
+
+[[package]]
+name = "futures-macro"
+version = "0.3.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c287d25add322d9f9abdcdc5927ca398917996600182178774032e9f8258fedd"
+dependencies = [
+ "proc-macro-hack",
+ "proc-macro2 1.0.24",
+ "quote 1.0.9",
+ "syn 1.0.60",
+]
+
+[[package]]
+name = "futures-sink"
+version = "0.3.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "caf5c69029bda2e743fddd0582d1083951d65cc9539aebf8812f36c3491342d6"
+
+[[package]]
+name = "futures-task"
+version = "0.3.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "13de07eb8ea81ae445aca7b69f5f7bf15d7bf4912d8ca37d6645c77ae8a58d86"
+dependencies = [
+ "once_cell",
+]
+
+[[package]]
+name = "futures-util"
+version = "0.3.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "632a8cd0f2a4b3fdea1657f08bde063848c3bd00f9bbf6e256b8be78802e624b"
+dependencies = [
+ "futures-core",
+ "futures-io",
+ "futures-macro",
+ "futures-task",
+ "memchr",
+ "pin-project-lite 0.2.4",
+ "pin-utils",
+ "proc-macro-hack",
+ "proc-macro-nested",
+ "slab",
+]
+
+[[package]]
+name = "generic-array"
+version = "0.14.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "501466ecc8a30d1d3b7fc9229b122b2ce8ed6e9d9223f1138d4babb253e51817"
+dependencies = [
+ "typenum",
+ "version_check",
+]
+
+[[package]]
+name = "getrandom"
+version = "0.1.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce"
+dependencies = [
+ "cfg-if 1.0.0",
+ "libc",
+ "wasi",
+]
+
+[[package]]
+name = "ghash"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "97304e4cd182c3846f7575ced3890c53012ce534ad9114046b0a9e00bb30a375"
+dependencies = [
+ "opaque-debug",
+ "polyval",
+]
+
+[[package]]
+name = "gimli"
+version = "0.23.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f6503fe142514ca4799d4c26297c4248239fe8838d827db6bd6065c6ed29a6ce"
+
+[[package]]
+name = "gloo-timers"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "47204a46aaff920a1ea58b11d03dec6f704287d27561724a4631e450654a891f"
+dependencies = [
+ "futures-channel",
+ "futures-core",
+ "js-sys",
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "graphql-parser"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a5613c31f18676f164112732202124f373bb2103ff017b3b85ca954ea6a66ada"
+dependencies = [
+ "combine",
+ "failure",
+]
+
+[[package]]
+name = "graphql_client"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "384bd6253c9c37eac529ba6ff6eae31ed99a3532664cf7b7f48f240f77f73699"
+dependencies = [
+ "doc-comment",
+ "failure",
+ "graphql_query_derive",
+ "serde",
+ "serde_json",
+]
+
+[[package]]
+name = "graphql_client_codegen"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dbbd911d25d37c6113fecbde95619869117a1903dad9dc0b94bbf1ac4c3d2747"
+dependencies = [
+ "failure",
+ "graphql-parser",
+ "heck",
+ "lazy_static",
+ "proc-macro2 0.4.30",
+ "quote 0.6.13",
+ "serde",
+ "serde_json",
+ "syn 0.15.44",
+]
+
+[[package]]
+name = "graphql_query_derive"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b0d251ffd6428a2a6a0fde38539a3858816fa2aa70bcfcc0a16968c93d51d0c7"
+dependencies = [
+ "failure",
+ "graphql_client_codegen",
+ "proc-macro2 0.4.30",
+ "syn 0.15.44",
+]
+
+[[package]]
+name = "heck"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87cbf45460356b7deeb5e3415b5563308c0a9b057c85e12b06ad551f98d0a6ac"
+dependencies = [
+ "unicode-segmentation",
+]
+
+[[package]]
+name = "hermit-abi"
+version = "0.1.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "322f4de77956e22ed0e5032c359a0f1273f1f7f0d79bfa3b8ffbc730d7fbcc5c"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "hkdf"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "51ab2f639c231793c5f6114bdb9bbe50a7dbbfcd7c7c6bd8475dec2d991e964f"
+dependencies = [
+ "digest",
+ "hmac",
+]
+
+[[package]]
+name = "hmac"
+version = "0.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c1441c6b1e930e2817404b5046f1f989899143a12bf92de603b69f4e0aee1e15"
+dependencies = [
+ "crypto-mac",
+ "digest",
+]
+
+[[package]]
+name = "http"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7245cd7449cc792608c3c8a9eaf69bd4eabbabf802713748fd739c98b82f0747"
+dependencies = [
+ "bytes 1.0.1",
+ "fnv",
+ "itoa",
+]
+
+[[package]]
+name = "http-client"
+version = "6.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "518cdefb188f1e14c60151ca4ee1c186c9b6e0d7047c334e53478d3d9f2b0dfa"
+dependencies = [
+ "async-std",
+ "async-trait",
+ "dashmap",
+ "http-types",
+ "isahc",
+ "log",
+]
+
+[[package]]
+name = "http-types"
+version = "2.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "32613ebb139d1d430ef5783676f84abfa06fc5f2b4b5a25220cdeeff7e16ef5c"
+dependencies = [
+ "anyhow",
+ "async-channel",
+ "async-std",
+ "base64 0.13.0",
+ "cookie",
+ "futures-lite",
+ "infer",
+ "pin-project-lite 0.2.4",
+ "rand",
+ "serde",
+ "serde_json",
+ "serde_qs",
+ "serde_urlencoded",
+ "url",
+]
+
+[[package]]
+name = "httparse"
+version = "1.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "615caabe2c3160b313d52ccc905335f4ed5f10881dd63dc5699d47e90be85691"
+
+[[package]]
+name = "humansize"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b6cab2627acfc432780848602f3f558f7e9dd427352224b0d9324025796d2a5e"
+
+[[package]]
+name = "idna"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "de910d521f7cc3135c4de8db1cb910e0b5ed1dc6f57c381cd07e8e661ce10094"
+dependencies = [
+ "matches",
+ "unicode-bidi",
+ "unicode-normalization",
+]
+
+[[package]]
+name = "infer"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "64e9829a50b42bb782c1df523f78d332fe371b10c661e78b7a3c34b0198e9fac"
+
+[[package]]
+name = "instant"
+version = "0.1.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "61124eeebbd69b8190558df225adf7e4caafce0d743919e5d6b19652314ec5ec"
+dependencies = [
+ "cfg-if 1.0.0",
+]
+
+[[package]]
+name = "isahc"
+version = "0.9.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2948a0ce43e2c2ef11d7edf6816508998d99e13badd1150be0914205df9388a"
+dependencies = [
+ "bytes 0.5.6",
+ "crossbeam-utils 0.8.1",
+ "curl",
+ "curl-sys",
+ "flume",
+ "futures-lite",
+ "http",
+ "log",
+ "once_cell",
+ "slab",
+ "sluice",
+ "tracing",
+ "tracing-futures",
+ "url",
+ "waker-fn",
+]
+
+[[package]]
+name = "itoa"
+version = "0.4.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dd25036021b0de88a0aff6b850051563c6516d0bf53f8638938edbb9de732736"
+
+[[package]]
+name = "js-sys"
+version = "0.3.47"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5cfb73131c35423a367daf8cbd24100af0d077668c8c2943f0e7dd775fef0f65"
+dependencies = [
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "kv-log-macro"
+version = "1.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0de8b303297635ad57c9f5059fd9cee7a47f8e8daa09df0fcd07dd39fb22977f"
+dependencies = [
+ "log",
+]
+
+[[package]]
+name = "lazy_static"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+
+[[package]]
+name = "libc"
+version = "0.2.86"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b7282d924be3275cec7f6756ff4121987bc6481325397dde6ba3e7802b1a8b1c"
+
+[[package]]
+name = "libnghttp2-sys"
+version = "0.1.6+1.43.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0af55541a8827e138d59ec9e5877fb6095ece63fb6f4da45e7491b4fbd262855"
+dependencies = [
+ "cc",
+ "libc",
+]
+
+[[package]]
+name = "libz-sys"
+version = "1.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "602113192b08db8f38796c4e85c39e960c145965140e918018bcde1952429655"
+dependencies = [
+ "cc",
+ "libc",
+ "pkg-config",
+ "vcpkg",
+]
+
+[[package]]
+name = "lock_api"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dd96ffd135b2fd7b973ac026d28085defbe8983df057ced3eb4f2130b0831312"
+dependencies = [
+ "scopeguard",
+]
+
+[[package]]
+name = "log"
+version = "0.4.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710"
+dependencies = [
+ "cfg-if 1.0.0",
+ "value-bag",
+]
+
+[[package]]
+name = "matches"
+version = "0.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08"
+
+[[package]]
+name = "maybe-uninit"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00"
+
+[[package]]
+name = "memchr"
+version = "2.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0ee1c47aaa256ecabcaea351eae4a9b01ef39ed810004e298d2511ed284b1525"
+
+[[package]]
+name = "mime"
+version = "0.3.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d"
+
+[[package]]
+name = "mime_guess"
+version = "2.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2684d4c2e97d99848d30b324b00c8fcc7e5c897b7cbb5819b09e7c90e8baf212"
+dependencies = [
+ "mime",
+ "unicase",
+]
+
+[[package]]
+name = "miniz_oxide"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0f2d26ec3309788e423cfbf68ad1800f061638098d76a83681af979dc4eda19d"
+dependencies = [
+ "adler",
+ "autocfg",
+]
+
+[[package]]
+name = "nb-connect"
+version = "1.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "670361df1bc2399ee1ff50406a0d422587dd3bb0da596e1978fe8e05dabddf4f"
+dependencies = [
+ "libc",
+ "socket2",
+]
+
+[[package]]
+name = "nom"
+version = "6.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ab6f70b46d6325aa300f1c7bb3d470127dfc27806d8ea6bf294ee0ce643ce2b1"
+dependencies = [
+ "bitvec",
+ "memchr",
+ "version_check",
+]
+
+[[package]]
+name = "num-traits"
+version = "0.2.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "num_cpus"
+version = "1.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3"
+dependencies = [
+ "hermit-abi",
+ "libc",
+]
+
+[[package]]
+name = "object"
+version = "0.23.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a9a7ab5d64814df0fe4a4b5ead45ed6c5f181ee3ff04ba344313a6c80446c5d4"
+
+[[package]]
+name = "once_cell"
+version = "1.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "13bd41f508810a131401606d54ac32a467c97172d74ba7662562ebba5ad07fa0"
+
+[[package]]
+name = "opaque-debug"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5"
+
+[[package]]
+name = "openssl-probe"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de"
+
+[[package]]
+name = "openssl-sys"
+version = "0.9.60"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "921fc71883267538946025deffb622905ecad223c28efbfdef9bb59a0175f3e6"
+dependencies = [
+ "autocfg",
+ "cc",
+ "libc",
+ "pkg-config",
+ "vcpkg",
+]
+
+[[package]]
+name = "parking"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "427c3892f9e783d91cc128285287e70a59e206ca452770ece88a76f7a3eddd72"
+
+[[package]]
+name = "percent-encoding"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"
+
+[[package]]
+name = "pin-project"
+version = "0.4.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2ffbc8e94b38ea3d2d8ba92aea2983b503cd75d0888d75b86bb37970b5698e15"
+dependencies = [
+ "pin-project-internal 0.4.27",
+]
+
+[[package]]
+name = "pin-project"
+version = "1.0.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "96fa8ebb90271c4477f144354485b8068bd8f6b78b428b01ba892ca26caf0b63"
+dependencies = [
+ "pin-project-internal 1.0.5",
+]
+
+[[package]]
+name = "pin-project-internal"
+version = "0.4.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "65ad2ae56b6abe3a1ee25f15ee605bacadb9a764edaba9c2bf4103800d4a1895"
+dependencies = [
+ "proc-macro2 1.0.24",
+ "quote 1.0.9",
+ "syn 1.0.60",
+]
+
+[[package]]
+name = "pin-project-internal"
+version = "1.0.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "758669ae3558c6f74bd2a18b41f7ac0b5a195aea6639d6a9b5e5d1ad5ba24c0b"
+dependencies = [
+ "proc-macro2 1.0.24",
+ "quote 1.0.9",
+ "syn 1.0.60",
+]
+
+[[package]]
+name = "pin-project-lite"
+version = "0.1.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c917123afa01924fc84bb20c4c03f004d9c38e5127e3c039bbf7f4b9c76a2f6b"
+
+[[package]]
+name = "pin-project-lite"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "439697af366c49a6d0a010c56a0d97685bc140ce0d377b13a2ea2aa42d64a827"
+
+[[package]]
+name = "pin-utils"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+
+[[package]]
+name = "pkg-config"
+version = "0.3.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3831453b3449ceb48b6d9c7ad7c96d5ea673e9b470a1dc578c2ce6521230884c"
+
+[[package]]
+name = "polling"
+version = "2.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a2a7bc6b2a29e632e45451c941832803a18cce6781db04de8a04696cdca8bde4"
+dependencies = [
+ "cfg-if 0.1.10",
+ "libc",
+ "log",
+ "wepoll-sys",
+ "winapi",
+]
+
+[[package]]
+name = "polyval"
+version = "0.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eebcc4aa140b9abd2bc40d9c3f7ccec842679cd79045ac3a7ac698c1a064b7cd"
+dependencies = [
+ "cpuid-bool 0.2.0",
+ "opaque-debug",
+ "universal-hash",
+]
+
+[[package]]
+name = "ppv-lite86"
+version = "0.2.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857"
+
+[[package]]
+name = "pr-tracker"
+version = "0.1.0"
+dependencies = [
+ "askama",
+ "async-std",
+ "futures-util",
+ "graphql_client",
+ "http-types",
+ "once_cell",
+ "pkg-config",
+ "regex",
+ "serde",
+ "serde_json",
+ "structopt",
+ "surf",
+ "tide",
+]
+
+[[package]]
+name = "proc-macro-error"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
+dependencies = [
+ "proc-macro-error-attr",
+ "proc-macro2 1.0.24",
+ "quote 1.0.9",
+ "syn 1.0.60",
+ "version_check",
+]
+
+[[package]]
+name = "proc-macro-error-attr"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
+dependencies = [
+ "proc-macro2 1.0.24",
+ "quote 1.0.9",
+ "version_check",
+]
+
+[[package]]
+name = "proc-macro-hack"
+version = "0.5.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5"
+
+[[package]]
+name = "proc-macro-nested"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bc881b2c22681370c6a780e47af9840ef841837bc98118431d4e1868bd0c1086"
+
+[[package]]
+name = "proc-macro2"
+version = "0.4.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759"
+dependencies = [
+ "unicode-xid 0.1.0",
+]
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.24"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e0704ee1a7e00d7bb417d0770ea303c1bccbabf0ef1667dae92b5967f5f8a71"
+dependencies = [
+ "unicode-xid 0.2.1",
+]
+
+[[package]]
+name = "quote"
+version = "0.6.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1"
+dependencies = [
+ "proc-macro2 0.4.30",
+]
+
+[[package]]
+name = "quote"
+version = "1.0.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7"
+dependencies = [
+ "proc-macro2 1.0.24",
+]
+
+[[package]]
+name = "radium"
+version = "0.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "941ba9d78d8e2f7ce474c015eea4d9c6d25b6a3327f9832ee29a4de27f91bbb8"
+
+[[package]]
+name = "rand"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
+dependencies = [
+ "getrandom",
+ "libc",
+ "rand_chacha",
+ "rand_core",
+ "rand_hc",
+]
+
+[[package]]
+name = "rand_chacha"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
+dependencies = [
+ "ppv-lite86",
+ "rand_core",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
+dependencies = [
+ "getrandom",
+]
+
+[[package]]
+name = "rand_hc"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
+dependencies = [
+ "rand_core",
+]
+
+[[package]]
+name = "regex"
+version = "1.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d9251239e129e16308e70d853559389de218ac275b515068abc96829d05b948a"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax",
+ "thread_local",
+]
+
+[[package]]
+name = "regex-syntax"
+version = "0.6.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b5eb417147ba9860a96cfe72a0b93bf88fee1744b5636ec99ab20c1aa9376581"
+
+[[package]]
+name = "route-recognizer"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "56770675ebc04927ded3e60633437841581c285dc6236109ea25fbf3beb7b59e"
+
+[[package]]
+name = "rustc-demangle"
+version = "0.1.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6e3bad0ee36814ca07d7968269dd4b7ec89ec2da10c4bb613928d3077083c232"
+
+[[package]]
+name = "rustc_version"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
+dependencies = [
+ "semver",
+]
+
+[[package]]
+name = "ryu"
+version = "1.0.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e"
+
+[[package]]
+name = "schannel"
+version = "0.1.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f05ba609c234e60bee0d547fe94a4c7e9da733d1c962cf6e59efa4cd9c8bc75"
+dependencies = [
+ "lazy_static",
+ "winapi",
+]
+
+[[package]]
+name = "scopeguard"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
+
+[[package]]
+name = "semver"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
+dependencies = [
+ "semver-parser",
+]
+
+[[package]]
+name = "semver-parser"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
+
+[[package]]
+name = "serde"
+version = "1.0.123"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "92d5161132722baa40d802cc70b15262b98258453e85e5d1d365c757c73869ae"
+dependencies = [
+ "serde_derive",
+]
+
+[[package]]
+name = "serde_derive"
+version = "1.0.123"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9391c295d64fc0abb2c556bad848f33cb8296276b1ad2677d1ae1ace4f258f31"
+dependencies = [
+ "proc-macro2 1.0.24",
+ "quote 1.0.9",
+ "syn 1.0.60",
+]
+
+[[package]]
+name = "serde_json"
+version = "1.0.62"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ea1c6153794552ea7cf7cf63b1231a25de00ec90db326ba6264440fa08e31486"
+dependencies = [
+ "itoa",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "serde_qs"
+version = "0.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5af82de3c6549b001bec34961ff2d6a54339a87bab37ce901b693401f27de6cb"
+dependencies = [
+ "data-encoding",
+ "percent-encoding",
+ "serde",
+ "thiserror",
+]
+
+[[package]]
+name = "serde_urlencoded"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "edfa57a7f8d9c1d260a549e7224100f6c43d43f9103e06dd8b4095a9b2b43ce9"
+dependencies = [
+ "form_urlencoded",
+ "itoa",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "sha1"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2579985fda508104f7587689507983eadd6a6e84dd35d6d115361f530916fa0d"
+
+[[package]]
+name = "sha2"
+version = "0.9.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fa827a14b29ab7f44778d14a88d3cb76e949c45083f7dbfa507d0cb699dc12de"
+dependencies = [
+ "block-buffer",
+ "cfg-if 1.0.0",
+ "cpuid-bool 0.1.2",
+ "digest",
+ "opaque-debug",
+]
+
+[[package]]
+name = "signal-hook"
+version = "0.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "780f5e3fe0c66f67197236097d89de1e86216f1f6fdeaf47c442f854ab46c240"
+dependencies = [
+ "libc",
+ "signal-hook-registry",
+]
+
+[[package]]
+name = "signal-hook-registry"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "16f1d0fef1604ba8f7a073c7e701f213e056707210e9020af4528e0101ce11a6"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "simple-mutex"
+version = "1.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38aabbeafa6f6dead8cebf246fe9fae1f9215c8d29b3a69f93bd62a9e4a3dcd6"
+dependencies = [
+ "event-listener",
+]
+
+[[package]]
+name = "slab"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8"
+
+[[package]]
+name = "sluice"
+version = "0.5.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8fa0333a60ff2e3474a6775cc611840c2a55610c831dd366503474c02f1a28f5"
+dependencies = [
+ "futures-channel",
+ "futures-core",
+ "futures-io",
+]
+
+[[package]]
+name = "socket2"
+version = "0.3.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "122e570113d28d773067fab24266b66753f6ea915758651696b6e35e49f88d6e"
+dependencies = [
+ "cfg-if 1.0.0",
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "spinning_top"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7e529d73e80d64b5f2631f9035113347c578a1c9c7774b83a2b880788459ab36"
+dependencies = [
+ "lock_api",
+]
+
+[[package]]
+name = "stable_deref_trait"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
+
+[[package]]
+name = "standback"
+version = "0.2.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a2beb4d1860a61f571530b3f855a1b538d0200f7871c63331ecd6f17b1f014f8"
+dependencies = [
+ "version_check",
+]
+
+[[package]]
+name = "stdweb"
+version = "0.4.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d022496b16281348b52d0e30ae99e01a73d737b2f45d38fed4edf79f9325a1d5"
+dependencies = [
+ "discard",
+ "rustc_version",
+ "stdweb-derive",
+ "stdweb-internal-macros",
+ "stdweb-internal-runtime",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "stdweb-derive"
+version = "0.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c87a60a40fccc84bef0652345bbbbbe20a605bf5d0ce81719fc476f5c03b50ef"
+dependencies = [
+ "proc-macro2 1.0.24",
+ "quote 1.0.9",
+ "serde",
+ "serde_derive",
+ "syn 1.0.60",
+]
+
+[[package]]
+name = "stdweb-internal-macros"
+version = "0.2.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "58fa5ff6ad0d98d1ffa8cb115892b6e69d67799f6763e162a1c9db421dc22e11"
+dependencies = [
+ "base-x",
+ "proc-macro2 1.0.24",
+ "quote 1.0.9",
+ "serde",
+ "serde_derive",
+ "serde_json",
+ "sha1",
+ "syn 1.0.60",
+]
+
+[[package]]
+name = "stdweb-internal-runtime"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "213701ba3370744dcd1a12960caa4843b3d68b4d1c0a5d575e0d65b2ee9d16c0"
+
+[[package]]
+name = "strsim"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
+
+[[package]]
+name = "structopt"
+version = "0.3.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5277acd7ee46e63e5168a80734c9f6ee81b1367a7d8772a2d765df2a3705d28c"
+dependencies = [
+ "clap",
+ "lazy_static",
+ "structopt-derive",
+]
+
+[[package]]
+name = "structopt-derive"
+version = "0.4.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5ba9cdfda491b814720b6b06e0cac513d922fc407582032e8706e9f137976f90"
+dependencies = [
+ "heck",
+ "proc-macro-error",
+ "proc-macro2 1.0.24",
+ "quote 1.0.9",
+ "syn 1.0.60",
+]
+
+[[package]]
+name = "subtle"
+version = "2.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e81da0851ada1f3e9d4312c704aa4f8806f0f9d69faaf8df2f3464b4a9437c2"
+
+[[package]]
+name = "surf"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7189c787d96fe18fef704950de76d590022d9d70858a4a201e1f07a0666882ea"
+dependencies = [
+ "async-std",
+ "async-trait",
+ "cfg-if 0.1.10",
+ "encoding_rs",
+ "futures-util",
+ "http-client",
+ "http-types",
+ "log",
+ "mime_guess",
+ "once_cell",
+ "pin-project-lite 0.1.11",
+ "serde",
+ "serde_json",
+ "web-sys",
+]
+
+[[package]]
+name = "sval"
+version = "1.0.0-alpha.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "45f6ee7c7b87caf59549e9fe45d6a69c75c8019e79e212a835c5da0e92f0ba08"
+
+[[package]]
+name = "syn"
+version = "0.15.44"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5"
+dependencies = [
+ "proc-macro2 0.4.30",
+ "quote 0.6.13",
+ "unicode-xid 0.1.0",
+]
+
+[[package]]
+name = "syn"
+version = "1.0.60"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c700597eca8a5a762beb35753ef6b94df201c81cca676604f547495a0d7f0081"
+dependencies = [
+ "proc-macro2 1.0.24",
+ "quote 1.0.9",
+ "unicode-xid 0.2.1",
+]
+
+[[package]]
+name = "synstructure"
+version = "0.12.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b834f2d66f734cb897113e34aaff2f1ab4719ca946f9a7358dba8f8064148701"
+dependencies = [
+ "proc-macro2 1.0.24",
+ "quote 1.0.9",
+ "syn 1.0.60",
+ "unicode-xid 0.2.1",
+]
+
+[[package]]
+name = "tap"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369"
+
+[[package]]
+name = "textwrap"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
+dependencies = [
+ "unicode-width",
+]
+
+[[package]]
+name = "thiserror"
+version = "1.0.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "76cc616c6abf8c8928e2fdcc0dbfab37175edd8fb49a4641066ad1364fdab146"
+dependencies = [
+ "thiserror-impl",
+]
+
+[[package]]
+name = "thiserror-impl"
+version = "1.0.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9be73a2caec27583d0046ef3796c3794f868a5bc813db689eed00c7631275cd1"
+dependencies = [
+ "proc-macro2 1.0.24",
+ "quote 1.0.9",
+ "syn 1.0.60",
+]
+
+[[package]]
+name = "thread_local"
+version = "1.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8018d24e04c95ac8790716a5987d0fec4f8b27249ffa0f7d33f1369bdfb88cbd"
+dependencies = [
+ "once_cell",
+]
+
+[[package]]
+name = "tide"
+version = "0.16.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c459573f0dd2cc734b539047f57489ea875af8ee950860ded20cf93a79a1dee0"
+dependencies = [
+ "async-h1",
+ "async-sse",
+ "async-std",
+ "async-trait",
+ "femme",
+ "futures-util",
+ "http-client",
+ "http-types",
+ "kv-log-macro",
+ "log",
+ "pin-project-lite 0.2.4",
+ "route-recognizer",
+ "serde",
+ "serde_json",
+]
+
+[[package]]
+name = "time"
+version = "0.2.25"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1195b046942c221454c2539395f85413b33383a067449d78aab2b7b052a142f7"
+dependencies = [
+ "const_fn",
+ "libc",
+ "standback",
+ "stdweb",
+ "time-macros",
+ "version_check",
+ "winapi",
+]
+
+[[package]]
+name = "time-macros"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "957e9c6e26f12cb6d0dd7fc776bb67a706312e7299aed74c8dd5b17ebb27e2f1"
+dependencies = [
+ "proc-macro-hack",
+ "time-macros-impl",
+]
+
+[[package]]
+name = "time-macros-impl"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e5c3be1edfad6027c69f5491cf4cb310d1a71ecd6af742788c6ff8bced86b8fa"
+dependencies = [
+ "proc-macro-hack",
+ "proc-macro2 1.0.24",
+ "quote 1.0.9",
+ "standback",
+ "syn 1.0.60",
+]
+
+[[package]]
+name = "tinyvec"
+version = "1.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "317cca572a0e89c3ce0ca1f1bdc9369547fe318a683418e42ac8f59d14701023"
+dependencies = [
+ "tinyvec_macros",
+]
+
+[[package]]
+name = "tinyvec_macros"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c"
+
+[[package]]
+name = "toml"
+version = "0.5.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a31142970826733df8241ef35dc040ef98c679ab14d7c3e54d827099b3acecaa"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "tracing"
+version = "0.1.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f7d40a22fd029e33300d8d89a5cc8ffce18bb7c587662f54629e94c9de5487f3"
+dependencies = [
+ "cfg-if 1.0.0",
+ "log",
+ "pin-project-lite 0.2.4",
+ "tracing-attributes",
+ "tracing-core",
+]
+
+[[package]]
+name = "tracing-attributes"
+version = "0.1.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "43f080ea7e4107844ef4766459426fa2d5c1ada2e47edba05dc7fa99d9629f47"
+dependencies = [
+ "proc-macro2 1.0.24",
+ "quote 1.0.9",
+ "syn 1.0.60",
+]
+
+[[package]]
+name = "tracing-core"
+version = "0.1.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f50de3927f93d202783f4513cda820ab47ef17f624b03c096e86ef00c67e6b5f"
+dependencies = [
+ "lazy_static",
+]
+
+[[package]]
+name = "tracing-futures"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ab7bb6f14721aa00656086e9335d363c5c8747bae02ebe32ea2c7dece5689b4c"
+dependencies = [
+ "pin-project 0.4.27",
+ "tracing",
+]
+
+[[package]]
+name = "typenum"
+version = "1.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "373c8a200f9e67a0c95e62a4f52fbf80c23b4381c05a17845531982fa99e6b33"
+
+[[package]]
+name = "unicase"
+version = "2.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6"
+dependencies = [
+ "version_check",
+]
+
+[[package]]
+name = "unicode-bidi"
+version = "0.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5"
+dependencies = [
+ "matches",
+]
+
+[[package]]
+name = "unicode-normalization"
+version = "0.1.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "07fbfce1c8a97d547e8b5334978438d9d6ec8c20e38f56d4a4374d181493eaef"
+dependencies = [
+ "tinyvec",
+]
+
+[[package]]
+name = "unicode-segmentation"
+version = "1.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bb0d2e7be6ae3a5fa87eed5fb451aff96f2573d2694942e40543ae0bbe19c796"
+
+[[package]]
+name = "unicode-width"
+version = "0.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3"
+
+[[package]]
+name = "unicode-xid"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc"
+
+[[package]]
+name = "unicode-xid"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564"
+
+[[package]]
+name = "universal-hash"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8326b2c654932e3e4f9196e69d08fdf7cfd718e1dc6f66b347e6024a0c961402"
+dependencies = [
+ "generic-array",
+ "subtle",
+]
+
+[[package]]
+name = "unreachable"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56"
+dependencies = [
+ "void",
+]
+
+[[package]]
+name = "url"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5909f2b0817350449ed73e8bcd81c8c3c8d9a7a5d8acba4b27db277f1868976e"
+dependencies = [
+ "form_urlencoded",
+ "idna",
+ "matches",
+ "percent-encoding",
+ "serde",
+]
+
+[[package]]
+name = "value-bag"
+version = "1.0.0-alpha.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6b676010e055c99033117c2343b33a40a30b91fecd6c49055ac9cd2d6c305ab1"
+dependencies = [
+ "ctor",
+ "sval",
+]
+
+[[package]]
+name = "vcpkg"
+version = "0.2.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b00bca6106a5e23f3eee943593759b7fcddb00554332e856d990c893966879fb"
+
+[[package]]
+name = "vec-arena"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eafc1b9b2dfc6f5529177b62cf806484db55b32dc7c9658a118e11bbeb33061d"
+
+[[package]]
+name = "vec_map"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
+
+[[package]]
+name = "version_check"
+version = "0.9.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b5a972e5669d67ba988ce3dc826706fb0a8b01471c088cb0b6110b805cc36aed"
+
+[[package]]
+name = "void"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d"
+
+[[package]]
+name = "waker-fn"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca"
+
+[[package]]
+name = "wasi"
+version = "0.9.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
+
+[[package]]
+name = "wasm-bindgen"
+version = "0.2.70"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "55c0f7123de74f0dab9b7d00fd614e7b19349cd1e2f5252bbe9b1754b59433be"
+dependencies = [
+ "cfg-if 1.0.0",
+ "serde",
+ "serde_json",
+ "wasm-bindgen-macro",
+]
+
+[[package]]
+name = "wasm-bindgen-backend"
+version = "0.2.70"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7bc45447f0d4573f3d65720f636bbcc3dd6ce920ed704670118650bcd47764c7"
+dependencies = [
+ "bumpalo",
+ "lazy_static",
+ "log",
+ "proc-macro2 1.0.24",
+ "quote 1.0.9",
+ "syn 1.0.60",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-futures"
+version = "0.4.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3de431a2910c86679c34283a33f66f4e4abd7e0aec27b6669060148872aadf94"
+dependencies = [
+ "cfg-if 1.0.0",
+ "js-sys",
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "wasm-bindgen-macro"
+version = "0.2.70"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3b8853882eef39593ad4174dd26fc9865a64e84026d223f63bb2c42affcbba2c"
+dependencies = [
+ "quote 1.0.9",
+ "wasm-bindgen-macro-support",
+]
+
+[[package]]
+name = "wasm-bindgen-macro-support"
+version = "0.2.70"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4133b5e7f2a531fa413b3a1695e925038a05a71cf67e87dafa295cb645a01385"
+dependencies = [
+ "proc-macro2 1.0.24",
+ "quote 1.0.9",
+ "syn 1.0.60",
+ "wasm-bindgen-backend",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-shared"
+version = "0.2.70"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dd4945e4943ae02d15c13962b38a5b1e81eadd4b71214eee75af64a4d6a4fd64"
+
+[[package]]
+name = "web-sys"
+version = "0.3.47"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c40dc691fc48003eba817c38da7113c15698142da971298003cac3ef175680b3"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "wepoll-sys"
+version = "3.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0fcb14dea929042224824779fbc82d9fab8d2e6d3cbc0ac404de8edf489e77ff"
+dependencies = [
+ "cc",
+]
+
+[[package]]
+name = "winapi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+dependencies = [
+ "winapi-i686-pc-windows-gnu",
+ "winapi-x86_64-pc-windows-gnu",
+]
+
+[[package]]
+name = "winapi-i686-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+
+[[package]]
+name = "winapi-x86_64-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+
+[[package]]
+name = "wyz"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85e60b0d1b5f99db2556934e21937020776a5d31520bf169e851ac44e6420214"
diff --git a/Cargo.lock.license b/Cargo.lock.license
new file mode 100644
index 0000000..c49c11b
--- /dev/null
+++ b/Cargo.lock.license
@@ -0,0 +1,2 @@
+SPDX-License-Identifier: CC0-1.0
+SPDX-FileCopyrightText: 2021 Alyssa Ross <hi@alyssa.is>
diff --git a/Cargo.toml b/Cargo.toml
new file mode 100644
index 0000000..ec985e4
--- /dev/null
+++ b/Cargo.toml
@@ -0,0 +1,37 @@
+# SPDX-License-Identifier: CC0-1.0
+# SPDX-FileCopyrightText: 2021 Alyssa Ross <hi@alyssa.is>
+
+[package]
+name = "pr-tracker"
+version = "0.1.0"
+authors = ["Alyssa Ross <hi@alyssa.is>"]
+edition = "2018"
+license = "AGPL-3.0-or-later WITH GPL-3.0-linking-exception"
+
+[build-dependencies]
+pkg-config = "0.3.19"
+
+[dependencies]
+http-types = "*"
+once_cell = "1.5"
+regex = "1.4"
+surf = "2.1"
+serde_json = "1.0"
+graphql_client = "0.8.0"
+serde = "1.0"
+askama = "0.10.5"
+structopt = "0.3.21"
+futures-util = "0.3.12"
+
+[dependencies.async-std]
+version = "*" # Use whatever tide uses.
+features = ["attributes"]
+
+[dependencies.tide]
+version = "0.16.0"
+default-features = false
+features = ["h1-server", "logger"]
+
+[patch.crates-io]
+# https://github.com/djc/askama/pull/447
+askama = { git = "https://github.com/djc/askama", branch = "main" }
diff --git a/LICENSES/AGPL-3.0-or-later.txt b/LICENSES/AGPL-3.0-or-later.txt
new file mode 100644
index 0000000..3e275d8
--- /dev/null
+++ b/LICENSES/AGPL-3.0-or-later.txt
@@ -0,0 +1,603 @@
+GNU AFFERO GENERAL PUBLIC LICENSE
+Version 3, 19 November 2007
+
+Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+
+Everyone is permitted to copy and distribute verbatim copies of this license
+document, but changing it is not allowed.
+
+                            Preamble
+
+The GNU Affero General Public License is a free, copyleft license for software
+and other kinds of works, specifically designed to ensure cooperation with
+the community in the case of network server software.
+
+The licenses for most software and other practical works are designed to take
+away your freedom to share and change the works.  By contrast, our General
+Public Licenses are intended to guarantee your freedom to share and change
+all versions of a program--to make sure it remains free software for all its
+users.
+
+When we speak of free software, we are referring to freedom, not price.  Our
+General Public Licenses are designed to make sure that you have the freedom
+to distribute copies of free software (and charge for them if you wish), that
+you receive source code or can get it if you want it, that you can change
+the software or use pieces of it in new free programs, and that you know you
+can do these things.
+
+Developers that use our General Public Licenses protect your rights with two
+steps: (1) assert copyright on the software, and (2) offer you this License
+which gives you legal permission to copy, distribute and/or modify the software.
+
+A secondary benefit of defending all users' freedom is that improvements made
+in alternate versions of the program, if they receive widespread use, become
+available for other developers to incorporate.  Many developers of free software
+are heartened and encouraged by the resulting cooperation.  However, in the
+case of software used on network servers, this result may fail to come about.
+The GNU General Public License permits making a modified version and letting
+the public access it on a server without ever releasing its source code to
+the public.
+
+The GNU Affero General Public License is designed specifically to ensure that,
+in such cases, the modified source code becomes available to the community.
+It requires the operator of a network server to provide the source code of
+the modified version running there to the users of that server.  Therefore,
+public use of a modified version, on a publicly accessible server, gives the
+public access to the source code of the modified version.
+
+An older license, called the Affero General Public License and published by
+Affero, was designed to accomplish similar goals.  This is a different license,
+not a version of the Affero GPL, but Affero has released a new version of
+the Affero GPL which permits relicensing under this license.
+
+The precise terms and conditions for copying, distribution and modification
+follow.
+
+                       TERMS AND CONDITIONS
+
+0. Definitions.
+
+"This License" refers to version 3 of the GNU Affero General Public License.
+
+"Copyright" also means copyright-like laws that apply to other kinds of works,
+such as semiconductor masks.
+
+"The Program" refers to any copyrightable work licensed under this License.
+Each licensee is addressed as "you".  "Licensees" and "recipients" may be
+individuals or organizations.
+
+To "modify" a work means to copy from or adapt all or part of the work in
+a fashion requiring copyright permission, other than the making of an exact
+copy.  The resulting work is called a "modified version" of the earlier work
+or a work "based on" the earlier work.
+
+A "covered work" means either the unmodified Program or a work based on the
+Program.
+
+To "propagate" a work means to do anything with it that, without permission,
+would make you directly or secondarily liable for infringement under applicable
+copyright law, except executing it on a computer or modifying a private copy.
+Propagation includes copying, distribution (with or without modification),
+making available to the public, and in some countries other activities as
+well.
+
+To "convey" a work means any kind of propagation that enables other parties
+to make or receive copies.  Mere interaction with a user through a computer
+network, with no transfer of a copy, is not conveying.
+
+An interactive user interface displays "Appropriate Legal Notices" to the
+extent that it includes a convenient and prominently visible feature that
+(1) displays an appropriate copyright notice, and (2) tells the user that
+there is no warranty for the work (except to the extent that warranties are
+provided), that licensees may convey the work under this License, and how
+to view a copy of this License.  If the interface presents a list of user
+commands or options, such as a menu, a prominent item in the list meets this
+criterion.
+
+1. Source Code.
+The "source code" for a work means the preferred form of the work for making
+modifications to it.  "Object code" means any non-source form of a work.
+
+A "Standard Interface" means an interface that either is an official standard
+defined by a recognized standards body, or, in the case of interfaces specified
+for a particular programming language, one that is widely used among developers
+working in that language.
+
+The "System Libraries" of an executable work include anything, other than
+the work as a whole, that (a) is included in the normal form of packaging
+a Major Component, but which is not part of that Major Component, and (b)
+serves only to enable use of the work with that Major Component, or to implement
+a Standard Interface for which an implementation is available to the public
+in source code form.  A "Major Component", in this context, means a major
+essential component (kernel, window system, and so on) of the specific operating
+system (if any) on which the executable work runs, or a compiler used to produce
+the work, or an object code interpreter used to run it.
+
+The "Corresponding Source" for a work in object code form means all the source
+code needed to generate, install, and (for an executable work) run the object
+code and to modify the work, including scripts to control those activities.
+However, it does not include the work's System Libraries, or general-purpose
+tools or generally available free programs which are used unmodified in performing
+those activities but which are not part of the work.  For example, Corresponding
+Source includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically linked
+subprograms that the work is specifically designed to require, such as by
+intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+The Corresponding Source need not include anything that users can regenerate
+automatically from other parts of the Corresponding Source.
+
+The Corresponding Source for a work in source code form is that same work.
+
+2. Basic Permissions.
+All rights granted under this License are granted for the term of copyright
+on the Program, and are irrevocable provided the stated conditions are met.
+This License explicitly affirms your unlimited permission to run the unmodified
+Program.  The output from running a covered work is covered by this License
+only if the output, given its content, constitutes a covered work.  This License
+acknowledges your rights of fair use or other equivalent, as provided by copyright
+law.
+
+You may make, run and propagate covered works that you do not convey, without
+conditions so long as your license otherwise remains in force.  You may convey
+covered works to others for the sole purpose of having them make modifications
+exclusively for you, or provide you with facilities for running those works,
+provided that you comply with the terms of this License in conveying all material
+for which you do not control copyright.  Those thus making or running the
+covered works for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of your copyrighted
+material outside their relationship with you.
+
+Conveying under any other circumstances is permitted solely under the conditions
+stated below.  Sublicensing is not allowed; section 10 makes it unnecessary.
+
+3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+No covered work shall be deemed part of an effective technological measure
+under any applicable law fulfilling obligations under article 11 of the WIPO
+copyright treaty adopted on 20 December 1996, or similar laws prohibiting
+or restricting circumvention of such measures.
+
+When you convey a covered work, you waive any legal power to forbid circumvention
+of technological measures to the extent such circumvention is effected by
+exercising rights under this License with respect to the covered work, and
+you disclaim any intention to limit operation or modification of the work
+as a means of enforcing, against the work's users, your or third parties'
+legal rights to forbid circumvention of technological measures.
+
+4. Conveying Verbatim Copies.
+You may convey verbatim copies of the Program's source code as you receive
+it, in any medium, provided that you conspicuously and appropriately publish
+on each copy an appropriate copyright notice; keep intact all notices stating
+that this License and any non-permissive terms added in accord with section
+7 apply to the code; keep intact all notices of the absence of any warranty;
+and give all recipients a copy of this License along with the Program.
+
+You may charge any price or no price for each copy that you convey, and you
+may offer support or warranty protection for a fee.
+
+5. Conveying Modified Source Versions.
+You may convey a work based on the Program, or the modifications to produce
+it from the Program, in the form of source code under the terms of section
+4, provided that you also meet all of these conditions:
+
+a) The work must carry prominent notices stating that you modified it, and
+giving a relevant date.
+
+b) The work must carry prominent notices stating that it is released under
+this License and any conditions added under section 7.  This requirement modifies
+the requirement in section 4 to "keep intact all notices".
+
+c) You must license the entire work, as a whole, under this License to anyone
+who comes into possession of a copy.  This License will therefore apply, along
+with any applicable section 7 additional terms, to the whole of the work,
+and all its parts, regardless of how they are packaged.  This License gives
+no permission to license the work in any other way, but it does not invalidate
+such permission if you have separately received it.
+
+d) If the work has interactive user interfaces, each must display Appropriate
+Legal Notices; however, if the Program has interactive interfaces that do
+not display Appropriate Legal Notices, your work need not make them do so.
+
+A compilation of a covered work with other separate and independent works,
+which are not by their nature extensions of the covered work, and which are
+not combined with it such as to form a larger program, in or on a volume of
+a storage or distribution medium, is called an "aggregate" if the compilation
+and its resulting copyright are not used to limit the access or legal rights
+of the compilation's users beyond what the individual works permit.  Inclusion
+of a covered work in an aggregate does not cause this License to apply to
+the other parts of the aggregate.
+
+6. Conveying Non-Source Forms.
+You may convey a covered work in object code form under the terms of sections
+4 and 5, provided that you also convey the machine-readable Corresponding
+Source under the terms of this License, in one of these ways:
+
+a) Convey the object code in, or embodied in, a physical product (including
+a physical distribution medium), accompanied by the Corresponding Source fixed
+on a durable physical medium customarily used for software interchange.
+
+b) Convey the object code in, or embodied in, a physical product (including
+a physical distribution medium), accompanied by a written offer, valid for
+at least three years and valid for as long as you offer spare parts or customer
+support for that product model, to give anyone who possesses the object code
+either (1) a copy of the Corresponding Source for all the software in the
+product that is covered by this License, on a durable physical medium customarily
+used for software interchange, for a price no more than your reasonable cost
+of physically performing this conveying of source, or (2) access to copy the
+Corresponding Source from a network server at no charge.
+
+c) Convey individual copies of the object code with a copy of the written
+offer to provide the Corresponding Source.  This alternative is allowed only
+occasionally and noncommercially, and only if you received the object code
+with such an offer, in accord with subsection 6b.
+
+d) Convey the object code by offering access from a designated place (gratis
+or for a charge), and offer equivalent access to the Corresponding Source
+in the same way through the same place at no further charge.  You need not
+require recipients to copy the Corresponding Source along with the object
+code.  If the place to copy the object code is a network server, the Corresponding
+Source may be on a different server (operated by you or a third party) that
+supports equivalent copying facilities, provided you maintain clear directions
+next to the object code saying where to find the Corresponding Source.  Regardless
+of what server hosts the Corresponding Source, you remain obligated to ensure
+that it is available for as long as needed to satisfy these requirements.
+
+e) Convey the object code using peer-to-peer transmission, provided you inform
+other peers where the object code and Corresponding Source of the work are
+being offered to the general public at no charge under subsection 6d.
+
+A separable portion of the object code, whose source code is excluded from
+the Corresponding Source as a System Library, need not be included in conveying
+the object code work.
+
+A "User Product" is either (1) a "consumer product", which means any tangible
+personal property which is normally used for personal, family, or household
+purposes, or (2) anything designed or sold for incorporation into a dwelling.
+In determining whether a product is a consumer product, doubtful cases shall
+be resolved in favor of coverage.  For a particular product received by a
+particular user, "normally used" refers to a typical or common use of that
+class of product, regardless of the status of the particular user or of the
+way in which the particular user actually uses, or expects or is expected
+to use, the product.  A product is a consumer product regardless of whether
+the product has substantial commercial, industrial or non-consumer uses, unless
+such uses represent the only significant mode of use of the product.
+
+"Installation Information" for a User Product means any methods, procedures,
+authorization keys, or other information required to install and execute modified
+versions of a covered work in that User Product from a modified version of
+its Corresponding Source.  The information must suffice to ensure that the
+continued functioning of the modified object code is in no case prevented
+or interfered with solely because modification has been made.
+
+If you convey an object code work under this section in, or with, or specifically
+for use in, a User Product, and the conveying occurs as part of a transaction
+in which the right of possession and use of the User Product is transferred
+to the recipient in perpetuity or for a fixed term (regardless of how the
+transaction is characterized), the Corresponding Source conveyed under this
+section must be accompanied by the Installation Information.  But this requirement
+does not apply if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has been installed
+in ROM).
+
+The requirement to provide Installation Information does not include a requirement
+to continue to provide support service, warranty, or updates for a work that
+has been modified or installed by the recipient, or for the User Product in
+which it has been modified or installed.  Access to a network may be denied
+when the modification itself materially and adversely affects the operation
+of the network or violates the rules and protocols for communication across
+the network.
+
+Corresponding Source conveyed, and Installation Information provided, in accord
+with this section must be in a format that is publicly documented (and with
+an implementation available to the public in source code form), and must require
+no special password or key for unpacking, reading or copying.
+
+7. Additional Terms.
+"Additional permissions" are terms that supplement the terms of this License
+by making exceptions from one or more of its conditions. Additional permissions
+that are applicable to the entire Program shall be treated as though they
+were included in this License, to the extent that they are valid under applicable
+law.  If additional permissions apply only to part of the Program, that part
+may be used separately under those permissions, but the entire Program remains
+governed by this License without regard to the additional permissions.
+
+When you convey a copy of a covered work, you may at your option remove any
+additional permissions from that copy, or from any part of it.  (Additional
+permissions may be written to require their own removal in certain cases when
+you modify the work.)  You may place additional permissions on material, added
+by you to a covered work, for which you have or can give appropriate copyright
+permission.
+
+Notwithstanding any other provision of this License, for material you add
+to a covered work, you may (if authorized by the copyright holders of that
+material) supplement the terms of this License with terms:
+
+a) Disclaiming warranty or limiting liability differently from the terms of
+sections 15 and 16 of this License; or
+
+b) Requiring preservation of specified reasonable legal notices or author
+attributions in that material or in the Appropriate Legal Notices displayed
+by works containing it; or
+
+c) Prohibiting misrepresentation of the origin of that material, or requiring
+that modified versions of such material be marked in reasonable ways as different
+from the original version; or
+
+d) Limiting the use for publicity purposes of names of licensors or authors
+of the material; or
+
+e) Declining to grant rights under trademark law for use of some trade names,
+trademarks, or service marks; or
+
+f) Requiring indemnification of licensors and authors of that material by
+anyone who conveys the material (or modified versions of it) with contractual
+assumptions of liability to the recipient, for any liability that these contractual
+assumptions directly impose on those licensors and authors.
+
+All other non-permissive additional terms are considered "further restrictions"
+within the meaning of section 10.  If the Program as you received it, or any
+part of it, contains a notice stating that it is governed by this License
+along with a term that is a further restriction, you may remove that term.
+If a license document contains a further restriction but permits relicensing
+or conveying under this License, you may add to a covered work material governed
+by the terms of that license document, provided that the further restriction
+does not survive such relicensing or conveying.
+
+If you add terms to a covered work in accord with this section, you must place,
+in the relevant source files, a statement of the additional terms that apply
+to those files, or a notice indicating where to find the applicable terms.
+
+Additional terms, permissive or non-permissive, may be stated in the form
+of a separately written license, or stated as exceptions; the above requirements
+apply either way.
+
+8. Termination.
+
+You may not propagate or modify a covered work except as expressly provided
+under this License.  Any attempt otherwise to propagate or modify it is void,
+and will automatically terminate your rights under this License (including
+any patent licenses granted under the third paragraph of section 11).
+
+However, if you cease all violation of this License, then your license from
+a particular copyright holder is reinstated (a) provisionally, unless and
+until the copyright holder explicitly and finally terminates your license,
+and (b) permanently, if the copyright holder fails to notify you of the violation
+by some reasonable means prior to 60 days after the cessation.
+
+Moreover, your license from a particular copyright holder is reinstated permanently
+if the copyright holder notifies you of the violation by some reasonable means,
+this is the first time you have received notice of violation of this License
+(for any work) from that copyright holder, and you cure the violation prior
+to 30 days after your receipt of the notice.
+
+Termination of your rights under this section does not terminate the licenses
+of parties who have received copies or rights from you under this License.
+If your rights have been terminated and not permanently reinstated, you do
+not qualify to receive new licenses for the same material under section 10.
+
+9. Acceptance Not Required for Having Copies.
+
+You are not required to accept this License in order to receive or run a copy
+of the Program.  Ancillary propagation of a covered work occurring solely
+as a consequence of using peer-to-peer transmission to receive a copy likewise
+does not require acceptance.  However, nothing other than this License grants
+you permission to propagate or modify any covered work.  These actions infringe
+copyright if you do not accept this License.  Therefore, by modifying or propagating
+a covered work, you indicate your acceptance of this License to do so.
+
+10. Automatic Licensing of Downstream Recipients.
+
+Each time you convey a covered work, the recipient automatically receives
+a license from the original licensors, to run, modify and propagate that work,
+subject to this License.  You are not responsible for enforcing compliance
+by third parties with this License.
+
+An "entity transaction" is a transaction transferring control of an organization,
+or substantially all assets of one, or subdividing an organization, or merging
+organizations.  If propagation of a covered work results from an entity transaction,
+each party to that transaction who receives a copy of the work also receives
+whatever licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the Corresponding
+Source of the work from the predecessor in interest, if the predecessor has
+it or can get it with reasonable efforts.
+
+You may not impose any further restrictions on the exercise of the rights
+granted or affirmed under this License.  For example, you may not impose a
+license fee, royalty, or other charge for exercise of rights granted under
+this License, and you may not initiate litigation (including a cross-claim
+or counterclaim in a lawsuit) alleging that any patent claim is infringed
+by making, using, selling, offering for sale, or importing the Program or
+any portion of it.
+
+11. Patents.
+
+A "contributor" is a copyright holder who authorizes use under this License
+of the Program or a work on which the Program is based.  The work thus licensed
+is called the contributor's "contributor version".
+
+A contributor's "essential patent claims" are all patent claims owned or controlled
+by the contributor, whether already acquired or hereafter acquired, that would
+be infringed by some manner, permitted by this License, of making, using,
+or selling its contributor version, but do not include claims that would be
+infringed only as a consequence of further modification of the contributor
+version.  For purposes of this definition, "control" includes the right to
+grant patent sublicenses in a manner consistent with the requirements of this
+License.
+
+Each contributor grants you a non-exclusive, worldwide, royalty-free patent
+license under the contributor's essential patent claims, to make, use, sell,
+offer for sale, import and otherwise run, modify and propagate the contents
+of its contributor version.
+
+In the following three paragraphs, a "patent license" is any express agreement
+or commitment, however denominated, not to enforce a patent (such as an express
+permission to practice a patent or covenant not to sue for patent infringement).
+To "grant" such a patent license to a party means to make such an agreement
+or commitment not to enforce a patent against the party.
+
+If you convey a covered work, knowingly relying on a patent license, and the
+Corresponding Source of the work is not available for anyone to copy, free
+of charge and under the terms of this License, through a publicly available
+network server or other readily accessible means, then you must either (1)
+cause the Corresponding Source to be so available, or (2) arrange to deprive
+yourself of the benefit of the patent license for this particular work, or
+(3) arrange, in a manner consistent with the requirements of this License,
+to extend the patent
+license to downstream recipients.  "Knowingly relying" means you have actual
+knowledge that, but for the patent license, your conveying the covered work
+in a country, or your recipient's use of the covered work in a country, would
+infringe one or more identifiable patents in that country that you have reason
+to believe are valid.
+
+If, pursuant to or in connection with a single transaction or arrangement,
+you convey, or propagate by procuring conveyance of, a covered work, and grant
+a patent license to some of the parties receiving the covered work authorizing
+them to use, propagate, modify or convey a specific copy of the covered work,
+then the patent license you grant is automatically extended to all recipients
+of the covered work and works based on it.
+
+A patent license is "discriminatory" if it does not include within the scope
+of its coverage, prohibits the exercise of, or is conditioned on the non-exercise
+of one or more of the rights that are specifically granted under this License.
+You may not convey a covered work if you are a party to an arrangement with
+a third party that is in the business of distributing software, under which
+you make payment to the third party based on the extent of your activity of
+conveying the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory patent
+license (a) in connection with copies of the covered work conveyed by you
+(or copies made from those copies), or (b) primarily for and in connection
+with specific products or compilations that contain the covered work, unless
+you entered into that arrangement, or that patent license was granted, prior
+to 28 March 2007.
+
+Nothing in this License shall be construed as excluding or limiting any implied
+license or other defenses to infringement that may otherwise be available
+to you under applicable patent law.
+
+12. No Surrender of Others' Freedom.
+
+If conditions are imposed on you (whether by court order, agreement or otherwise)
+that contradict the conditions of this License, they do not excuse you from
+the conditions of this License.  If you cannot convey a covered work so as
+to satisfy simultaneously your obligations under this License and any other
+pertinent obligations, then as a consequence you may
+not convey it at all.  For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey the
+Program, the only way you could satisfy both those terms and this License
+would be to refrain entirely from conveying the Program.
+
+13. Remote Network Interaction; Use with the GNU General Public License.
+
+Notwithstanding any other provision of this License, if you modify the Program,
+your modified version must prominently offer all users interacting with it
+remotely through a computer network (if your version supports such interaction)
+an opportunity to receive the Corresponding Source of your version by providing
+access to the Corresponding Source from a network server at no charge, through
+some standard or customary means of facilitating copying of software.  This
+Corresponding Source shall include the Corresponding Source for any work covered
+by version 3 of the GNU General Public License that is incorporated pursuant
+to the following paragraph.
+
+Notwithstanding any other provision of this License, you have permission to
+link or combine any covered work with a work licensed under version 3 of the
+GNU General Public License into a single combined work, and to convey the
+resulting work.  The terms of this License will continue to apply to the part
+which is the covered work, but the work with which it is combined will remain
+governed by version 3 of the GNU General Public License.
+
+14. Revised Versions of this License.
+
+The Free Software Foundation may publish revised and/or new versions of the
+GNU Affero General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to address
+new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program specifies
+that a certain numbered version of the GNU Affero General Public License "or
+any later version" applies to it, you have the option of following the terms
+and conditions either of that numbered version or of any later version published
+by the Free Software Foundation.  If the Program does not specify a version
+number of the GNU Affero General Public License, you may choose any version
+ever published by the Free Software Foundation.
+
+If the Program specifies that a proxy can decide which future versions of
+the GNU Affero General Public License can be used, that proxy's public statement
+of acceptance of a version permanently authorizes you to choose that version
+for the Program.
+
+Later license versions may give you additional or different permissions. 
+However, no additional obligations are imposed on any author or copyright
+holder as a result of your choosing to follow a later version.
+
+15. Disclaimer of Warranty.
+
+THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE
+LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
+EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK
+AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR
+OR CORRECTION.
+
+16. Limitation of Liability.
+
+IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL
+ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM
+AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL,
+INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO
+USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED
+INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE
+PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER
+PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+17. Interpretation of Sections 15 and 16.
+
+If the disclaimer of warranty and limitation of liability provided above cannot
+be given local legal effect according to their terms, reviewing courts shall
+apply local law that most closely approximates an absolute waiver of all civil
+liability in connection with the Program, unless a warranty or assumption
+of liability accompanies a copy of the Program in return for a fee.
+
+END OF TERMS AND CONDITIONS
+
+            How to Apply These Terms to Your New Programs
+
+If you develop a new program, and you want it to be of the greatest possible
+use to the public, the best way to achieve this is to make it free software
+which everyone can redistribute and change under these terms.
+
+To do so, attach the following notices to the program.  It is safest to attach
+them to the start of each source file to most effectively state the exclusion
+of warranty; and each file should have at least the "copyright" line and a
+pointer to where the full notice is found.
+
+     <one line to give the program's name and a brief idea of what it does.>
+     Copyright (C) <year>  <name of author>
+
+This program is free software: you can redistribute it and/or modify it under
+the terms of the GNU Affero General Public License as published by the Free
+Software Foundation, either version 3 of the License, or (at your option)
+any later version.
+
+This program is distributed in the hope that it will be useful, but WITHOUT
+ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+FOR A PARTICULAR PURPOSE.  See the GNU Affero General Public License for more
+details.
+
+You should have received a copy of the GNU Affero General Public License along
+with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If your software can interact with users remotely through a computer network,
+you should also make sure that it provides a way for users to get its source.
+For example, if your program is a web application, its interface could display
+a "Source" link that leads users to an archive of the code.  There are many
+ways you could offer source, and different solutions will be better for different
+programs; see section 13 for the specific requirements.
+
+You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary. For
+more information on this, and how to apply and follow the GNU AGPL, see <http://www.gnu.org/licenses/>.
diff --git a/LICENSES/CC0-1.0.txt b/LICENSES/CC0-1.0.txt
new file mode 100644
index 0000000..0e259d4
--- /dev/null
+++ b/LICENSES/CC0-1.0.txt
@@ -0,0 +1,121 @@
+Creative Commons Legal Code
+
+CC0 1.0 Universal
+
+    CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE
+    LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN
+    ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS
+    INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES
+    REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS
+    PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM
+    THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED
+    HEREUNDER.
+
+Statement of Purpose
+
+The laws of most jurisdictions throughout the world automatically confer
+exclusive Copyright and Related Rights (defined below) upon the creator
+and subsequent owner(s) (each and all, an "owner") of an original work of
+authorship and/or a database (each, a "Work").
+
+Certain owners wish to permanently relinquish those rights to a Work for
+the purpose of contributing to a commons of creative, cultural and
+scientific works ("Commons") that the public can reliably and without fear
+of later claims of infringement build upon, modify, incorporate in other
+works, reuse and redistribute as freely as possible in any form whatsoever
+and for any purposes, including without limitation commercial purposes.
+These owners may contribute to the Commons to promote the ideal of a free
+culture and the further production of creative, cultural and scientific
+works, or to gain reputation or greater distribution for their Work in
+part through the use and efforts of others.
+
+For these and/or other purposes and motivations, and without any
+expectation of additional consideration or compensation, the person
+associating CC0 with a Work (the "Affirmer"), to the extent that he or she
+is an owner of Copyright and Related Rights in the Work, voluntarily
+elects to apply CC0 to the Work and publicly distribute the Work under its
+terms, with knowledge of his or her Copyright and Related Rights in the
+Work and the meaning and intended legal effect of CC0 on those rights.
+
+1. Copyright and Related Rights. A Work made available under CC0 may be
+protected by copyright and related or neighboring rights ("Copyright and
+Related Rights"). Copyright and Related Rights include, but are not
+limited to, the following:
+
+  i. the right to reproduce, adapt, distribute, perform, display,
+     communicate, and translate a Work;
+ ii. moral rights retained by the original author(s) and/or performer(s);
+iii. publicity and privacy rights pertaining to a person's image or
+     likeness depicted in a Work;
+ iv. rights protecting against unfair competition in regards to a Work,
+     subject to the limitations in paragraph 4(a), below;
+  v. rights protecting the extraction, dissemination, use and reuse of data
+     in a Work;
+ vi. database rights (such as those arising under Directive 96/9/EC of the
+     European Parliament and of the Council of 11 March 1996 on the legal
+     protection of databases, and under any national implementation
+     thereof, including any amended or successor version of such
+     directive); and
+vii. other similar, equivalent or corresponding rights throughout the
+     world based on applicable law or treaty, and any national
+     implementations thereof.
+
+2. Waiver. To the greatest extent permitted by, but not in contravention
+of, applicable law, Affirmer hereby overtly, fully, permanently,
+irrevocably and unconditionally waives, abandons, and surrenders all of
+Affirmer's Copyright and Related Rights and associated claims and causes
+of action, whether now known or unknown (including existing as well as
+future claims and causes of action), in the Work (i) in all territories
+worldwide, (ii) for the maximum duration provided by applicable law or
+treaty (including future time extensions), (iii) in any current or future
+medium and for any number of copies, and (iv) for any purpose whatsoever,
+including without limitation commercial, advertising or promotional
+purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each
+member of the public at large and to the detriment of Affirmer's heirs and
+successors, fully intending that such Waiver shall not be subject to
+revocation, rescission, cancellation, termination, or any other legal or
+equitable action to disrupt the quiet enjoyment of the Work by the public
+as contemplated by Affirmer's express Statement of Purpose.
+
+3. Public License Fallback. Should any part of the Waiver for any reason
+be judged legally invalid or ineffective under applicable law, then the
+Waiver shall be preserved to the maximum extent permitted taking into
+account Affirmer's express Statement of Purpose. In addition, to the
+extent the Waiver is so judged Affirmer hereby grants to each affected
+person a royalty-free, non transferable, non sublicensable, non exclusive,
+irrevocable and unconditional license to exercise Affirmer's Copyright and
+Related Rights in the Work (i) in all territories worldwide, (ii) for the
+maximum duration provided by applicable law or treaty (including future
+time extensions), (iii) in any current or future medium and for any number
+of copies, and (iv) for any purpose whatsoever, including without
+limitation commercial, advertising or promotional purposes (the
+"License"). The License shall be deemed effective as of the date CC0 was
+applied by Affirmer to the Work. Should any part of the License for any
+reason be judged legally invalid or ineffective under applicable law, such
+partial invalidity or ineffectiveness shall not invalidate the remainder
+of the License, and in such case Affirmer hereby affirms that he or she
+will not (i) exercise any of his or her remaining Copyright and Related
+Rights in the Work or (ii) assert any associated claims and causes of
+action with respect to the Work, in either case contrary to Affirmer's
+express Statement of Purpose.
+
+4. Limitations and Disclaimers.
+
+ a. No trademark or patent rights held by Affirmer are waived, abandoned,
+    surrendered, licensed or otherwise affected by this document.
+ b. Affirmer offers the Work as-is and makes no representations or
+    warranties of any kind concerning the Work, express, implied,
+    statutory or otherwise, including without limitation warranties of
+    title, merchantability, fitness for a particular purpose, non
+    infringement, or the absence of latent or other defects, accuracy, or
+    the present or absence of errors, whether or not discoverable, all to
+    the greatest extent permissible under applicable law.
+ c. Affirmer disclaims responsibility for clearing rights of other persons
+    that may apply to the Work or any use thereof, including without
+    limitation any person's Copyright and Related Rights in the Work.
+    Further, Affirmer disclaims responsibility for obtaining any necessary
+    consents, permissions or other rights required for any use of the
+    Work.
+ d. Affirmer understands and acknowledges that Creative Commons is not a
+    party to this document and has no duty or obligation with respect to
+    this CC0 or use of the Work.
diff --git a/LICENSES/GPL-3.0-linking-exception.txt b/LICENSES/GPL-3.0-linking-exception.txt
new file mode 100644
index 0000000..56096c0
--- /dev/null
+++ b/LICENSES/GPL-3.0-linking-exception.txt
@@ -0,0 +1,3 @@
+Additional permission under GNU GPL version 3 section 7
+
+If you modify this Program, or any covered work, by linking or combining it with [name of library] (or a modified version of that library), containing parts covered by the terms of [name of library's license], the licensors of this Program grant you additional permission to convey the resulting work.
diff --git a/LICENSES/MIT.txt b/LICENSES/MIT.txt
new file mode 100644
index 0000000..f0fd20a
--- /dev/null
+++ b/LICENSES/MIT.txt
@@ -0,0 +1,20 @@
+MIT License
+
+Copyright (c) <year> <copyright holders>
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is furnished
+to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS
+OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
+OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..81202ca
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,41 @@
+# SPDX-License-Identifier: CC0-1.0
+# SPDX-FileCopyrightText: 2021 Alyssa Ross <hi@alyssa.is>
+
+CARGO = cargo
+INSTALL = install
+INSTALL_PROGRAM = $(INSTALL)
+MKDIR_P = mkdir -p
+PROFILE = release
+
+prefix = /usr/local
+exec_prefix = $(prefix)
+bindir = $(exec_prefix)/bin
+
+all: release
+.PHONY: all
+
+cargo-deps: vendor/github_schema.graphql src/merge_commit.graphql
+.PHONY: cargo-deps
+
+target/release/pr-tracker: cargo-deps
+	$(CARGO) build --release
+
+target/debug/pr-tracker: cargo-deps
+	$(CARGO) build
+
+check: cargo-deps
+	$(CARGO) test
+.PHONY: check
+
+install-dirs:
+	$(MKDIR_P) $(DESTDIR)$(bindir)
+.PHONY: install-dirs
+
+install: install-dirs target/$(PROFILE)/pr-tracker
+	$(INSTALL_PROGRAM) target/$(PROFILE)/pr-tracker \
+		$(DESTDIR)$(bindir)/pr-tracker
+.PHONY: install
+
+uninstall:
+	rm -f $(DESTDIR)$(bindir)/pr-tracker
+.PHONY: uninstall
diff --git a/README b/README
new file mode 100644
index 0000000..bc03295
--- /dev/null
+++ b/README
@@ -0,0 +1,112 @@
+pr-tracker
+==========
+
+Run a web server that displays the path a Nixpkgs pull request will
+take through the various release channels.
+
+
+Installation
+------------
+
+Build and runtime dependencies:
+ - libsystemd
+ - OpenSSL
+
+Other build dependencies:
+ - Cargo
+ - rustc
+ - pkg-config
+
+Other runtime dependencies:
+ - Git
+
+In most cases, installation should be as simple as
+
+	make install
+
+
+Usage
+-----
+
+The program must be supplied with a local checkout of the monitored
+git repository, the remote name in the repository corresponding to
+upstream Nixpkgs, a User-Agent string to use when contacting the
+GitHub API, and a URL where users can download the program's source
+code.  Optionally, a "mount" path can be specified, which will be
+prefixed to all of the server's routes, so that it can be served at a
+non-root HTTP path.
+
+For example:
+
+	pr-tracker \
+		--path /var/lib/nixpkgs.git \
+		--remote nixpkgs \
+		--user-agent 'pr-tracker (alyssais)' \
+		--source-url https://example.com/pr-tracker.tar.gz \
+		--mount pr-tracker
+
+Additionally, a GitHub API token should be supplied on pr-tracker's
+standard input.
+
+pr-tracker expects the socket(s) for it to listen on to be set up for
+it by a service supervisor, using the systemd socket activation
+protocol.  It does not support binding its own sockets, but it can
+still be run outside of systemd using by implementing the same
+interface using utility programs, such as in this example that makes
+use of the s6-networking[1] and execline[2] packages (example is
+written in POSIX shell, not execline):
+
+	s6-tcpserver 0.0.0.0 8000 \
+		fdmove 3 0 \
+		env LISTEN_FDS=1 \
+		getpid LISTEN_PID
+		redirfd -r 0 /var/lib/pr-tracker/token \
+		pr-tracker [...]
+
+Further information on available command line arguments can be
+obtained with
+
+	pr-tracker --help
+
+[1]: https://skarnet.org/software/s6-networking/
+[2]: https://skarnet.org/software/execline/
+
+Development
+-----------
+
+The upstream git repository for pr-tracker is available at
+<https://git.qyliss.net/pr-tracker/>.
+
+Bugs and patches can be sent to the author,
+Alyssa Ross <hi@alyssa.is>.
+
+For information about how to use git to send a patch email, see
+<https://git-send-email.io/>.
+
+
+License
+-------
+
+Copyright 2021 Alyssa Ross <hi@alyssa.is>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU Affero General Public License as
+published by the Free Software Foundation; either version 3 of the
+License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+Affero General Public License for more details.
+
+You should have received a copy of the GNU Affero General Public
+License along with this program; if not, see
+<https://www.gnu.org/licenses>.
+
+Additional permission under GNU AGPL version 3 section 7
+
+If you modify this Program, or any covered work, by linking or
+combining it with OpenSSL (or a modified version of that library),
+containing parts covered by the terms of the OpenSSL License, or the
+Original SSLeay License, the licensors of this Program grant you
+additional permission to convey the resulting work.
diff --git a/README.license b/README.license
new file mode 100644
index 0000000..c49c11b
--- /dev/null
+++ b/README.license
@@ -0,0 +1,2 @@
+SPDX-License-Identifier: CC0-1.0
+SPDX-FileCopyrightText: 2021 Alyssa Ross <hi@alyssa.is>
diff --git a/build.rs b/build.rs
new file mode 100644
index 0000000..aedc556
--- /dev/null
+++ b/build.rs
@@ -0,0 +1,6 @@
+// SPDX-License-Identifier: AGPL-3.0-or-later WITH GPL-3.0-linking-exception
+// SPDX-FileCopyrightText: 2021 Alyssa Ross <hi@alyssa.is>
+
+fn main() {
+    println!("cargo:rustc-link-lib=systemd")
+}
diff --git a/src/branches.rs b/src/branches.rs
new file mode 100644
index 0000000..0e1e04f
--- /dev/null
+++ b/src/branches.rs
@@ -0,0 +1,62 @@
+// SPDX-License-Identifier: AGPL-3.0-or-later WITH GPL-3.0-linking-exception
+// SPDX-FileCopyrightText: 2021 Alyssa Ross <hi@alyssa.is>
+
+use std::borrow::Cow;
+use std::collections::BTreeMap;
+
+use once_cell::sync::Lazy;
+use regex::{Regex, RegexSet};
+
+const NEXT_BRANCH_TABLE: [(&str, &str); 8] = [
+    (r"\Astaging(-[\d.]+)?\z", "staging-next$1"),
+    (r"\Astaging-next\z", "master"),
+    (r"\Amaster\z", "nixpkgs-unstable"),
+    (r"\Amaster\z", "nixos-unstable-small"),
+    (r"\Anixos-(.*)-small\z", "nixos-$1"),
+    (r"\Arelease-([\d.]+)\z", "nixpkgs-$1-darwin"),
+    (r"\Arelease-([\d.]+)\z", "nixos-$1-small"),
+    (r"\Astaging-next-([\d.]*)\z", "release-$1"),
+];
+
+static BRANCH_NEXTS: Lazy<BTreeMap<&str, Vec<&str>>> = Lazy::new(|| {
+    NEXT_BRANCH_TABLE
+        .iter()
+        .fold(BTreeMap::new(), |mut map, (pattern, next)| {
+            map.entry(pattern).or_insert_with(Vec::new).push(next);
+            map
+        })
+});
+
+static BRANCH_NEXTS_BY_INDEX: Lazy<Vec<&Vec<&str>>> = Lazy::new(|| BRANCH_NEXTS.values().collect());
+
+static BRANCH_PATTERNS: Lazy<Vec<Regex>> = Lazy::new(|| {
+    BRANCH_NEXTS
+        .keys()
+        .copied()
+        .map(Regex::new)
+        .map(Result::unwrap)
+        .collect()
+});
+
+static BRANCH_REGEXES: Lazy<RegexSet> = Lazy::new(|| RegexSet::new(BRANCH_NEXTS.keys()).unwrap());
+
+pub fn next_branches(branch: &str) -> Vec<Cow<str>> {
+    BRANCH_REGEXES
+        .matches(branch)
+        .iter()
+        .flat_map(|index| {
+            let regex = BRANCH_PATTERNS.get(index).unwrap();
+            BRANCH_NEXTS_BY_INDEX
+                .get(index)
+                .unwrap()
+                .iter()
+                .map(move |next| regex.replace(branch, *next))
+        })
+        .collect()
+}
+
+#[test]
+fn test_next_branches() {
+    let res = next_branches("release-20.09");
+    assert_eq!(res, vec!["nixpkgs-20.09-darwin", "nixos-20.09-small"])
+}
diff --git a/src/github.rs b/src/github.rs
new file mode 100644
index 0000000..dc7c8e5
--- /dev/null
+++ b/src/github.rs
@@ -0,0 +1,139 @@
+// SPDX-License-Identifier: AGPL-3.0-or-later WITH GPL-3.0-linking-exception
+// SPDX-FileCopyrightText: 2021 Alyssa Ross <hi@alyssa.is>
+
+use std::ffi::OsStr;
+use std::fmt::{self, Display, Formatter};
+use std::os::unix::ffi::OsStrExt;
+
+use graphql_client::GraphQLQuery;
+use serde::Deserialize;
+use surf::http::headers::HeaderValue;
+use surf::StatusCode;
+
+type GitObjectID = String;
+
+#[derive(Debug)]
+pub enum Error {
+    NotFound,
+    Serialization(serde_json::Error),
+    Request(surf::Error),
+    Response(StatusCode),
+    Deserialization(http_types::Error),
+}
+
+impl Display for Error {
+    fn fmt(&self, f: &mut Formatter) -> fmt::Result {
+        use Error::*;
+        match self {
+            NotFound => write!(f, "Not found"),
+            Serialization(e) => write!(f, "Serialization error: {}", e),
+            Request(e) => write!(f, "Request error: {}", e),
+            Response(s) => write!(f, "Unexpected response status: {}", s),
+            Deserialization(e) => write!(f, "Deserialization error: {}", e),
+        }
+    }
+}
+
+impl std::error::Error for Error {}
+
+#[derive(GraphQLQuery)]
+#[graphql(
+    schema_path = "vendor/github_schema.graphql",
+    query_path = "src/merge_commit.graphql",
+    response_derives = "Debug"
+)]
+struct MergeCommitQuery;
+
+#[derive(Debug, Deserialize)]
+struct GitHubGraphQLResponse<D> {
+    data: D,
+}
+
+#[derive(Debug)]
+pub enum PullRequestStatus {
+    Open,
+    Closed,
+    Merged {
+        /// This field is optional because GitHub doesn't provide us with this information
+        /// for PRs merged before around March 2016.
+        merge_commit_oid: Option<String>,
+    },
+}
+
+#[derive(Debug)]
+pub struct MergeInfo {
+    pub branch: String,
+    pub status: PullRequestStatus,
+}
+
+pub struct GitHub<'a> {
+    token: &'a OsStr,
+    user_agent: &'a OsStr,
+}
+
+impl<'a> GitHub<'a> {
+    pub fn new(token: &'a OsStr, user_agent: &'a OsStr) -> Self {
+        Self { token, user_agent }
+    }
+
+    fn authorization_header(&self) -> Result<HeaderValue, surf::Error> {
+        let mut value = b"bearer ".to_vec();
+        value.extend_from_slice(self.token.as_bytes());
+        Ok(HeaderValue::from_bytes(value)?)
+    }
+
+    pub async fn merge_info_for_nixpkgs_pr(&self, pr: i64) -> Result<MergeInfo, Error> {
+        let query = MergeCommitQuery::build_query(merge_commit_query::Variables {
+            owner: "NixOS".to_string(),
+            repo: "nixpkgs".to_string(),
+            number: pr,
+        });
+
+        let response = surf::post("https://api.github.com/graphql")
+            .header("Accept", "application/vnd.github.merge-info-preview+json")
+            .header(
+                "User-Agent",
+                HeaderValue::from_bytes(self.user_agent.as_bytes().to_vec())
+                    .map_err(Error::Request)?,
+            )
+            .header(
+                "Authorization",
+                self.authorization_header().map_err(Error::Request)?,
+            )
+            .body(serde_json::to_vec(&query).map_err(Error::Serialization)?)
+            .send()
+            .await
+            .map_err(Error::Request)?;
+
+        let status = response.status();
+        if status == StatusCode::NotFound || status == StatusCode::Gone {
+            return Err(Error::NotFound);
+        } else if !status.is_success() {
+            return Err(Error::Response(status));
+        }
+
+        let data: GitHubGraphQLResponse<merge_commit_query::ResponseData> = dbg!(response)
+            .body_json()
+            .await
+            .map_err(Error::Deserialization)?;
+
+        let pr = data
+            .data
+            .repository
+            .and_then(|repo| repo.pull_request)
+            .ok_or(Error::NotFound)?;
+
+        Ok(MergeInfo {
+            branch: pr.base_ref_name,
+            status: if pr.merged {
+                PullRequestStatus::Merged {
+                    merge_commit_oid: pr.merge_commit.map(|commit| commit.oid),
+                }
+            } else if pr.closed {
+                PullRequestStatus::Closed
+            } else {
+                PullRequestStatus::Open
+            },
+        })
+    }
+}
diff --git a/src/main.rs b/src/main.rs
new file mode 100644
index 0000000..22023a8
--- /dev/null
+++ b/src/main.rs
@@ -0,0 +1,211 @@
+// SPDX-License-Identifier: AGPL-3.0-or-later WITH GPL-3.0-linking-exception
+// SPDX-FileCopyrightText: 2021 Alyssa Ross <hi@alyssa.is>
+
+mod branches;
+mod github;
+mod nixpkgs;
+mod systemd;
+mod tree;
+
+use std::ffi::OsString;
+use std::path::PathBuf;
+
+use askama::Template;
+use async_std::io;
+use async_std::net::TcpListener;
+use async_std::os::unix::io::FromRawFd;
+use async_std::os::unix::net::UnixListener;
+use async_std::pin::Pin;
+use async_std::prelude::*;
+use async_std::process::exit;
+use futures_util::future::join_all;
+use http_types::mime;
+use once_cell::sync::Lazy;
+use serde::Deserialize;
+use structopt::StructOpt;
+use tide::{Request, Response};
+
+use github::{GitHub, PullRequestStatus};
+use nixpkgs::Nixpkgs;
+use systemd::{is_socket_inet, is_socket_unix, listen_fds};
+use tree::Tree;
+
+#[derive(StructOpt, Debug)]
+struct Config {
+    #[structopt(long, parse(from_os_str))]
+    path: PathBuf,
+
+    #[structopt(long, parse(from_os_str))]
+    remote: PathBuf,
+
+    #[structopt(long, parse(from_os_str))]
+    user_agent: OsString,
+
+    #[structopt(long)]
+    source_url: String,
+
+    #[structopt(long, default_value = "/")]
+    mount: String,
+}
+
+static CONFIG: Lazy<Config> = Lazy::new(Config::from_args);
+
+static GITHUB_TOKEN: Lazy<OsString> = Lazy::new(|| {
+    use std::io::{stdin, BufRead, BufReader};
+    use std::os::unix::prelude::*;
+
+    let mut bytes = Vec::with_capacity(41);
+    if let Err(e) = BufReader::new(stdin()).read_until(b'\n', &mut bytes) {
+        eprintln!("pr-tracker: read: {}", e);
+        exit(74)
+    }
+    if bytes.last() == Some(&b'\n') {
+        bytes.pop();
+    }
+    OsString::from_vec(bytes)
+});
+
+#[derive(Debug, Default, Template)]
+#[template(path = "page.html")]
+struct PageTemplate {
+    error: Option<String>,
+    pr_number: Option<String>,
+    closed: bool,
+    tree: Option<Tree>,
+    source_url: String,
+}
+
+#[derive(Debug, Deserialize)]
+struct Query {
+    pr: Option<String>,
+}
+
+async fn track_pr(pr_number: Option<String>, status: &mut u16, page: &mut PageTemplate) {
+    let pr_number = match pr_number {
+        Some(pr_number) => pr_number,
+        None => return,
+    };
+
+    let pr_number_i64 = match pr_number.parse() {
+        Ok(n) => n,
+        Err(_) => {
+            *status = 400;
+            page.error = Some(format!("Invalid PR number: {}", pr_number));
+            return;
+        }
+    };
+
+    let github = GitHub::new(&GITHUB_TOKEN, &CONFIG.user_agent);
+
+    let merge_info = match github.merge_info_for_nixpkgs_pr(pr_number_i64).await {
+        Err(github::Error::NotFound) => {
+            *status = 404;
+            page.error = Some(format!("No such nixpkgs PR #{}.", pr_number_i64));
+            return;
+        }
+
+        Err(e) => {
+            *status = 500;
+            page.error = Some(e.to_string());
+            return;
+        }
+
+        Ok(info) => info,
+    };
+
+    page.pr_number = Some(pr_number);
+
+    if matches!(merge_info.status, PullRequestStatus::Closed) {
+        page.closed = true;
+        return;
+    }
+
+    let nixpkgs = Nixpkgs::new(&CONFIG.path, &CONFIG.remote);
+    let tree = Tree::make(merge_info.branch.to_string(), &merge_info.status, &nixpkgs).await;
+
+    if let github::PullRequestStatus::Merged {
+        merge_commit_oid, ..
+    } = merge_info.status
+    {
+        if merge_commit_oid.is_none() {
+            page.error = Some("For older PRs, GitHub doesn't tell us the merge commit, so we're unable to track this PR past being merged.".to_string());
+        }
+    }
+
+    page.tree = Some(tree);
+}
+
+async fn handle_request<S>(request: Request<S>) -> http_types::Result<Response> {
+    let mut status = 200;
+    let mut page = PageTemplate {
+        source_url: CONFIG.source_url.clone(),
+        ..Default::default()
+    };
+
+    let pr_number = request.query::<Query>()?.pr;
+
+    track_pr(pr_number, &mut status, &mut page).await;
+
+    Ok(Response::builder(status)
+        .content_type(mime::HTML)
+        .body(page.render()?)
+        .build())
+}
+
+#[async_std::main]
+async fn main() {
+    fn handle_error<T, E>(result: Result<T, E>, code: i32, message: impl AsRef<str>) -> T
+    where
+        E: std::error::Error,
+    {
+        match result {
+            Ok(v) => return v,
+            Err(e) => {
+                eprintln!("pr-tracker: {}: {}", message.as_ref(), e);
+                exit(code);
+            }
+        }
+    }
+
+    // Make sure arguments are parsed before starting server.
+    let _ = *CONFIG;
+    let _ = *GITHUB_TOKEN;
+
+    let mut server = tide::new();
+    let mut root = server.at(&CONFIG.mount);
+
+    root.at("/").get(handle_request);
+
+    let fd_count = handle_error(listen_fds(true), 71, "sd_listen_fds");
+
+    if fd_count == 0 {
+        eprintln!("pr-tracker: No listen file descriptors given");
+        exit(64);
+    }
+
+    let mut listeners: Vec<Pin<Box<dyn Future<Output = _>>>> = Vec::new();
+
+    for fd in (3..).into_iter().take(fd_count as usize) {
+        let s = server.clone();
+        if handle_error(is_socket_inet(fd), 74, "sd_is_socket_inet") {
+            listeners.push(Box::pin(s.listen(unsafe { TcpListener::from_raw_fd(fd) })));
+        } else if handle_error(is_socket_unix(fd), 74, "sd_is_socket_unix") {
+            listeners.push(Box::pin(s.listen(unsafe { UnixListener::from_raw_fd(fd) })));
+        } else {
+            eprintln!("pr-tracker: file descriptor {} is not a socket", fd);
+            exit(64);
+        }
+    }
+
+    let errors: Vec<_> = join_all(listeners)
+        .await
+        .into_iter()
+        .filter_map(io::Result::err)
+        .collect();
+    for error in errors.iter() {
+        eprintln!("pr-tracker: listen: {}", error);
+    }
+    if !errors.is_empty() {
+        exit(74);
+    }
+}
diff --git a/src/merge_commit.graphql b/src/merge_commit.graphql
new file mode 100644
index 0000000..5df583a
--- /dev/null
+++ b/src/merge_commit.graphql
@@ -0,0 +1,15 @@
+# SPDX-License-Identifier: AGPL-3.0-or-later WITH GPL-3.0-linking-exception
+# SPDX-FileCopyrightText: 2021 Alyssa Ross <hi@alyssa.is>
+
+query MergeCommitQuery($owner: String!, $repo: String!, $number: Int!) {
+  repository(owner: $owner, name: $repo) {
+    pullRequest(number: $number) {
+      baseRefName
+      mergeCommit {
+        oid
+      }
+      merged
+      closed
+    }
+  }
+}
diff --git a/src/nixpkgs.rs b/src/nixpkgs.rs
new file mode 100644
index 0000000..7e622c2
--- /dev/null
+++ b/src/nixpkgs.rs
@@ -0,0 +1,127 @@
+// SPDX-License-Identifier: AGPL-3.0-or-later WITH GPL-3.0-linking-exception
+// SPDX-FileCopyrightText: 2021 Alyssa Ross <hi@alyssa.is>
+
+use std::collections::BTreeSet;
+use std::ffi::OsStr;
+use std::ffi::OsString;
+use std::fmt::{self, Display, Formatter};
+use std::os::unix::prelude::*;
+use std::path::{Path, PathBuf};
+use std::process::ExitStatus;
+
+use async_std::io;
+use async_std::process::{Command, Stdio};
+
+#[derive(Debug)]
+pub enum Error {
+    Io(io::Error),
+    ExitFailure(ExitStatus),
+}
+
+impl Display for Error {
+    fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
+        use Error::*;
+        match self {
+            Io(e) => write!(f, "git: {}", e),
+            ExitFailure(e) => match e.code() {
+                Some(code) => write!(f, "git exited {}", code),
+                None => write!(f, "git killed by signal {}", e.signal().unwrap()),
+            },
+        }
+    }
+}
+
+impl std::error::Error for Error {}
+
+type Result<T, E = Error> = std::result::Result<T, E>;
+
+fn check_status(status: ExitStatus) -> Result<()> {
+    if status.success() {
+        Ok(())
+    } else {
+        Err(Error::ExitFailure(status))
+    }
+}
+
+pub struct Nixpkgs<'a> {
+    path: &'a Path,
+    remote_name: &'a Path,
+}
+
+impl<'a> Nixpkgs<'a> {
+    pub fn new(path: &'a Path, remote_name: &'a Path) -> Self {
+        Self { path, remote_name }
+    }
+
+    fn git_command(&self, subcommand: impl AsRef<OsStr>) -> Command {
+        let mut command = Command::new("git");
+        command.arg("-C");
+        command.arg(&self.path);
+        command.arg(subcommand);
+        command
+    }
+
+    async fn git_branch_contains(&self, commit: &str) -> Result<Vec<u8>> {
+        let output = self
+            .git_command("branch")
+            .args(&["-r", "--format=%(refname)", "--contains"])
+            .arg(commit)
+            .stderr(Stdio::inherit())
+            .output()
+            .await
+            .map_err(Error::Io)?;
+
+        check_status(output.status)?;
+
+        Ok(output.stdout)
+    }
+
+    async fn git_fetch_nixpkgs(&self) -> Result<()> {
+        // TODO: add refspecs
+        self.git_command("fetch")
+            .arg(&self.remote_name)
+            .status()
+            .await
+            .map_err(Error::Io)
+            .and_then(check_status)
+    }
+
+    pub async fn branches_containing_commit(
+        &self,
+        commit: &str,
+        out: &mut BTreeSet<OsString>,
+    ) -> Result<()> {
+        let output = match self.git_branch_contains(commit).await {
+            Err(Error::ExitFailure(status)) if status.code().is_some() => {
+                eprintln!("pr-tracker: git branch --contains failed; updating branches");
+
+                if let Err(e) = self.git_fetch_nixpkgs().await {
+                    eprintln!("pr-tracker: fetching nixpkgs: {}", e);
+                    // Carry on, because it might have fetched what we
+                    // need before dying.
+                }
+
+                self.git_branch_contains(commit).await?
+            }
+
+            Ok(output) => output,
+            Err(e) => return Err(e),
+        };
+
+        let mut prefix = PathBuf::from("refs/remotes/");
+        prefix.push(&self.remote_name);
+
+        for branch_name in output
+            .split(|byte| *byte == b'\n')
+            .filter(|b| !b.is_empty())
+            .map(OsStr::from_bytes)
+            .map(Path::new)
+            .filter_map(|r| r.strip_prefix(&prefix).ok())
+            .map(Into::into)
+        {
+            out.insert(branch_name);
+        }
+
+        Ok(())
+    }
+}
diff --git a/src/systemd.rs b/src/systemd.rs
new file mode 100644
index 0000000..7bd2142
--- /dev/null
+++ b/src/systemd.rs
@@ -0,0 +1,49 @@
+// SPDX-License-Identifier: AGPL-3.0-or-later WITH GPL-3.0-linking-exception
+// SPDX-FileCopyrightText: 2021 Alyssa Ross <hi@alyssa.is>
+
+use std::io;
+use std::os::raw::{c_char, c_int, c_uint};
+use std::os::unix::prelude::*;
+use std::ptr::null;
+
+extern "C" {
+    fn sd_listen_fds(unset_environment: c_int) -> c_int;
+    fn sd_is_socket_inet(
+        fd: c_int,
+        family: c_int,
+        type_: c_int,
+        listening: c_int,
+        port: u16,
+    ) -> c_int;
+    fn sd_is_socket_unix(
+        fd: c_int,
+        type_: c_int,
+        listening: c_int,
+        path: *const c_char,
+        length: usize,
+    ) -> c_int;
+}
+
+pub fn listen_fds(unset_environment: bool) -> io::Result<c_uint> {
+    let r = unsafe { sd_listen_fds(if unset_environment { 1 } else { 0 }) };
+    if r < 0 {
+        return Err(io::Error::from_raw_os_error(-r));
+    }
+    Ok(r as c_uint)
+}
+
+pub fn is_socket_inet(fd: RawFd) -> io::Result<bool> {
+    let r = unsafe { sd_is_socket_inet(fd, 0, 0, -1, 0) };
+    if r < 0 {
+        return Err(io::Error::from_raw_os_error(-r));
+    }
+    Ok(r != 0)
+}
+
+pub fn is_socket_unix(fd: RawFd) -> io::Result<bool> {
+    let r = unsafe { sd_is_socket_unix(fd, 0, -1, null(), 0) };
+    if r < 0 {
+        return Err(io::Error::from_raw_os_error(-r));
+    }
+    Ok(r != 0)
+}
diff --git a/src/tree.rs b/src/tree.rs
new file mode 100644
index 0000000..f569dba
--- /dev/null
+++ b/src/tree.rs
@@ -0,0 +1,91 @@
+// SPDX-License-Identifier: AGPL-3.0-or-later WITH GPL-3.0-linking-exception
+// SPDX-FileCopyrightText: 2021 Alyssa Ross <hi@alyssa.is>
+
+use std::collections::BTreeSet;
+use std::ffi::{OsStr, OsString};
+
+use askama::Template;
+
+use crate::branches::next_branches;
+use crate::github;
+use crate::nixpkgs::Nixpkgs;
+
+#[derive(Debug, Template)]
+#[template(path = "tree.html")]
+pub struct Tree {
+    branch_name: String,
+    accepted: Option<bool>,
+    children: Vec<Tree>,
+}
+
+impl Tree {
+    fn generate(branch: String, found_branches: &mut BTreeSet<OsString>) -> Tree {
+        found_branches.insert((&branch).into());
+
+        let nexts = next_branches(&branch)
+            .into_iter()
+            .map(|b| Self::generate(b.to_string(), found_branches))
+            .collect();
+
+        Tree {
+            accepted: None,
+            branch_name: branch,
+            children: nexts,
+        }
+    }
+
+    fn fill_accepted(&mut self, branches: &BTreeSet<OsString>, missing_means_absent: bool) {
+        self.accepted = match branches.contains(OsStr::new(&self.branch_name)) {
+            true => Some(true),
+            false if missing_means_absent => Some(false),
+            false => None,
+        };
+
+        for child in self.children.iter_mut() {
+            child.fill_accepted(branches, missing_means_absent);
+        }
+    }
+
+    pub async fn make(base_branch: String, merge_status: &github::PullRequestStatus, nixpkgs: &Nixpkgs<'_>) -> Tree {
+        let mut missing_means_absent = true;
+        let mut branches = BTreeSet::new();
+
+        let mut tree = Self::generate(base_branch.clone(), &mut branches);
+
+        if let github::PullRequestStatus::Merged {
+            merge_commit_oid, ..
+        } = merge_status
+        {
+            if let Some(merge_commit) = merge_commit_oid {
+                let mut containing_commits = BTreeSet::new();
+
+                if let Err(e) =
+                    nixpkgs.branches_containing_commit(&merge_commit, &mut containing_commits)
+                        .await
+                {
+                    eprintln!("pr-tracker: branches_containing_commit: {}", e);
+                    missing_means_absent = false;
+                }
+
+                branches = branches
+                    .intersection(&containing_commits)
+                    .cloned()
+                    .collect();
+            } else {
+                branches.clear();
+                missing_means_absent = false;
+            }
+
+            // Even if something goes wrong with our local Git repo,
+            // or GitHub didn't tell us the merge commit, we know that
+            // the base branch of the PR must contain the commit,
+            // because GitHub told us it was merged into it.
+            branches.insert(base_branch.into());
+        } else {
+            branches.clear();
+        }
+
+        tree.fill_accepted(&branches, missing_means_absent);
+        tree
+    }
+}
diff --git a/templates/page.html b/templates/page.html
new file mode 100644
index 0000000..715814a
--- /dev/null
+++ b/templates/page.html
@@ -0,0 +1,203 @@
+<!-- SPDX-License-Identifier: AGPL-3.0-or-later WITH GPL-3.0-linking-exception -->
+<!-- SPDX-FileCopyrightText: 2021 Alyssa Ross <hi@alyssa.is> -->
+
+<!doctype html>
+<html lang="en">
+  <head>
+    {% match pr_number %}
+    {% when Some with (pr_number) %}
+    <title>Nixpkgs PR #{{ pr_number }} progress</title>
+    {% else %}
+    <title>Nixpkgs PR progress tracker</title>
+    {% endmatch %}
+
+    <meta charset="utf-8">
+
+    <style>
+      :root {
+        line-height: 1;
+        font-family: sans-serif;
+        text-align: center;
+      }
+
+      body > header {
+        margin-bottom: 2em;
+      }
+
+      #pr {
+        width: 6ch;
+        box-sizing: content-box;
+        text-align: center;
+      }
+
+      body > section {
+        background: #c4b0b0;
+        padding: 0 1em;
+        margin: 1em auto;
+        display: flex;
+        max-width: 50ch;
+      }
+
+      body > main {
+        display: flex;
+        justify-content: center;
+      }
+
+      body > main > ol {
+        text-align: left;
+        margin: 0;
+      }
+
+      ol, ul {
+        list-style: none;
+        padding: 0;
+      }
+
+      ul > li {
+        margin-left: 2em;
+        position: relative;
+      }
+
+      ul > li:last-child {
+        margin-left: 0;
+        position: static;
+      }
+
+      li {
+        margin: 1em 0;
+        line-height: 2;
+      }
+
+      span {
+        color: transparent;
+        position: relative;
+        width: 2em;
+        height: 2em;
+        display: inline-block;
+        margin-right: 0.5em;
+        z-index: 1;
+      }
+
+      span::after {
+        content: "";
+        border-radius: 50%;
+        position: absolute;
+        top: 0;
+        left: 0;
+        right: 0;
+        bottom: 0;
+        display: block;
+        border: .3em solid #7A877D;
+        color: white;
+        text-align: center;
+        line-height: 1.5em;
+      }
+
+      span.state-pending::after {
+        background: #C2C9C2;
+      }
+
+      span.state-unknown::after {
+        background: #C4A500;
+        content: "?";
+      }
+
+      span.state-accepted::after {
+        background: #00C42D;
+        content: "✔";
+      }
+
+      span.state-rejected::after {
+        background: #c40000;
+        content: "❌︎";
+      }
+
+      ul span::before {
+        content: "";
+        position: absolute;
+        top: 42.5%;
+        bottom: 42.5%;
+        right: .5em;
+        left: -1em;
+        display: block;
+        background: #7A877D;
+      }
+
+      ul > li:last-child > span::before {
+        content: none;
+      }
+
+      ol {
+        position: relative;
+      }
+
+      ol::before, ul::before {
+        background: #7A877D;
+        content: "";
+        display: block;
+        left: .85em;
+        top: 0.5em;
+        bottom: 1em;
+        width: .3em;
+        position: absolute;
+      }
+    </style>
+  </head>
+
+  <body>
+    <header>
+      <h1>Nixpkgs Pull Request Tracker</h1>
+
+      <form>
+        <label for="pr">PR number: </label>
+        <input id="pr" name="pr" type="text" pattern="[1-9][0-9]*"
+               value="{%- match pr_number -%}
+                      {%- when Some with (pr_number) -%}
+                      {{- pr_number -}}
+                      {%- else -%}
+                      {%- endmatch -%}">
+        <button type="submit">Track</button>
+      </form>
+    </header>
+
+    {% match error %}
+    {% when Some with (error) %}
+    <section>
+      <p>{{ error }}</p>
+    </section>
+    {% else %}
+    {% endmatch %}
+
+    {% match pr_number %}
+    {% when Some with (pr_number) %}
+    <main>
+      <ol>
+        <li>
+          {% if closed %}
+          <span class="state-rejected">❌</span>
+          {% else %}
+          <span class="state-accepted">✅</span>
+          {% endif %}
+          PR <a href="https://github.com/NixOS/nixpkgs/pull/{{ pr_number }}">#{{ pr_number }}</a>
+          {% if closed %}
+          closed
+          {% endif %}
+        </li>
+
+        {% match tree %}
+        {% when Some with (tree) %}
+        {{ tree|safe }}
+        {% else %}
+        {% endmatch %}
+      </ol>
+    </main>
+    {% else %}
+    {% endmatch %}
+    
+    <footer>
+      <p>By <a href="https://alyssa.is/">Alyssa Ross</a></p>
+
+      <p><a href="{{ source_url }}">Source code</a></p>
+    </footer>
+  </body>
+</html>
diff --git a/templates/tree.html b/templates/tree.html
new file mode 100644
index 0000000..5a851a1
--- /dev/null
+++ b/templates/tree.html
@@ -0,0 +1,23 @@
+<!-- SPDX-License-Identifier: AGPL-3.0-or-later WITH GPL-3.0-linking-exception -->
+<!-- SPDX-FileCopyrightText: 2021 Alyssa Ross <hi@alyssa.is> -->
+
+<li>
+  {% match accepted %}
+  {% when Some with (true) %}
+  <span class="state-accepted">✅</span>
+  {% when Some with (false) %}
+  <span class="state-pending">⚪</span>
+  {% when None %}
+  <span class="state-unknown">❓</span>
+  {% endmatch %}
+
+  {{ branch_name }}
+
+  {% if !children.is_empty() %}
+  <ul>
+    {% for child in children %}
+    {{ child|safe }}
+    {% endfor %}
+  </ul>
+  {% endif %}
+</li>
diff --git a/vendor/github_schema.graphql b/vendor/github_schema.graphql
new file mode 100644
index 0000000..cf0c60a
--- /dev/null
+++ b/vendor/github_schema.graphql
@@ -0,0 +1,39245 @@
+"""
+Autogenerated input type of AcceptEnterpriseAdministratorInvitation
+"""
+input AcceptEnterpriseAdministratorInvitationInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The id of the invitation being accepted
+  """
+  invitationId: ID!
+}
+
+"""
+Autogenerated return type of AcceptEnterpriseAdministratorInvitation
+"""
+type AcceptEnterpriseAdministratorInvitationPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The invitation that was accepted.
+  """
+  invitation: EnterpriseAdministratorInvitation
+
+  """
+  A message confirming the result of accepting an administrator invitation.
+  """
+  message: String
+}
+
+"""
+Autogenerated input type of AcceptTopicSuggestion
+"""
+input AcceptTopicSuggestionInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The name of the suggested topic.
+  """
+  name: String!
+
+  """
+  The Node ID of the repository.
+  """
+  repositoryId: ID!
+}
+
+"""
+Autogenerated return type of AcceptTopicSuggestion
+"""
+type AcceptTopicSuggestionPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The accepted topic.
+  """
+  topic: Topic
+}
+
+"""
+Represents an object which can take actions on GitHub. Typically a User or Bot.
+"""
+interface Actor {
+  """
+  A URL pointing to the actor's public avatar.
+  """
+  avatarUrl(
+    """
+    The size of the resulting square image.
+    """
+    size: Int
+  ): URI!
+
+  """
+  The username of the actor.
+  """
+  login: String!
+
+  """
+  The HTTP path for this actor.
+  """
+  resourcePath: URI!
+
+  """
+  The HTTP URL for this actor.
+  """
+  url: URI!
+}
+
+"""
+Location information for an actor
+"""
+type ActorLocation {
+  """
+  City
+  """
+  city: String
+
+  """
+  Country name
+  """
+  country: String
+
+  """
+  Country code
+  """
+  countryCode: String
+
+  """
+  Region name
+  """
+  region: String
+
+  """
+  Region or state code
+  """
+  regionCode: String
+}
+
+"""
+Autogenerated input type of AddAssigneesToAssignable
+"""
+input AddAssigneesToAssignableInput {
+  """
+  The id of the assignable object to add assignees to.
+  """
+  assignableId: ID!
+
+  """
+  The id of users to add as assignees.
+  """
+  assigneeIds: [ID!]!
+
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+}
+
+"""
+Autogenerated return type of AddAssigneesToAssignable
+"""
+type AddAssigneesToAssignablePayload {
+  """
+  The item that was assigned.
+  """
+  assignable: Assignable
+
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+}
+
+"""
+Autogenerated input type of AddComment
+"""
+input AddCommentInput {
+  """
+  The contents of the comment.
+  """
+  body: String!
+
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The Node ID of the subject to modify.
+  """
+  subjectId: ID!
+}
+
+"""
+Autogenerated return type of AddComment
+"""
+type AddCommentPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The edge from the subject's comment connection.
+  """
+  commentEdge: IssueCommentEdge
+
+  """
+  The subject
+  """
+  subject: Node
+
+  """
+  The edge from the subject's timeline connection.
+  """
+  timelineEdge: IssueTimelineItemEdge
+}
+
+"""
+Autogenerated input type of AddEnterpriseSupportEntitlement
+"""
+input AddEnterpriseSupportEntitlementInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The ID of the Enterprise which the admin belongs to.
+  """
+  enterpriseId: ID!
+
+  """
+  The login of a member who will receive the support entitlement.
+  """
+  login: String!
+}
+
+"""
+Autogenerated return type of AddEnterpriseSupportEntitlement
+"""
+type AddEnterpriseSupportEntitlementPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  A message confirming the result of adding the support entitlement.
+  """
+  message: String
+}
+
+"""
+Autogenerated input type of AddLabelsToLabelable
+"""
+input AddLabelsToLabelableInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The ids of the labels to add.
+  """
+  labelIds: [ID!]!
+
+  """
+  The id of the labelable object to add labels to.
+  """
+  labelableId: ID!
+}
+
+"""
+Autogenerated return type of AddLabelsToLabelable
+"""
+type AddLabelsToLabelablePayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The item that was labeled.
+  """
+  labelable: Labelable
+}
+
+"""
+Autogenerated input type of AddProjectCard
+"""
+input AddProjectCardInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The content of the card. Must be a member of the ProjectCardItem union
+  """
+  contentId: ID
+
+  """
+  The note on the card.
+  """
+  note: String
+
+  """
+  The Node ID of the ProjectColumn.
+  """
+  projectColumnId: ID!
+}
+
+"""
+Autogenerated return type of AddProjectCard
+"""
+type AddProjectCardPayload {
+  """
+  The edge from the ProjectColumn's card connection.
+  """
+  cardEdge: ProjectCardEdge
+
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The ProjectColumn
+  """
+  projectColumn: ProjectColumn
+}
+
+"""
+Autogenerated input type of AddProjectColumn
+"""
+input AddProjectColumnInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The name of the column.
+  """
+  name: String!
+
+  """
+  The Node ID of the project.
+  """
+  projectId: ID!
+}
+
+"""
+Autogenerated return type of AddProjectColumn
+"""
+type AddProjectColumnPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The edge from the project's column connection.
+  """
+  columnEdge: ProjectColumnEdge
+
+  """
+  The project
+  """
+  project: Project
+}
+
+"""
+Autogenerated input type of AddPullRequestReviewComment
+"""
+input AddPullRequestReviewCommentInput {
+  """
+  The text of the comment.
+  """
+  body: String!
+
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The SHA of the commit to comment on.
+  """
+  commitOID: GitObjectID
+
+  """
+  The comment id to reply to.
+  """
+  inReplyTo: ID
+
+  """
+  The relative path of the file to comment on.
+  """
+  path: String
+
+  """
+  The line index in the diff to comment on.
+  """
+  position: Int
+
+  """
+  The node ID of the pull request reviewing
+  """
+  pullRequestId: ID
+
+  """
+  The Node ID of the review to modify.
+  """
+  pullRequestReviewId: ID
+}
+
+"""
+Autogenerated return type of AddPullRequestReviewComment
+"""
+type AddPullRequestReviewCommentPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The newly created comment.
+  """
+  comment: PullRequestReviewComment
+
+  """
+  The edge from the review's comment connection.
+  """
+  commentEdge: PullRequestReviewCommentEdge
+}
+
+"""
+Autogenerated input type of AddPullRequestReview
+"""
+input AddPullRequestReviewInput {
+  """
+  The contents of the review body comment.
+  """
+  body: String
+
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The review line comments.
+  """
+  comments: [DraftPullRequestReviewComment]
+
+  """
+  The commit OID the review pertains to.
+  """
+  commitOID: GitObjectID
+
+  """
+  The event to perform on the pull request review.
+  """
+  event: PullRequestReviewEvent
+
+  """
+  The Node ID of the pull request to modify.
+  """
+  pullRequestId: ID!
+
+  """
+  The review line comment threads.
+  """
+  threads: [DraftPullRequestReviewThread]
+}
+
+"""
+Autogenerated return type of AddPullRequestReview
+"""
+type AddPullRequestReviewPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The newly created pull request review.
+  """
+  pullRequestReview: PullRequestReview
+
+  """
+  The edge from the pull request's review connection.
+  """
+  reviewEdge: PullRequestReviewEdge
+}
+
+"""
+Autogenerated input type of AddPullRequestReviewThread
+"""
+input AddPullRequestReviewThreadInput {
+  """
+  Body of the thread's first comment.
+  """
+  body: String!
+
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The line of the blob to which the thread refers. The end of the line range for multi-line comments.
+  """
+  line: Int!
+
+  """
+  Path to the file being commented on.
+  """
+  path: String!
+
+  """
+  The node ID of the pull request reviewing
+  """
+  pullRequestId: ID
+
+  """
+  The Node ID of the review to modify.
+  """
+  pullRequestReviewId: ID
+
+  """
+  The side of the diff on which the line resides. For multi-line comments, this is the side for the end of the line range.
+  """
+  side: DiffSide = RIGHT
+
+  """
+  The first line of the range to which the comment refers.
+  """
+  startLine: Int
+
+  """
+  The side of the diff on which the start line resides.
+  """
+  startSide: DiffSide = RIGHT
+}
+
+"""
+Autogenerated return type of AddPullRequestReviewThread
+"""
+type AddPullRequestReviewThreadPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The newly created thread.
+  """
+  thread: PullRequestReviewThread
+}
+
+"""
+Autogenerated input type of AddReaction
+"""
+input AddReactionInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The name of the emoji to react with.
+  """
+  content: ReactionContent!
+
+  """
+  The Node ID of the subject to modify.
+  """
+  subjectId: ID!
+}
+
+"""
+Autogenerated return type of AddReaction
+"""
+type AddReactionPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The reaction object.
+  """
+  reaction: Reaction
+
+  """
+  The reactable subject.
+  """
+  subject: Reactable
+}
+
+"""
+Autogenerated input type of AddStar
+"""
+input AddStarInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The Starrable ID to star.
+  """
+  starrableId: ID!
+}
+
+"""
+Autogenerated return type of AddStar
+"""
+type AddStarPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The starrable.
+  """
+  starrable: Starrable
+}
+
+"""
+Autogenerated input type of AddVerifiableDomain
+"""
+input AddVerifiableDomainInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The URL of the domain
+  """
+  domain: URI!
+
+  """
+  The ID of the owner to add the domain to
+  """
+  ownerId: ID!
+}
+
+"""
+Autogenerated return type of AddVerifiableDomain
+"""
+type AddVerifiableDomainPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The verifiable domain that was added.
+  """
+  domain: VerifiableDomain
+}
+
+"""
+Represents a 'added_to_project' event on a given issue or pull request.
+"""
+type AddedToProjectEvent implements Node {
+  """
+  Identifies the actor who performed the event.
+  """
+  actor: Actor
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+
+  """
+  Identifies the primary key from the database.
+  """
+  databaseId: Int
+  id: ID!
+}
+
+"""
+A GitHub App.
+"""
+type App implements Node {
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+
+  """
+  Identifies the primary key from the database.
+  """
+  databaseId: Int
+
+  """
+  The description of the app.
+  """
+  description: String
+  id: ID!
+
+  """
+  The hex color code, without the leading '#', for the logo background.
+  """
+  logoBackgroundColor: String!
+
+  """
+  A URL pointing to the app's logo.
+  """
+  logoUrl(
+    """
+    The size of the resulting image.
+    """
+    size: Int
+  ): URI!
+
+  """
+  The name of the app.
+  """
+  name: String!
+
+  """
+  A slug based on the name of the app for use in URLs.
+  """
+  slug: String!
+
+  """
+  Identifies the date and time when the object was last updated.
+  """
+  updatedAt: DateTime!
+
+  """
+  The URL to the app's homepage.
+  """
+  url: URI!
+}
+
+"""
+Autogenerated input type of ArchiveRepository
+"""
+input ArchiveRepositoryInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The ID of the repository to mark as archived.
+  """
+  repositoryId: ID!
+}
+
+"""
+Autogenerated return type of ArchiveRepository
+"""
+type ArchiveRepositoryPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The repository that was marked as archived.
+  """
+  repository: Repository
+}
+
+"""
+An object that can have users assigned to it.
+"""
+interface Assignable {
+  """
+  A list of Users assigned to this object.
+  """
+  assignees(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+  ): UserConnection!
+}
+
+"""
+Represents an 'assigned' event on any assignable object.
+"""
+type AssignedEvent implements Node {
+  """
+  Identifies the actor who performed the event.
+  """
+  actor: Actor
+
+  """
+  Identifies the assignable associated with the event.
+  """
+  assignable: Assignable!
+
+  """
+  Identifies the user or mannequin that was assigned.
+  """
+  assignee: Assignee
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+  id: ID!
+
+  """
+  Identifies the user who was assigned.
+  """
+  user: User @deprecated(reason: "Assignees can now be mannequins. Use the `assignee` field instead. Removal on 2020-01-01 UTC.")
+}
+
+"""
+Types that can be assigned to issues.
+"""
+union Assignee = Bot | Mannequin | Organization | User
+
+"""
+An entry in the audit log.
+"""
+interface AuditEntry {
+  """
+  The action name
+  """
+  action: String!
+
+  """
+  The user who initiated the action
+  """
+  actor: AuditEntryActor
+
+  """
+  The IP address of the actor
+  """
+  actorIp: String
+
+  """
+  A readable representation of the actor's location
+  """
+  actorLocation: ActorLocation
+
+  """
+  The username of the user who initiated the action
+  """
+  actorLogin: String
+
+  """
+  The HTTP path for the actor.
+  """
+  actorResourcePath: URI
+
+  """
+  The HTTP URL for the actor.
+  """
+  actorUrl: URI
+
+  """
+  The time the action was initiated
+  """
+  createdAt: PreciseDateTime!
+
+  """
+  The corresponding operation type for the action
+  """
+  operationType: OperationType
+
+  """
+  The user affected by the action
+  """
+  user: User
+
+  """
+  For actions involving two users, the actor is the initiator and the user is the affected user.
+  """
+  userLogin: String
+
+  """
+  The HTTP path for the user.
+  """
+  userResourcePath: URI
+
+  """
+  The HTTP URL for the user.
+  """
+  userUrl: URI
+}
+
+"""
+Types that can initiate an audit log event.
+"""
+union AuditEntryActor = Bot | Organization | User
+
+"""
+Ordering options for Audit Log connections.
+"""
+input AuditLogOrder {
+  """
+  The ordering direction.
+  """
+  direction: OrderDirection
+
+  """
+  The field to order Audit Logs by.
+  """
+  field: AuditLogOrderField
+}
+
+"""
+Properties by which Audit Log connections can be ordered.
+"""
+enum AuditLogOrderField {
+  """
+  Order audit log entries by timestamp
+  """
+  CREATED_AT
+}
+
+"""
+Represents a 'auto_merge_disabled' event on a given pull request.
+"""
+type AutoMergeDisabledEvent implements Node {
+  """
+  Identifies the actor who performed the event.
+  """
+  actor: Actor
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+
+  """
+  The user who disabled auto-merge for this Pull Request
+  """
+  disabler: User
+  id: ID!
+
+  """
+  PullRequest referenced by event
+  """
+  pullRequest: PullRequest
+
+  """
+  The reason auto-merge was disabled
+  """
+  reason: String
+
+  """
+  The reason_code relating to why auto-merge was disabled
+  """
+  reasonCode: String
+}
+
+"""
+Represents a 'auto_merge_enabled' event on a given pull request.
+"""
+type AutoMergeEnabledEvent implements Node {
+  """
+  Identifies the actor who performed the event.
+  """
+  actor: Actor
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+
+  """
+  The user who enabled auto-merge for this Pull Request
+  """
+  enabler: User
+  id: ID!
+
+  """
+  PullRequest referenced by event.
+  """
+  pullRequest: PullRequest
+}
+
+"""
+Represents an auto-merge request for a pull request
+"""
+type AutoMergeRequest {
+  """
+  The email address of the author of this auto-merge request.
+  """
+  authorEmail: String
+
+  """
+  The commit message of the auto-merge request.
+  """
+  commitBody: String
+
+  """
+  The commit title of the auto-merge request.
+  """
+  commitHeadline: String
+
+  """
+  When was this auto-merge request was enabled.
+  """
+  enabledAt: DateTime
+
+  """
+  The actor who created the auto-merge request.
+  """
+  enabledBy: Actor
+
+  """
+  The merge method of the auto-merge request.
+  """
+  mergeMethod: PullRequestMergeMethod!
+
+  """
+  The pull request that this auto-merge request is set against.
+  """
+  pullRequest: PullRequest!
+}
+
+"""
+Represents a 'auto_rebase_enabled' event on a given pull request.
+"""
+type AutoRebaseEnabledEvent implements Node {
+  """
+  Identifies the actor who performed the event.
+  """
+  actor: Actor
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+
+  """
+  The user who enabled auto-merge (rebase) for this Pull Request
+  """
+  enabler: User
+  id: ID!
+
+  """
+  PullRequest referenced by event.
+  """
+  pullRequest: PullRequest
+}
+
+"""
+Represents a 'auto_squash_enabled' event on a given pull request.
+"""
+type AutoSquashEnabledEvent implements Node {
+  """
+  Identifies the actor who performed the event.
+  """
+  actor: Actor
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+
+  """
+  The user who enabled auto-merge (squash) for this Pull Request
+  """
+  enabler: User
+  id: ID!
+
+  """
+  PullRequest referenced by event.
+  """
+  pullRequest: PullRequest
+}
+
+"""
+Represents a 'automatic_base_change_failed' event on a given pull request.
+"""
+type AutomaticBaseChangeFailedEvent implements Node {
+  """
+  Identifies the actor who performed the event.
+  """
+  actor: Actor
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+  id: ID!
+
+  """
+  The new base for this PR
+  """
+  newBase: String!
+
+  """
+  The old base for this PR
+  """
+  oldBase: String!
+
+  """
+  PullRequest referenced by event.
+  """
+  pullRequest: PullRequest!
+}
+
+"""
+Represents a 'automatic_base_change_succeeded' event on a given pull request.
+"""
+type AutomaticBaseChangeSucceededEvent implements Node {
+  """
+  Identifies the actor who performed the event.
+  """
+  actor: Actor
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+  id: ID!
+
+  """
+  The new base for this PR
+  """
+  newBase: String!
+
+  """
+  The old base for this PR
+  """
+  oldBase: String!
+
+  """
+  PullRequest referenced by event.
+  """
+  pullRequest: PullRequest!
+}
+
+"""
+Represents a 'base_ref_changed' event on a given issue or pull request.
+"""
+type BaseRefChangedEvent implements Node {
+  """
+  Identifies the actor who performed the event.
+  """
+  actor: Actor
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+
+  """
+  Identifies the name of the base ref for the pull request after it was changed.
+  """
+  currentRefName: String!
+
+  """
+  Identifies the primary key from the database.
+  """
+  databaseId: Int
+  id: ID!
+
+  """
+  Identifies the name of the base ref for the pull request before it was changed.
+  """
+  previousRefName: String!
+
+  """
+  PullRequest referenced by event.
+  """
+  pullRequest: PullRequest!
+}
+
+"""
+Represents a 'base_ref_deleted' event on a given pull request.
+"""
+type BaseRefDeletedEvent implements Node {
+  """
+  Identifies the actor who performed the event.
+  """
+  actor: Actor
+
+  """
+  Identifies the name of the Ref associated with the `base_ref_deleted` event.
+  """
+  baseRefName: String
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+  id: ID!
+
+  """
+  PullRequest referenced by event.
+  """
+  pullRequest: PullRequest
+}
+
+"""
+Represents a 'base_ref_force_pushed' event on a given pull request.
+"""
+type BaseRefForcePushedEvent implements Node {
+  """
+  Identifies the actor who performed the event.
+  """
+  actor: Actor
+
+  """
+  Identifies the after commit SHA for the 'base_ref_force_pushed' event.
+  """
+  afterCommit: Commit
+
+  """
+  Identifies the before commit SHA for the 'base_ref_force_pushed' event.
+  """
+  beforeCommit: Commit
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+  id: ID!
+
+  """
+  PullRequest referenced by event.
+  """
+  pullRequest: PullRequest!
+
+  """
+  Identifies the fully qualified ref name for the 'base_ref_force_pushed' event.
+  """
+  ref: Ref
+}
+
+"""
+Represents a Git blame.
+"""
+type Blame {
+  """
+  The list of ranges from a Git blame.
+  """
+  ranges: [BlameRange!]!
+}
+
+"""
+Represents a range of information from a Git blame.
+"""
+type BlameRange {
+  """
+  Identifies the recency of the change, from 1 (new) to 10 (old). This is
+  calculated as a 2-quantile and determines the length of distance between the
+  median age of all the changes in the file and the recency of the current
+  range's change.
+  """
+  age: Int!
+
+  """
+  Identifies the line author
+  """
+  commit: Commit!
+
+  """
+  The ending line for the range
+  """
+  endingLine: Int!
+
+  """
+  The starting line for the range
+  """
+  startingLine: Int!
+}
+
+"""
+Represents a Git blob.
+"""
+type Blob implements GitObject & Node {
+  """
+  An abbreviated version of the Git object ID
+  """
+  abbreviatedOid: String!
+
+  """
+  Byte size of Blob object
+  """
+  byteSize: Int!
+
+  """
+  The HTTP path for this Git object
+  """
+  commitResourcePath: URI!
+
+  """
+  The HTTP URL for this Git object
+  """
+  commitUrl: URI!
+  id: ID!
+
+  """
+  Indicates whether the Blob is binary or text. Returns null if unable to determine the encoding.
+  """
+  isBinary: Boolean
+
+  """
+  Indicates whether the contents is truncated
+  """
+  isTruncated: Boolean!
+
+  """
+  The Git object ID
+  """
+  oid: GitObjectID!
+
+  """
+  The Repository the Git object belongs to
+  """
+  repository: Repository!
+
+  """
+  UTF8 text data or null if the Blob is binary
+  """
+  text: String
+}
+
+"""
+A special type of user which takes actions on behalf of GitHub Apps.
+"""
+type Bot implements Actor & Node & UniformResourceLocatable {
+  """
+  A URL pointing to the GitHub App's public avatar.
+  """
+  avatarUrl(
+    """
+    The size of the resulting square image.
+    """
+    size: Int
+  ): URI!
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+
+  """
+  Identifies the primary key from the database.
+  """
+  databaseId: Int
+  id: ID!
+
+  """
+  The username of the actor.
+  """
+  login: String!
+
+  """
+  The HTTP path for this bot
+  """
+  resourcePath: URI!
+
+  """
+  Identifies the date and time when the object was last updated.
+  """
+  updatedAt: DateTime!
+
+  """
+  The HTTP URL for this bot
+  """
+  url: URI!
+}
+
+"""
+A branch protection rule.
+"""
+type BranchProtectionRule implements Node {
+  """
+  Can this branch be deleted.
+  """
+  allowsDeletions: Boolean!
+
+  """
+  Are force pushes allowed on this branch.
+  """
+  allowsForcePushes: Boolean!
+
+  """
+  A list of conflicts matching branches protection rule and other branch protection rules
+  """
+  branchProtectionRuleConflicts(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+  ): BranchProtectionRuleConflictConnection!
+
+  """
+  The actor who created this branch protection rule.
+  """
+  creator: Actor
+
+  """
+  Identifies the primary key from the database.
+  """
+  databaseId: Int
+
+  """
+  Will new commits pushed to matching branches dismiss pull request review approvals.
+  """
+  dismissesStaleReviews: Boolean!
+  id: ID!
+
+  """
+  Can admins overwrite branch protection.
+  """
+  isAdminEnforced: Boolean!
+
+  """
+  Repository refs that are protected by this rule
+  """
+  matchingRefs(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Filters refs with query on name
+    """
+    query: String
+  ): RefConnection!
+
+  """
+  Identifies the protection rule pattern.
+  """
+  pattern: String!
+
+  """
+  A list push allowances for this branch protection rule.
+  """
+  pushAllowances(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+  ): PushAllowanceConnection!
+
+  """
+  The repository associated with this branch protection rule.
+  """
+  repository: Repository
+
+  """
+  Number of approving reviews required to update matching branches.
+  """
+  requiredApprovingReviewCount: Int
+
+  """
+  List of required status check contexts that must pass for commits to be accepted to matching branches.
+  """
+  requiredStatusCheckContexts: [String]
+
+  """
+  Are approving reviews required to update matching branches.
+  """
+  requiresApprovingReviews: Boolean!
+
+  """
+  Are reviews from code owners required to update matching branches.
+  """
+  requiresCodeOwnerReviews: Boolean!
+
+  """
+  Are commits required to be signed.
+  """
+  requiresCommitSignatures: Boolean!
+
+  """
+  Are merge commits prohibited from being pushed to this branch.
+  """
+  requiresLinearHistory: Boolean!
+
+  """
+  Are status checks required to update matching branches.
+  """
+  requiresStatusChecks: Boolean!
+
+  """
+  Are branches required to be up to date before merging.
+  """
+  requiresStrictStatusChecks: Boolean!
+
+  """
+  Is pushing to matching branches restricted.
+  """
+  restrictsPushes: Boolean!
+
+  """
+  Is dismissal of pull request reviews restricted.
+  """
+  restrictsReviewDismissals: Boolean!
+
+  """
+  A list review dismissal allowances for this branch protection rule.
+  """
+  reviewDismissalAllowances(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+  ): ReviewDismissalAllowanceConnection!
+}
+
+"""
+A conflict between two branch protection rules.
+"""
+type BranchProtectionRuleConflict {
+  """
+  Identifies the branch protection rule.
+  """
+  branchProtectionRule: BranchProtectionRule
+
+  """
+  Identifies the conflicting branch protection rule.
+  """
+  conflictingBranchProtectionRule: BranchProtectionRule
+
+  """
+  Identifies the branch ref that has conflicting rules
+  """
+  ref: Ref
+}
+
+"""
+The connection type for BranchProtectionRuleConflict.
+"""
+type BranchProtectionRuleConflictConnection {
+  """
+  A list of edges.
+  """
+  edges: [BranchProtectionRuleConflictEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [BranchProtectionRuleConflict]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+An edge in a connection.
+"""
+type BranchProtectionRuleConflictEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: BranchProtectionRuleConflict
+}
+
+"""
+The connection type for BranchProtectionRule.
+"""
+type BranchProtectionRuleConnection {
+  """
+  A list of edges.
+  """
+  edges: [BranchProtectionRuleEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [BranchProtectionRule]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+An edge in a connection.
+"""
+type BranchProtectionRuleEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: BranchProtectionRule
+}
+
+"""
+Autogenerated input type of CancelEnterpriseAdminInvitation
+"""
+input CancelEnterpriseAdminInvitationInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The Node ID of the pending enterprise administrator invitation.
+  """
+  invitationId: ID!
+}
+
+"""
+Autogenerated return type of CancelEnterpriseAdminInvitation
+"""
+type CancelEnterpriseAdminInvitationPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The invitation that was canceled.
+  """
+  invitation: EnterpriseAdministratorInvitation
+
+  """
+  A message confirming the result of canceling an administrator invitation.
+  """
+  message: String
+}
+
+"""
+Autogenerated input type of ChangeUserStatus
+"""
+input ChangeUserStatusInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The emoji to represent your status. Can either be a native Unicode emoji or an emoji name with colons, e.g., :grinning:.
+  """
+  emoji: String
+
+  """
+  If set, the user status will not be shown after this date.
+  """
+  expiresAt: DateTime
+
+  """
+  Whether this status should indicate you are not fully available on GitHub, e.g., you are away.
+  """
+  limitedAvailability: Boolean = false
+
+  """
+  A short description of your current status.
+  """
+  message: String
+
+  """
+  The ID of the organization whose members will be allowed to see the status. If
+  omitted, the status will be publicly visible.
+  """
+  organizationId: ID
+}
+
+"""
+Autogenerated return type of ChangeUserStatus
+"""
+type ChangeUserStatusPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  Your updated status.
+  """
+  status: UserStatus
+}
+
+"""
+A single check annotation.
+"""
+type CheckAnnotation {
+  """
+  The annotation's severity level.
+  """
+  annotationLevel: CheckAnnotationLevel
+
+  """
+  The path to the file that this annotation was made on.
+  """
+  blobUrl: URI!
+
+  """
+  Identifies the primary key from the database.
+  """
+  databaseId: Int
+
+  """
+  The position of this annotation.
+  """
+  location: CheckAnnotationSpan!
+
+  """
+  The annotation's message.
+  """
+  message: String!
+
+  """
+  The path that this annotation was made on.
+  """
+  path: String!
+
+  """
+  Additional information about the annotation.
+  """
+  rawDetails: String
+
+  """
+  The annotation's title
+  """
+  title: String
+}
+
+"""
+The connection type for CheckAnnotation.
+"""
+type CheckAnnotationConnection {
+  """
+  A list of edges.
+  """
+  edges: [CheckAnnotationEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [CheckAnnotation]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+Information from a check run analysis to specific lines of code.
+"""
+input CheckAnnotationData {
+  """
+  Represents an annotation's information level
+  """
+  annotationLevel: CheckAnnotationLevel!
+
+  """
+  The location of the annotation
+  """
+  location: CheckAnnotationRange!
+
+  """
+  A short description of the feedback for these lines of code.
+  """
+  message: String!
+
+  """
+  The path of the file to add an annotation to.
+  """
+  path: String!
+
+  """
+  Details about this annotation.
+  """
+  rawDetails: String
+
+  """
+  The title that represents the annotation.
+  """
+  title: String
+}
+
+"""
+An edge in a connection.
+"""
+type CheckAnnotationEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: CheckAnnotation
+}
+
+"""
+Represents an annotation's information level.
+"""
+enum CheckAnnotationLevel {
+  """
+  An annotation indicating an inescapable error.
+  """
+  FAILURE
+
+  """
+  An annotation indicating some information.
+  """
+  NOTICE
+
+  """
+  An annotation indicating an ignorable error.
+  """
+  WARNING
+}
+
+"""
+A character position in a check annotation.
+"""
+type CheckAnnotationPosition {
+  """
+  Column number (1 indexed).
+  """
+  column: Int
+
+  """
+  Line number (1 indexed).
+  """
+  line: Int!
+}
+
+"""
+Information from a check run analysis to specific lines of code.
+"""
+input CheckAnnotationRange {
+  """
+  The ending column of the range.
+  """
+  endColumn: Int
+
+  """
+  The ending line of the range.
+  """
+  endLine: Int!
+
+  """
+  The starting column of the range.
+  """
+  startColumn: Int
+
+  """
+  The starting line of the range.
+  """
+  startLine: Int!
+}
+
+"""
+An inclusive pair of positions for a check annotation.
+"""
+type CheckAnnotationSpan {
+  """
+  End position (inclusive).
+  """
+  end: CheckAnnotationPosition!
+
+  """
+  Start position (inclusive).
+  """
+  start: CheckAnnotationPosition!
+}
+
+"""
+The possible states for a check suite or run conclusion.
+"""
+enum CheckConclusionState {
+  """
+  The check suite or run requires action.
+  """
+  ACTION_REQUIRED
+
+  """
+  The check suite or run has been cancelled.
+  """
+  CANCELLED
+
+  """
+  The check suite or run has failed.
+  """
+  FAILURE
+
+  """
+  The check suite or run was neutral.
+  """
+  NEUTRAL
+
+  """
+  The check suite or run was skipped.
+  """
+  SKIPPED
+
+  """
+  The check suite or run was marked stale by GitHub. Only GitHub can use this conclusion.
+  """
+  STALE
+
+  """
+  The check suite or run has failed at startup.
+  """
+  STARTUP_FAILURE
+
+  """
+  The check suite or run has succeeded.
+  """
+  SUCCESS
+
+  """
+  The check suite or run has timed out.
+  """
+  TIMED_OUT
+}
+
+"""
+A check run.
+"""
+type CheckRun implements Node & UniformResourceLocatable {
+  """
+  The check run's annotations
+  """
+  annotations(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+  ): CheckAnnotationConnection
+
+  """
+  The check suite that this run is a part of.
+  """
+  checkSuite: CheckSuite!
+
+  """
+  Identifies the date and time when the check run was completed.
+  """
+  completedAt: DateTime
+
+  """
+  The conclusion of the check run.
+  """
+  conclusion: CheckConclusionState
+
+  """
+  Identifies the primary key from the database.
+  """
+  databaseId: Int
+
+  """
+  The URL from which to find full details of the check run on the integrator's site.
+  """
+  detailsUrl: URI
+
+  """
+  A reference for the check run on the integrator's system.
+  """
+  externalId: String
+  id: ID!
+
+  """
+  The name of the check for this check run.
+  """
+  name: String!
+
+  """
+  The permalink to the check run summary.
+  """
+  permalink: URI!
+
+  """
+  The repository associated with this check run.
+  """
+  repository: Repository!
+
+  """
+  The HTTP path for this check run.
+  """
+  resourcePath: URI!
+
+  """
+  Identifies the date and time when the check run was started.
+  """
+  startedAt: DateTime
+
+  """
+  The current status of the check run.
+  """
+  status: CheckStatusState!
+
+  """
+  A string representing the check run's summary
+  """
+  summary: String
+
+  """
+  A string representing the check run's text
+  """
+  text: String
+
+  """
+  A string representing the check run
+  """
+  title: String
+
+  """
+  The HTTP URL for this check run.
+  """
+  url: URI!
+}
+
+"""
+Possible further actions the integrator can perform.
+"""
+input CheckRunAction {
+  """
+  A short explanation of what this action would do.
+  """
+  description: String!
+
+  """
+  A reference for the action on the integrator's system. 
+  """
+  identifier: String!
+
+  """
+  The text to be displayed on a button in the web UI.
+  """
+  label: String!
+}
+
+"""
+The connection type for CheckRun.
+"""
+type CheckRunConnection {
+  """
+  A list of edges.
+  """
+  edges: [CheckRunEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [CheckRun]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+An edge in a connection.
+"""
+type CheckRunEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: CheckRun
+}
+
+"""
+The filters that are available when fetching check runs.
+"""
+input CheckRunFilter {
+  """
+  Filters the check runs created by this application ID.
+  """
+  appId: Int
+
+  """
+  Filters the check runs by this name.
+  """
+  checkName: String
+
+  """
+  Filters the check runs by this type.
+  """
+  checkType: CheckRunType
+
+  """
+  Filters the check runs by this status.
+  """
+  status: CheckStatusState
+}
+
+"""
+Descriptive details about the check run.
+"""
+input CheckRunOutput {
+  """
+  The annotations that are made as part of the check run.
+  """
+  annotations: [CheckAnnotationData!]
+
+  """
+  Images attached to the check run output displayed in the GitHub pull request UI.
+  """
+  images: [CheckRunOutputImage!]
+
+  """
+  The summary of the check run (supports Commonmark).
+  """
+  summary: String!
+
+  """
+  The details of the check run (supports Commonmark).
+  """
+  text: String
+
+  """
+  A title to provide for this check run.
+  """
+  title: String!
+}
+
+"""
+Images attached to the check run output displayed in the GitHub pull request UI.
+"""
+input CheckRunOutputImage {
+  """
+  The alternative text for the image.
+  """
+  alt: String!
+
+  """
+  A short image description.
+  """
+  caption: String
+
+  """
+  The full URL of the image.
+  """
+  imageUrl: URI!
+}
+
+"""
+The possible types of check runs.
+"""
+enum CheckRunType {
+  """
+  Every check run available.
+  """
+  ALL
+
+  """
+  The latest check run.
+  """
+  LATEST
+}
+
+"""
+The possible states for a check suite or run status.
+"""
+enum CheckStatusState {
+  """
+  The check suite or run has been completed.
+  """
+  COMPLETED
+
+  """
+  The check suite or run is in progress.
+  """
+  IN_PROGRESS
+
+  """
+  The check suite or run has been queued.
+  """
+  QUEUED
+
+  """
+  The check suite or run has been requested.
+  """
+  REQUESTED
+
+  """
+  The check suite or run is in waiting state.
+  """
+  WAITING
+}
+
+"""
+A check suite.
+"""
+type CheckSuite implements Node {
+  """
+  The GitHub App which created this check suite.
+  """
+  app: App
+
+  """
+  The name of the branch for this check suite.
+  """
+  branch: Ref
+
+  """
+  The check runs associated with a check suite.
+  """
+  checkRuns(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Filters the check runs by this type.
+    """
+    filterBy: CheckRunFilter
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+  ): CheckRunConnection
+
+  """
+  The commit for this check suite
+  """
+  commit: Commit!
+
+  """
+  The conclusion of this check suite.
+  """
+  conclusion: CheckConclusionState
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+
+  """
+  Identifies the primary key from the database.
+  """
+  databaseId: Int
+  id: ID!
+
+  """
+  A list of open pull requests matching the check suite.
+  """
+  matchingPullRequests(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    The base ref name to filter the pull requests by.
+    """
+    baseRefName: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    The head ref name to filter the pull requests by.
+    """
+    headRefName: String
+
+    """
+    A list of label names to filter the pull requests by.
+    """
+    labels: [String!]
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for pull requests returned from the connection.
+    """
+    orderBy: IssueOrder
+
+    """
+    A list of states to filter the pull requests by.
+    """
+    states: [PullRequestState!]
+  ): PullRequestConnection
+
+  """
+  The push that triggered this check suite.
+  """
+  push: Push
+
+  """
+  The repository associated with this check suite.
+  """
+  repository: Repository!
+
+  """
+  The HTTP path for this check suite
+  """
+  resourcePath: URI!
+
+  """
+  The status of this check suite.
+  """
+  status: CheckStatusState!
+
+  """
+  Identifies the date and time when the object was last updated.
+  """
+  updatedAt: DateTime!
+
+  """
+  The HTTP URL for this check suite
+  """
+  url: URI!
+}
+
+"""
+The auto-trigger preferences that are available for check suites.
+"""
+input CheckSuiteAutoTriggerPreference {
+  """
+  The node ID of the application that owns the check suite.
+  """
+  appId: ID!
+
+  """
+  Set to `true` to enable automatic creation of CheckSuite events upon pushes to the repository.
+  """
+  setting: Boolean!
+}
+
+"""
+The connection type for CheckSuite.
+"""
+type CheckSuiteConnection {
+  """
+  A list of edges.
+  """
+  edges: [CheckSuiteEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [CheckSuite]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+An edge in a connection.
+"""
+type CheckSuiteEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: CheckSuite
+}
+
+"""
+The filters that are available when fetching check suites.
+"""
+input CheckSuiteFilter {
+  """
+  Filters the check suites created by this application ID.
+  """
+  appId: Int
+
+  """
+  Filters the check suites by this name.
+  """
+  checkName: String
+}
+
+"""
+Autogenerated input type of ClearLabelsFromLabelable
+"""
+input ClearLabelsFromLabelableInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The id of the labelable object to clear the labels from.
+  """
+  labelableId: ID!
+}
+
+"""
+Autogenerated return type of ClearLabelsFromLabelable
+"""
+type ClearLabelsFromLabelablePayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The item that was unlabeled.
+  """
+  labelable: Labelable
+}
+
+"""
+Autogenerated input type of CloneProject
+"""
+input CloneProjectInput {
+  """
+  The description of the project.
+  """
+  body: String
+
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  Whether or not to clone the source project's workflows.
+  """
+  includeWorkflows: Boolean!
+
+  """
+  The name of the project.
+  """
+  name: String!
+
+  """
+  The visibility of the project, defaults to false (private).
+  """
+  public: Boolean
+
+  """
+  The source project to clone.
+  """
+  sourceId: ID!
+
+  """
+  The owner ID to create the project under.
+  """
+  targetOwnerId: ID!
+}
+
+"""
+Autogenerated return type of CloneProject
+"""
+type CloneProjectPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The id of the JobStatus for populating cloned fields.
+  """
+  jobStatusId: String
+
+  """
+  The new cloned project.
+  """
+  project: Project
+}
+
+"""
+Autogenerated input type of CloneTemplateRepository
+"""
+input CloneTemplateRepositoryInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  A short description of the new repository.
+  """
+  description: String
+
+  """
+  Whether to copy all branches from the template to the new repository. Defaults
+  to copying only the default branch of the template.
+  """
+  includeAllBranches: Boolean = false
+
+  """
+  The name of the new repository.
+  """
+  name: String!
+
+  """
+  The ID of the owner for the new repository.
+  """
+  ownerId: ID!
+
+  """
+  The Node ID of the template repository.
+  """
+  repositoryId: ID!
+
+  """
+  Indicates the repository's visibility level.
+  """
+  visibility: RepositoryVisibility!
+}
+
+"""
+Autogenerated return type of CloneTemplateRepository
+"""
+type CloneTemplateRepositoryPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The new repository.
+  """
+  repository: Repository
+}
+
+"""
+An object that can be closed
+"""
+interface Closable {
+  """
+  `true` if the object is closed (definition of closed may depend on type)
+  """
+  closed: Boolean!
+
+  """
+  Identifies the date and time when the object was closed.
+  """
+  closedAt: DateTime
+}
+
+"""
+Autogenerated input type of CloseIssue
+"""
+input CloseIssueInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  ID of the issue to be closed.
+  """
+  issueId: ID!
+}
+
+"""
+Autogenerated return type of CloseIssue
+"""
+type CloseIssuePayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The issue that was closed.
+  """
+  issue: Issue
+}
+
+"""
+Autogenerated input type of ClosePullRequest
+"""
+input ClosePullRequestInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  ID of the pull request to be closed.
+  """
+  pullRequestId: ID!
+}
+
+"""
+Autogenerated return type of ClosePullRequest
+"""
+type ClosePullRequestPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The pull request that was closed.
+  """
+  pullRequest: PullRequest
+}
+
+"""
+Represents a 'closed' event on any `Closable`.
+"""
+type ClosedEvent implements Node & UniformResourceLocatable {
+  """
+  Identifies the actor who performed the event.
+  """
+  actor: Actor
+
+  """
+  Object that was closed.
+  """
+  closable: Closable!
+
+  """
+  Object which triggered the creation of this event.
+  """
+  closer: Closer
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+  id: ID!
+
+  """
+  The HTTP path for this closed event.
+  """
+  resourcePath: URI!
+
+  """
+  The HTTP URL for this closed event.
+  """
+  url: URI!
+}
+
+"""
+The object which triggered a `ClosedEvent`.
+"""
+union Closer = Commit | PullRequest
+
+"""
+The Code of Conduct for a repository
+"""
+type CodeOfConduct implements Node {
+  """
+  The body of the Code of Conduct
+  """
+  body: String
+  id: ID!
+
+  """
+  The key for the Code of Conduct
+  """
+  key: String!
+
+  """
+  The formal name of the Code of Conduct
+  """
+  name: String!
+
+  """
+  The HTTP path for this Code of Conduct
+  """
+  resourcePath: URI
+
+  """
+  The HTTP URL for this Code of Conduct
+  """
+  url: URI
+}
+
+"""
+Collaborators affiliation level with a subject.
+"""
+enum CollaboratorAffiliation {
+  """
+  All collaborators the authenticated user can see.
+  """
+  ALL
+
+  """
+  All collaborators with permissions to an organization-owned subject, regardless of organization membership status.
+  """
+  DIRECT
+
+  """
+  All outside collaborators of an organization-owned subject.
+  """
+  OUTSIDE
+}
+
+"""
+Represents a comment.
+"""
+interface Comment {
+  """
+  The actor who authored the comment.
+  """
+  author: Actor
+
+  """
+  Author's association with the subject of the comment.
+  """
+  authorAssociation: CommentAuthorAssociation!
+
+  """
+  The body as Markdown.
+  """
+  body: String!
+
+  """
+  The body rendered to HTML.
+  """
+  bodyHTML: HTML!
+
+  """
+  The body rendered to text.
+  """
+  bodyText: String!
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+
+  """
+  Check if this comment was created via an email reply.
+  """
+  createdViaEmail: Boolean!
+
+  """
+  The actor who edited the comment.
+  """
+  editor: Actor
+  id: ID!
+
+  """
+  Check if this comment was edited and includes an edit with the creation data
+  """
+  includesCreatedEdit: Boolean!
+
+  """
+  The moment the editor made the last edit
+  """
+  lastEditedAt: DateTime
+
+  """
+  Identifies when the comment was published at.
+  """
+  publishedAt: DateTime
+
+  """
+  Identifies the date and time when the object was last updated.
+  """
+  updatedAt: DateTime!
+
+  """
+  A list of edits to this content.
+  """
+  userContentEdits(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+  ): UserContentEditConnection
+
+  """
+  Did the viewer author this comment.
+  """
+  viewerDidAuthor: Boolean!
+}
+
+"""
+A comment author association with repository.
+"""
+enum CommentAuthorAssociation {
+  """
+  Author has been invited to collaborate on the repository.
+  """
+  COLLABORATOR
+
+  """
+  Author has previously committed to the repository.
+  """
+  CONTRIBUTOR
+
+  """
+  Author has not previously committed to GitHub.
+  """
+  FIRST_TIMER
+
+  """
+  Author has not previously committed to the repository.
+  """
+  FIRST_TIME_CONTRIBUTOR
+
+  """
+  Author is a placeholder for an unclaimed user.
+  """
+  MANNEQUIN
+
+  """
+  Author is a member of the organization that owns the repository.
+  """
+  MEMBER
+
+  """
+  Author has no association with the repository.
+  """
+  NONE
+
+  """
+  Author is the owner of the repository.
+  """
+  OWNER
+}
+
+"""
+The possible errors that will prevent a user from updating a comment.
+"""
+enum CommentCannotUpdateReason {
+  """
+  Unable to create comment because repository is archived.
+  """
+  ARCHIVED
+
+  """
+  You cannot update this comment
+  """
+  DENIED
+
+  """
+  You must be the author or have write access to this repository to update this comment.
+  """
+  INSUFFICIENT_ACCESS
+
+  """
+  Unable to create comment because issue is locked.
+  """
+  LOCKED
+
+  """
+  You must be logged in to update this comment.
+  """
+  LOGIN_REQUIRED
+
+  """
+  Repository is under maintenance.
+  """
+  MAINTENANCE
+
+  """
+  At least one email address must be verified to update this comment.
+  """
+  VERIFIED_EMAIL_REQUIRED
+}
+
+"""
+Represents a 'comment_deleted' event on a given issue or pull request.
+"""
+type CommentDeletedEvent implements Node {
+  """
+  Identifies the actor who performed the event.
+  """
+  actor: Actor
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+
+  """
+  Identifies the primary key from the database.
+  """
+  databaseId: Int
+
+  """
+  The user who authored the deleted comment.
+  """
+  deletedCommentAuthor: Actor
+  id: ID!
+}
+
+"""
+Represents a Git commit.
+"""
+type Commit implements GitObject & Node & Subscribable & UniformResourceLocatable {
+  """
+  An abbreviated version of the Git object ID
+  """
+  abbreviatedOid: String!
+
+  """
+  The number of additions in this commit.
+  """
+  additions: Int!
+
+  """
+  The pull requests associated with a commit
+  """
+  associatedPullRequests(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for pull requests.
+    """
+    orderBy: PullRequestOrder = {field: CREATED_AT, direction: ASC}
+  ): PullRequestConnection
+
+  """
+  Authorship details of the commit.
+  """
+  author: GitActor
+
+  """
+  Check if the committer and the author match.
+  """
+  authoredByCommitter: Boolean!
+
+  """
+  The datetime when this commit was authored.
+  """
+  authoredDate: DateTime!
+
+  """
+  The list of authors for this commit based on the git author and the Co-authored-by
+  message trailer. The git author will always be first.
+  """
+  authors(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+  ): GitActorConnection!
+
+  """
+  Fetches `git blame` information.
+  """
+  blame(
+    """
+    The file whose Git blame information you want.
+    """
+    path: String!
+  ): Blame!
+
+  """
+  The number of changed files in this commit.
+  """
+  changedFiles: Int!
+
+  """
+  The check suites associated with a commit.
+  """
+  checkSuites(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Filters the check suites by this type.
+    """
+    filterBy: CheckSuiteFilter
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+  ): CheckSuiteConnection
+
+  """
+  Comments made on the commit.
+  """
+  comments(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+  ): CommitCommentConnection!
+
+  """
+  The HTTP path for this Git object
+  """
+  commitResourcePath: URI!
+
+  """
+  The HTTP URL for this Git object
+  """
+  commitUrl: URI!
+
+  """
+  The datetime when this commit was committed.
+  """
+  committedDate: DateTime!
+
+  """
+  Check if committed via GitHub web UI.
+  """
+  committedViaWeb: Boolean!
+
+  """
+  Committer details of the commit.
+  """
+  committer: GitActor
+
+  """
+  The number of deletions in this commit.
+  """
+  deletions: Int!
+
+  """
+  The deployments associated with a commit.
+  """
+  deployments(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Environments to list deployments for
+    """
+    environments: [String!]
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for deployments returned from the connection.
+    """
+    orderBy: DeploymentOrder = {field: CREATED_AT, direction: ASC}
+  ): DeploymentConnection
+
+  """
+  The tree entry representing the file located at the given path.
+  """
+  file(
+    """
+    The path for the file
+    """
+    path: String!
+  ): TreeEntry
+
+  """
+  The linear commit history starting from (and including) this commit, in the same order as `git log`.
+  """
+  history(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    If non-null, filters history to only show commits with matching authorship.
+    """
+    author: CommitAuthor
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    If non-null, filters history to only show commits touching files under this path.
+    """
+    path: String
+
+    """
+    Allows specifying a beginning time or date for fetching commits.
+    """
+    since: GitTimestamp
+
+    """
+    Allows specifying an ending time or date for fetching commits.
+    """
+    until: GitTimestamp
+  ): CommitHistoryConnection!
+  id: ID!
+
+  """
+  The Git commit message
+  """
+  message: String!
+
+  """
+  The Git commit message body
+  """
+  messageBody: String!
+
+  """
+  The commit message body rendered to HTML.
+  """
+  messageBodyHTML: HTML!
+
+  """
+  The Git commit message headline
+  """
+  messageHeadline: String!
+
+  """
+  The commit message headline rendered to HTML.
+  """
+  messageHeadlineHTML: HTML!
+
+  """
+  The Git object ID
+  """
+  oid: GitObjectID!
+
+  """
+  The organization this commit was made on behalf of.
+  """
+  onBehalfOf: Organization
+
+  """
+  The parents of a commit.
+  """
+  parents(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+  ): CommitConnection!
+
+  """
+  The datetime when this commit was pushed.
+  """
+  pushedDate: DateTime
+
+  """
+  The Repository this commit belongs to
+  """
+  repository: Repository!
+
+  """
+  The HTTP path for this commit
+  """
+  resourcePath: URI!
+
+  """
+  Commit signing information, if present.
+  """
+  signature: GitSignature
+
+  """
+  Status information for this commit
+  """
+  status: Status
+
+  """
+  Check and Status rollup information for this commit.
+  """
+  statusCheckRollup: StatusCheckRollup
+
+  """
+  Returns a list of all submodules in this repository as of this Commit parsed from the .gitmodules file.
+  """
+  submodules(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+  ): SubmoduleConnection!
+
+  """
+  Returns a URL to download a tarball archive for a repository.
+  Note: For private repositories, these links are temporary and expire after five minutes.
+  """
+  tarballUrl: URI!
+
+  """
+  Commit's root Tree
+  """
+  tree: Tree!
+
+  """
+  The HTTP path for the tree of this commit
+  """
+  treeResourcePath: URI!
+
+  """
+  The HTTP URL for the tree of this commit
+  """
+  treeUrl: URI!
+
+  """
+  The HTTP URL for this commit
+  """
+  url: URI!
+
+  """
+  Check if the viewer is able to change their subscription status for the repository.
+  """
+  viewerCanSubscribe: Boolean!
+
+  """
+  Identifies if the viewer is watching, not watching, or ignoring the subscribable entity.
+  """
+  viewerSubscription: SubscriptionState
+
+  """
+  Returns a URL to download a zipball archive for a repository.
+  Note: For private repositories, these links are temporary and expire after five minutes.
+  """
+  zipballUrl: URI!
+}
+
+"""
+Specifies an author for filtering Git commits.
+"""
+input CommitAuthor {
+  """
+  Email addresses to filter by. Commits authored by any of the specified email addresses will be returned.
+  """
+  emails: [String!]
+
+  """
+  ID of a User to filter by. If non-null, only commits authored by this user
+  will be returned. This field takes precedence over emails.
+  """
+  id: ID
+}
+
+"""
+Represents a comment on a given Commit.
+"""
+type CommitComment implements Comment & Deletable & Minimizable & Node & Reactable & RepositoryNode & Updatable & UpdatableComment {
+  """
+  The actor who authored the comment.
+  """
+  author: Actor
+
+  """
+  Author's association with the subject of the comment.
+  """
+  authorAssociation: CommentAuthorAssociation!
+
+  """
+  Identifies the comment body.
+  """
+  body: String!
+
+  """
+  The body rendered to HTML.
+  """
+  bodyHTML: HTML!
+
+  """
+  The body rendered to text.
+  """
+  bodyText: String!
+
+  """
+  Identifies the commit associated with the comment, if the commit exists.
+  """
+  commit: Commit
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+
+  """
+  Check if this comment was created via an email reply.
+  """
+  createdViaEmail: Boolean!
+
+  """
+  Identifies the primary key from the database.
+  """
+  databaseId: Int
+
+  """
+  The actor who edited the comment.
+  """
+  editor: Actor
+  id: ID!
+
+  """
+  Check if this comment was edited and includes an edit with the creation data
+  """
+  includesCreatedEdit: Boolean!
+
+  """
+  Returns whether or not a comment has been minimized.
+  """
+  isMinimized: Boolean!
+
+  """
+  The moment the editor made the last edit
+  """
+  lastEditedAt: DateTime
+
+  """
+  Returns why the comment was minimized.
+  """
+  minimizedReason: String
+
+  """
+  Identifies the file path associated with the comment.
+  """
+  path: String
+
+  """
+  Identifies the line position associated with the comment.
+  """
+  position: Int
+
+  """
+  Identifies when the comment was published at.
+  """
+  publishedAt: DateTime
+
+  """
+  A list of reactions grouped by content left on the subject.
+  """
+  reactionGroups: [ReactionGroup!]
+
+  """
+  A list of Reactions left on the Issue.
+  """
+  reactions(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Allows filtering Reactions by emoji.
+    """
+    content: ReactionContent
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Allows specifying the order in which reactions are returned.
+    """
+    orderBy: ReactionOrder
+  ): ReactionConnection!
+
+  """
+  The repository associated with this node.
+  """
+  repository: Repository!
+
+  """
+  The HTTP path permalink for this commit comment.
+  """
+  resourcePath: URI!
+
+  """
+  Identifies the date and time when the object was last updated.
+  """
+  updatedAt: DateTime!
+
+  """
+  The HTTP URL permalink for this commit comment.
+  """
+  url: URI!
+
+  """
+  A list of edits to this content.
+  """
+  userContentEdits(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+  ): UserContentEditConnection
+
+  """
+  Check if the current viewer can delete this object.
+  """
+  viewerCanDelete: Boolean!
+
+  """
+  Check if the current viewer can minimize this object.
+  """
+  viewerCanMinimize: Boolean!
+
+  """
+  Can user react to this subject
+  """
+  viewerCanReact: Boolean!
+
+  """
+  Check if the current viewer can update this object.
+  """
+  viewerCanUpdate: Boolean!
+
+  """
+  Reasons why the current viewer can not update this comment.
+  """
+  viewerCannotUpdateReasons: [CommentCannotUpdateReason!]!
+
+  """
+  Did the viewer author this comment.
+  """
+  viewerDidAuthor: Boolean!
+}
+
+"""
+The connection type for CommitComment.
+"""
+type CommitCommentConnection {
+  """
+  A list of edges.
+  """
+  edges: [CommitCommentEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [CommitComment]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+An edge in a connection.
+"""
+type CommitCommentEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: CommitComment
+}
+
+"""
+A thread of comments on a commit.
+"""
+type CommitCommentThread implements Node & RepositoryNode {
+  """
+  The comments that exist in this thread.
+  """
+  comments(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+  ): CommitCommentConnection!
+
+  """
+  The commit the comments were made on.
+  """
+  commit: Commit
+  id: ID!
+
+  """
+  The file the comments were made on.
+  """
+  path: String
+
+  """
+  The position in the diff for the commit that the comment was made on.
+  """
+  position: Int
+
+  """
+  The repository associated with this node.
+  """
+  repository: Repository!
+}
+
+"""
+The connection type for Commit.
+"""
+type CommitConnection {
+  """
+  A list of edges.
+  """
+  edges: [CommitEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [Commit]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+Ordering options for commit contribution connections.
+"""
+input CommitContributionOrder {
+  """
+  The ordering direction.
+  """
+  direction: OrderDirection!
+
+  """
+  The field by which to order commit contributions.
+  """
+  field: CommitContributionOrderField!
+}
+
+"""
+Properties by which commit contribution connections can be ordered.
+"""
+enum CommitContributionOrderField {
+  """
+  Order commit contributions by how many commits they represent.
+  """
+  COMMIT_COUNT
+
+  """
+  Order commit contributions by when they were made.
+  """
+  OCCURRED_AT
+}
+
+"""
+This aggregates commits made by a user within one repository.
+"""
+type CommitContributionsByRepository {
+  """
+  The commit contributions, each representing a day.
+  """
+  contributions(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for commit contributions returned from the connection.
+    """
+    orderBy: CommitContributionOrder = {field: OCCURRED_AT, direction: DESC}
+  ): CreatedCommitContributionConnection!
+
+  """
+  The repository in which the commits were made.
+  """
+  repository: Repository!
+
+  """
+  The HTTP path for the user's commits to the repository in this time range.
+  """
+  resourcePath: URI!
+
+  """
+  The HTTP URL for the user's commits to the repository in this time range.
+  """
+  url: URI!
+}
+
+"""
+An edge in a connection.
+"""
+type CommitEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: Commit
+}
+
+"""
+The connection type for Commit.
+"""
+type CommitHistoryConnection {
+  """
+  A list of edges.
+  """
+  edges: [CommitEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [Commit]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+Represents a 'connected' event on a given issue or pull request.
+"""
+type ConnectedEvent implements Node {
+  """
+  Identifies the actor who performed the event.
+  """
+  actor: Actor
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+  id: ID!
+
+  """
+  Reference originated in a different repository.
+  """
+  isCrossRepository: Boolean!
+
+  """
+  Issue or pull request that made the reference.
+  """
+  source: ReferencedSubject!
+
+  """
+  Issue or pull request which was connected.
+  """
+  subject: ReferencedSubject!
+}
+
+"""
+Represents a contribution a user made on GitHub, such as opening an issue.
+"""
+interface Contribution {
+  """
+  Whether this contribution is associated with a record you do not have access to. For
+  example, your own 'first issue' contribution may have been made on a repository you can no
+  longer access.
+  """
+  isRestricted: Boolean!
+
+  """
+  When this contribution was made.
+  """
+  occurredAt: DateTime!
+
+  """
+  The HTTP path for this contribution.
+  """
+  resourcePath: URI!
+
+  """
+  The HTTP URL for this contribution.
+  """
+  url: URI!
+
+  """
+  The user who made this contribution.
+  """
+  user: User!
+}
+
+"""
+A calendar of contributions made on GitHub by a user.
+"""
+type ContributionCalendar {
+  """
+  A list of hex color codes used in this calendar. The darker the color, the more contributions it represents.
+  """
+  colors: [String!]!
+
+  """
+  Determine if the color set was chosen because it's currently Halloween.
+  """
+  isHalloween: Boolean!
+
+  """
+  A list of the months of contributions in this calendar.
+  """
+  months: [ContributionCalendarMonth!]!
+
+  """
+  The count of total contributions in the calendar.
+  """
+  totalContributions: Int!
+
+  """
+  A list of the weeks of contributions in this calendar.
+  """
+  weeks: [ContributionCalendarWeek!]!
+}
+
+"""
+Represents a single day of contributions on GitHub by a user.
+"""
+type ContributionCalendarDay {
+  """
+  The hex color code that represents how many contributions were made on this day compared to others in the calendar.
+  """
+  color: String!
+
+  """
+  How many contributions were made by the user on this day.
+  """
+  contributionCount: Int!
+
+  """
+  Indication of contributions, relative to other days. Can be used to indicate
+  which color to represent this day on a calendar.
+  """
+  contributionLevel: ContributionLevel!
+
+  """
+  The day this square represents.
+  """
+  date: Date!
+
+  """
+  A number representing which day of the week this square represents, e.g., 1 is Monday.
+  """
+  weekday: Int!
+}
+
+"""
+A month of contributions in a user's contribution graph.
+"""
+type ContributionCalendarMonth {
+  """
+  The date of the first day of this month.
+  """
+  firstDay: Date!
+
+  """
+  The name of the month.
+  """
+  name: String!
+
+  """
+  How many weeks started in this month.
+  """
+  totalWeeks: Int!
+
+  """
+  The year the month occurred in.
+  """
+  year: Int!
+}
+
+"""
+A week of contributions in a user's contribution graph.
+"""
+type ContributionCalendarWeek {
+  """
+  The days of contributions in this week.
+  """
+  contributionDays: [ContributionCalendarDay!]!
+
+  """
+  The date of the earliest square in this week.
+  """
+  firstDay: Date!
+}
+
+"""
+Varying levels of contributions from none to many.
+"""
+enum ContributionLevel {
+  """
+  Lowest 25% of days of contributions.
+  """
+  FIRST_QUARTILE
+
+  """
+  Highest 25% of days of contributions. More contributions than the third quartile.
+  """
+  FOURTH_QUARTILE
+
+  """
+  No contributions occurred.
+  """
+  NONE
+
+  """
+  Second lowest 25% of days of contributions. More contributions than the first quartile.
+  """
+  SECOND_QUARTILE
+
+  """
+  Second highest 25% of days of contributions. More contributions than second quartile, less than the fourth quartile.
+  """
+  THIRD_QUARTILE
+}
+
+"""
+Ordering options for contribution connections.
+"""
+input ContributionOrder {
+  """
+  The ordering direction.
+  """
+  direction: OrderDirection!
+}
+
+"""
+A contributions collection aggregates contributions such as opened issues and commits created by a user.
+"""
+type ContributionsCollection {
+  """
+  Commit contributions made by the user, grouped by repository.
+  """
+  commitContributionsByRepository(
+    """
+    How many repositories should be included.
+    """
+    maxRepositories: Int = 25
+  ): [CommitContributionsByRepository!]!
+
+  """
+  A calendar of this user's contributions on GitHub.
+  """
+  contributionCalendar: ContributionCalendar!
+
+  """
+  The years the user has been making contributions with the most recent year first.
+  """
+  contributionYears: [Int!]!
+
+  """
+  Determine if this collection's time span ends in the current month.
+  """
+  doesEndInCurrentMonth: Boolean!
+
+  """
+  The date of the first restricted contribution the user made in this time
+  period. Can only be non-null when the user has enabled private contribution counts.
+  """
+  earliestRestrictedContributionDate: Date
+
+  """
+  The ending date and time of this collection.
+  """
+  endedAt: DateTime!
+
+  """
+  The first issue the user opened on GitHub. This will be null if that issue was
+  opened outside the collection's time range and ignoreTimeRange is false. If
+  the issue is not visible but the user has opted to show private contributions,
+  a RestrictedContribution will be returned.
+  """
+  firstIssueContribution: CreatedIssueOrRestrictedContribution
+
+  """
+  The first pull request the user opened on GitHub. This will be null if that
+  pull request was opened outside the collection's time range and
+  ignoreTimeRange is not true. If the pull request is not visible but the user
+  has opted to show private contributions, a RestrictedContribution will be returned.
+  """
+  firstPullRequestContribution: CreatedPullRequestOrRestrictedContribution
+
+  """
+  The first repository the user created on GitHub. This will be null if that
+  first repository was created outside the collection's time range and
+  ignoreTimeRange is false. If the repository is not visible, then a
+  RestrictedContribution is returned.
+  """
+  firstRepositoryContribution: CreatedRepositoryOrRestrictedContribution
+
+  """
+  Does the user have any more activity in the timeline that occurred prior to the collection's time range?
+  """
+  hasActivityInThePast: Boolean!
+
+  """
+  Determine if there are any contributions in this collection.
+  """
+  hasAnyContributions: Boolean!
+
+  """
+  Determine if the user made any contributions in this time frame whose details
+  are not visible because they were made in a private repository. Can only be
+  true if the user enabled private contribution counts.
+  """
+  hasAnyRestrictedContributions: Boolean!
+
+  """
+  Whether or not the collector's time span is all within the same day.
+  """
+  isSingleDay: Boolean!
+
+  """
+  A list of issues the user opened.
+  """
+  issueContributions(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Should the user's first issue ever be excluded from the result.
+    """
+    excludeFirst: Boolean = false
+
+    """
+    Should the user's most commented issue be excluded from the result.
+    """
+    excludePopular: Boolean = false
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for contributions returned from the connection.
+    """
+    orderBy: ContributionOrder = {direction: DESC}
+  ): CreatedIssueContributionConnection!
+
+  """
+  Issue contributions made by the user, grouped by repository.
+  """
+  issueContributionsByRepository(
+    """
+    Should the user's first issue ever be excluded from the result.
+    """
+    excludeFirst: Boolean = false
+
+    """
+    Should the user's most commented issue be excluded from the result.
+    """
+    excludePopular: Boolean = false
+
+    """
+    How many repositories should be included.
+    """
+    maxRepositories: Int = 25
+  ): [IssueContributionsByRepository!]!
+
+  """
+  When the user signed up for GitHub. This will be null if that sign up date
+  falls outside the collection's time range and ignoreTimeRange is false.
+  """
+  joinedGitHubContribution: JoinedGitHubContribution
+
+  """
+  The date of the most recent restricted contribution the user made in this time
+  period. Can only be non-null when the user has enabled private contribution counts.
+  """
+  latestRestrictedContributionDate: Date
+
+  """
+  When this collection's time range does not include any activity from the user, use this
+  to get a different collection from an earlier time range that does have activity.
+  """
+  mostRecentCollectionWithActivity: ContributionsCollection
+
+  """
+  Returns a different contributions collection from an earlier time range than this one
+  that does not have any contributions.
+  """
+  mostRecentCollectionWithoutActivity: ContributionsCollection
+
+  """
+  The issue the user opened on GitHub that received the most comments in the specified
+  time frame.
+  """
+  popularIssueContribution: CreatedIssueContribution
+
+  """
+  The pull request the user opened on GitHub that received the most comments in the
+  specified time frame.
+  """
+  popularPullRequestContribution: CreatedPullRequestContribution
+
+  """
+  Pull request contributions made by the user.
+  """
+  pullRequestContributions(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Should the user's first pull request ever be excluded from the result.
+    """
+    excludeFirst: Boolean = false
+
+    """
+    Should the user's most commented pull request be excluded from the result.
+    """
+    excludePopular: Boolean = false
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for contributions returned from the connection.
+    """
+    orderBy: ContributionOrder = {direction: DESC}
+  ): CreatedPullRequestContributionConnection!
+
+  """
+  Pull request contributions made by the user, grouped by repository.
+  """
+  pullRequestContributionsByRepository(
+    """
+    Should the user's first pull request ever be excluded from the result.
+    """
+    excludeFirst: Boolean = false
+
+    """
+    Should the user's most commented pull request be excluded from the result.
+    """
+    excludePopular: Boolean = false
+
+    """
+    How many repositories should be included.
+    """
+    maxRepositories: Int = 25
+  ): [PullRequestContributionsByRepository!]!
+
+  """
+  Pull request review contributions made by the user.
+  """
+  pullRequestReviewContributions(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for contributions returned from the connection.
+    """
+    orderBy: ContributionOrder = {direction: DESC}
+  ): CreatedPullRequestReviewContributionConnection!
+
+  """
+  Pull request review contributions made by the user, grouped by repository.
+  """
+  pullRequestReviewContributionsByRepository(
+    """
+    How many repositories should be included.
+    """
+    maxRepositories: Int = 25
+  ): [PullRequestReviewContributionsByRepository!]!
+
+  """
+  A list of repositories owned by the user that the user created in this time range.
+  """
+  repositoryContributions(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Should the user's first repository ever be excluded from the result.
+    """
+    excludeFirst: Boolean = false
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for contributions returned from the connection.
+    """
+    orderBy: ContributionOrder = {direction: DESC}
+  ): CreatedRepositoryContributionConnection!
+
+  """
+  A count of contributions made by the user that the viewer cannot access. Only
+  non-zero when the user has chosen to share their private contribution counts.
+  """
+  restrictedContributionsCount: Int!
+
+  """
+  The beginning date and time of this collection.
+  """
+  startedAt: DateTime!
+
+  """
+  How many commits were made by the user in this time span.
+  """
+  totalCommitContributions: Int!
+
+  """
+  How many issues the user opened.
+  """
+  totalIssueContributions(
+    """
+    Should the user's first issue ever be excluded from this count.
+    """
+    excludeFirst: Boolean = false
+
+    """
+    Should the user's most commented issue be excluded from this count.
+    """
+    excludePopular: Boolean = false
+  ): Int!
+
+  """
+  How many pull requests the user opened.
+  """
+  totalPullRequestContributions(
+    """
+    Should the user's first pull request ever be excluded from this count.
+    """
+    excludeFirst: Boolean = false
+
+    """
+    Should the user's most commented pull request be excluded from this count.
+    """
+    excludePopular: Boolean = false
+  ): Int!
+
+  """
+  How many pull request reviews the user left.
+  """
+  totalPullRequestReviewContributions: Int!
+
+  """
+  How many different repositories the user committed to.
+  """
+  totalRepositoriesWithContributedCommits: Int!
+
+  """
+  How many different repositories the user opened issues in.
+  """
+  totalRepositoriesWithContributedIssues(
+    """
+    Should the user's first issue ever be excluded from this count.
+    """
+    excludeFirst: Boolean = false
+
+    """
+    Should the user's most commented issue be excluded from this count.
+    """
+    excludePopular: Boolean = false
+  ): Int!
+
+  """
+  How many different repositories the user left pull request reviews in.
+  """
+  totalRepositoriesWithContributedPullRequestReviews: Int!
+
+  """
+  How many different repositories the user opened pull requests in.
+  """
+  totalRepositoriesWithContributedPullRequests(
+    """
+    Should the user's first pull request ever be excluded from this count.
+    """
+    excludeFirst: Boolean = false
+
+    """
+    Should the user's most commented pull request be excluded from this count.
+    """
+    excludePopular: Boolean = false
+  ): Int!
+
+  """
+  How many repositories the user created.
+  """
+  totalRepositoryContributions(
+    """
+    Should the user's first repository ever be excluded from this count.
+    """
+    excludeFirst: Boolean = false
+  ): Int!
+
+  """
+  The user who made the contributions in this collection.
+  """
+  user: User!
+}
+
+"""
+Autogenerated input type of ConvertProjectCardNoteToIssue
+"""
+input ConvertProjectCardNoteToIssueInput {
+  """
+  The body of the newly created issue.
+  """
+  body: String
+
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The ProjectCard ID to convert.
+  """
+  projectCardId: ID!
+
+  """
+  The ID of the repository to create the issue in.
+  """
+  repositoryId: ID!
+
+  """
+  The title of the newly created issue. Defaults to the card's note text.
+  """
+  title: String
+}
+
+"""
+Autogenerated return type of ConvertProjectCardNoteToIssue
+"""
+type ConvertProjectCardNoteToIssuePayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The updated ProjectCard.
+  """
+  projectCard: ProjectCard
+}
+
+"""
+Represents a 'convert_to_draft' event on a given pull request.
+"""
+type ConvertToDraftEvent implements Node & UniformResourceLocatable {
+  """
+  Identifies the actor who performed the event.
+  """
+  actor: Actor
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+  id: ID!
+
+  """
+  PullRequest referenced by event.
+  """
+  pullRequest: PullRequest!
+
+  """
+  The HTTP path for this convert to draft event.
+  """
+  resourcePath: URI!
+
+  """
+  The HTTP URL for this convert to draft event.
+  """
+  url: URI!
+}
+
+"""
+Represents a 'converted_note_to_issue' event on a given issue or pull request.
+"""
+type ConvertedNoteToIssueEvent implements Node {
+  """
+  Identifies the actor who performed the event.
+  """
+  actor: Actor
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+
+  """
+  Identifies the primary key from the database.
+  """
+  databaseId: Int
+  id: ID!
+}
+
+"""
+Autogenerated input type of CreateBranchProtectionRule
+"""
+input CreateBranchProtectionRuleInput {
+  """
+  Can this branch be deleted.
+  """
+  allowsDeletions: Boolean
+
+  """
+  Are force pushes allowed on this branch.
+  """
+  allowsForcePushes: Boolean
+
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  Will new commits pushed to matching branches dismiss pull request review approvals.
+  """
+  dismissesStaleReviews: Boolean
+
+  """
+  Can admins overwrite branch protection.
+  """
+  isAdminEnforced: Boolean
+
+  """
+  The glob-like pattern used to determine matching branches.
+  """
+  pattern: String!
+
+  """
+  A list of User, Team or App IDs allowed to push to matching branches.
+  """
+  pushActorIds: [ID!]
+
+  """
+  The global relay id of the repository in which a new branch protection rule should be created in.
+  """
+  repositoryId: ID!
+
+  """
+  Number of approving reviews required to update matching branches.
+  """
+  requiredApprovingReviewCount: Int
+
+  """
+  List of required status check contexts that must pass for commits to be accepted to matching branches.
+  """
+  requiredStatusCheckContexts: [String!]
+
+  """
+  Are approving reviews required to update matching branches.
+  """
+  requiresApprovingReviews: Boolean
+
+  """
+  Are reviews from code owners required to update matching branches.
+  """
+  requiresCodeOwnerReviews: Boolean
+
+  """
+  Are commits required to be signed.
+  """
+  requiresCommitSignatures: Boolean
+
+  """
+  Are merge commits prohibited from being pushed to this branch.
+  """
+  requiresLinearHistory: Boolean
+
+  """
+  Are status checks required to update matching branches.
+  """
+  requiresStatusChecks: Boolean
+
+  """
+  Are branches required to be up to date before merging.
+  """
+  requiresStrictStatusChecks: Boolean
+
+  """
+  Is pushing to matching branches restricted.
+  """
+  restrictsPushes: Boolean
+
+  """
+  Is dismissal of pull request reviews restricted.
+  """
+  restrictsReviewDismissals: Boolean
+
+  """
+  A list of User or Team IDs allowed to dismiss reviews on pull requests targeting matching branches.
+  """
+  reviewDismissalActorIds: [ID!]
+}
+
+"""
+Autogenerated return type of CreateBranchProtectionRule
+"""
+type CreateBranchProtectionRulePayload {
+  """
+  The newly created BranchProtectionRule.
+  """
+  branchProtectionRule: BranchProtectionRule
+
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+}
+
+"""
+Autogenerated input type of CreateCheckRun
+"""
+input CreateCheckRunInput {
+  """
+  Possible further actions the integrator can perform, which a user may trigger.
+  """
+  actions: [CheckRunAction!]
+
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The time that the check run finished.
+  """
+  completedAt: DateTime
+
+  """
+  The final conclusion of the check.
+  """
+  conclusion: CheckConclusionState
+
+  """
+  The URL of the integrator's site that has the full details of the check.
+  """
+  detailsUrl: URI
+
+  """
+  A reference for the run on the integrator's system.
+  """
+  externalId: String
+
+  """
+  The SHA of the head commit.
+  """
+  headSha: GitObjectID!
+
+  """
+  The name of the check.
+  """
+  name: String!
+
+  """
+  Descriptive details about the run.
+  """
+  output: CheckRunOutput
+
+  """
+  The node ID of the repository.
+  """
+  repositoryId: ID!
+
+  """
+  The time that the check run began.
+  """
+  startedAt: DateTime
+
+  """
+  The current status.
+  """
+  status: RequestableCheckStatusState
+}
+
+"""
+Autogenerated return type of CreateCheckRun
+"""
+type CreateCheckRunPayload {
+  """
+  The newly created check run.
+  """
+  checkRun: CheckRun
+
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+}
+
+"""
+Autogenerated input type of CreateCheckSuite
+"""
+input CreateCheckSuiteInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The SHA of the head commit.
+  """
+  headSha: GitObjectID!
+
+  """
+  The Node ID of the repository.
+  """
+  repositoryId: ID!
+}
+
+"""
+Autogenerated return type of CreateCheckSuite
+"""
+type CreateCheckSuitePayload {
+  """
+  The newly created check suite.
+  """
+  checkSuite: CheckSuite
+
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+}
+
+"""
+Autogenerated input type of CreateEnterpriseOrganization
+"""
+input CreateEnterpriseOrganizationInput {
+  """
+  The logins for the administrators of the new organization.
+  """
+  adminLogins: [String!]!
+
+  """
+  The email used for sending billing receipts.
+  """
+  billingEmail: String!
+
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The ID of the enterprise owning the new organization.
+  """
+  enterpriseId: ID!
+
+  """
+  The login of the new organization.
+  """
+  login: String!
+
+  """
+  The profile name of the new organization.
+  """
+  profileName: String!
+}
+
+"""
+Autogenerated return type of CreateEnterpriseOrganization
+"""
+type CreateEnterpriseOrganizationPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The enterprise that owns the created organization.
+  """
+  enterprise: Enterprise
+
+  """
+  The organization that was created.
+  """
+  organization: Organization
+}
+
+"""
+Autogenerated input type of CreateIpAllowListEntry
+"""
+input CreateIpAllowListEntryInput {
+  """
+  An IP address or range of addresses in CIDR notation.
+  """
+  allowListValue: String!
+
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  Whether the IP allow list entry is active when an IP allow list is enabled.
+  """
+  isActive: Boolean!
+
+  """
+  An optional name for the IP allow list entry.
+  """
+  name: String
+
+  """
+  The ID of the owner for which to create the new IP allow list entry.
+  """
+  ownerId: ID!
+}
+
+"""
+Autogenerated return type of CreateIpAllowListEntry
+"""
+type CreateIpAllowListEntryPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The IP allow list entry that was created.
+  """
+  ipAllowListEntry: IpAllowListEntry
+}
+
+"""
+Autogenerated input type of CreateIssue
+"""
+input CreateIssueInput {
+  """
+  The Node ID for the user assignee for this issue.
+  """
+  assigneeIds: [ID!]
+
+  """
+  The body for the issue description.
+  """
+  body: String
+
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The name of an issue template in the repository, assigns labels and assignees from the template to the issue
+  """
+  issueTemplate: String
+
+  """
+  An array of Node IDs of labels for this issue.
+  """
+  labelIds: [ID!]
+
+  """
+  The Node ID of the milestone for this issue.
+  """
+  milestoneId: ID
+
+  """
+  An array of Node IDs for projects associated with this issue.
+  """
+  projectIds: [ID!]
+
+  """
+  The Node ID of the repository.
+  """
+  repositoryId: ID!
+
+  """
+  The title for the issue.
+  """
+  title: String!
+}
+
+"""
+Autogenerated return type of CreateIssue
+"""
+type CreateIssuePayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The new issue.
+  """
+  issue: Issue
+}
+
+"""
+Autogenerated input type of CreateProject
+"""
+input CreateProjectInput {
+  """
+  The description of project.
+  """
+  body: String
+
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The name of project.
+  """
+  name: String!
+
+  """
+  The owner ID to create the project under.
+  """
+  ownerId: ID!
+
+  """
+  A list of repository IDs to create as linked repositories for the project
+  """
+  repositoryIds: [ID!]
+
+  """
+  The name of the GitHub-provided template.
+  """
+  template: ProjectTemplate
+}
+
+"""
+Autogenerated return type of CreateProject
+"""
+type CreateProjectPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The new project.
+  """
+  project: Project
+}
+
+"""
+Autogenerated input type of CreatePullRequest
+"""
+input CreatePullRequestInput {
+  """
+  The name of the branch you want your changes pulled into. This should be an existing branch
+  on the current repository. You cannot update the base branch on a pull request to point
+  to another repository.
+  """
+  baseRefName: String!
+
+  """
+  The contents of the pull request.
+  """
+  body: String
+
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  Indicates whether this pull request should be a draft.
+  """
+  draft: Boolean = false
+
+  """
+  The name of the branch where your changes are implemented. For cross-repository pull requests
+  in the same network, namespace `head_ref_name` with a user like this: `username:branch`.
+  """
+  headRefName: String!
+
+  """
+  Indicates whether maintainers can modify the pull request.
+  """
+  maintainerCanModify: Boolean = true
+
+  """
+  The Node ID of the repository.
+  """
+  repositoryId: ID!
+
+  """
+  The title of the pull request.
+  """
+  title: String!
+}
+
+"""
+Autogenerated return type of CreatePullRequest
+"""
+type CreatePullRequestPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The new pull request.
+  """
+  pullRequest: PullRequest
+}
+
+"""
+Autogenerated input type of CreateRef
+"""
+input CreateRefInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The fully qualified name of the new Ref (ie: `refs/heads/my_new_branch`).
+  """
+  name: String!
+
+  """
+  The GitObjectID that the new Ref shall target. Must point to a commit.
+  """
+  oid: GitObjectID!
+
+  """
+  The Node ID of the Repository to create the Ref in.
+  """
+  repositoryId: ID!
+}
+
+"""
+Autogenerated return type of CreateRef
+"""
+type CreateRefPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The newly created ref.
+  """
+  ref: Ref
+}
+
+"""
+Autogenerated input type of CreateRepository
+"""
+input CreateRepositoryInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  A short description of the new repository.
+  """
+  description: String
+
+  """
+  Indicates if the repository should have the issues feature enabled.
+  """
+  hasIssuesEnabled: Boolean = true
+
+  """
+  Indicates if the repository should have the wiki feature enabled.
+  """
+  hasWikiEnabled: Boolean = false
+
+  """
+  The URL for a web page about this repository.
+  """
+  homepageUrl: URI
+
+  """
+  The name of the new repository.
+  """
+  name: String!
+
+  """
+  The ID of the owner for the new repository.
+  """
+  ownerId: ID
+
+  """
+  When an organization is specified as the owner, this ID identifies the team
+  that should be granted access to the new repository.
+  """
+  teamId: ID
+
+  """
+  Whether this repository should be marked as a template such that anyone who
+  can access it can create new repositories with the same files and directory structure.
+  """
+  template: Boolean = false
+
+  """
+  Indicates the repository's visibility level.
+  """
+  visibility: RepositoryVisibility!
+}
+
+"""
+Autogenerated return type of CreateRepository
+"""
+type CreateRepositoryPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The new repository.
+  """
+  repository: Repository
+}
+
+"""
+Autogenerated input type of CreateTeamDiscussionComment
+"""
+input CreateTeamDiscussionCommentInput {
+  """
+  The content of the comment.
+  """
+  body: String!
+
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The ID of the discussion to which the comment belongs.
+  """
+  discussionId: ID!
+}
+
+"""
+Autogenerated return type of CreateTeamDiscussionComment
+"""
+type CreateTeamDiscussionCommentPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The new comment.
+  """
+  teamDiscussionComment: TeamDiscussionComment
+}
+
+"""
+Autogenerated input type of CreateTeamDiscussion
+"""
+input CreateTeamDiscussionInput {
+  """
+  The content of the discussion.
+  """
+  body: String!
+
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  If true, restricts the visibility of this discussion to team members and
+  organization admins. If false or not specified, allows any organization member
+  to view this discussion.
+  """
+  private: Boolean
+
+  """
+  The ID of the team to which the discussion belongs.
+  """
+  teamId: ID!
+
+  """
+  The title of the discussion.
+  """
+  title: String!
+}
+
+"""
+Autogenerated return type of CreateTeamDiscussion
+"""
+type CreateTeamDiscussionPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The new discussion.
+  """
+  teamDiscussion: TeamDiscussion
+}
+
+"""
+Represents the contribution a user made by committing to a repository.
+"""
+type CreatedCommitContribution implements Contribution {
+  """
+  How many commits were made on this day to this repository by the user.
+  """
+  commitCount: Int!
+
+  """
+  Whether this contribution is associated with a record you do not have access to. For
+  example, your own 'first issue' contribution may have been made on a repository you can no
+  longer access.
+  """
+  isRestricted: Boolean!
+
+  """
+  When this contribution was made.
+  """
+  occurredAt: DateTime!
+
+  """
+  The repository the user made a commit in.
+  """
+  repository: Repository!
+
+  """
+  The HTTP path for this contribution.
+  """
+  resourcePath: URI!
+
+  """
+  The HTTP URL for this contribution.
+  """
+  url: URI!
+
+  """
+  The user who made this contribution.
+  """
+  user: User!
+}
+
+"""
+The connection type for CreatedCommitContribution.
+"""
+type CreatedCommitContributionConnection {
+  """
+  A list of edges.
+  """
+  edges: [CreatedCommitContributionEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [CreatedCommitContribution]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of commits across days and repositories in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+An edge in a connection.
+"""
+type CreatedCommitContributionEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: CreatedCommitContribution
+}
+
+"""
+Represents the contribution a user made on GitHub by opening an issue.
+"""
+type CreatedIssueContribution implements Contribution {
+  """
+  Whether this contribution is associated with a record you do not have access to. For
+  example, your own 'first issue' contribution may have been made on a repository you can no
+  longer access.
+  """
+  isRestricted: Boolean!
+
+  """
+  The issue that was opened.
+  """
+  issue: Issue!
+
+  """
+  When this contribution was made.
+  """
+  occurredAt: DateTime!
+
+  """
+  The HTTP path for this contribution.
+  """
+  resourcePath: URI!
+
+  """
+  The HTTP URL for this contribution.
+  """
+  url: URI!
+
+  """
+  The user who made this contribution.
+  """
+  user: User!
+}
+
+"""
+The connection type for CreatedIssueContribution.
+"""
+type CreatedIssueContributionConnection {
+  """
+  A list of edges.
+  """
+  edges: [CreatedIssueContributionEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [CreatedIssueContribution]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+An edge in a connection.
+"""
+type CreatedIssueContributionEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: CreatedIssueContribution
+}
+
+"""
+Represents either a issue the viewer can access or a restricted contribution.
+"""
+union CreatedIssueOrRestrictedContribution = CreatedIssueContribution | RestrictedContribution
+
+"""
+Represents the contribution a user made on GitHub by opening a pull request.
+"""
+type CreatedPullRequestContribution implements Contribution {
+  """
+  Whether this contribution is associated with a record you do not have access to. For
+  example, your own 'first issue' contribution may have been made on a repository you can no
+  longer access.
+  """
+  isRestricted: Boolean!
+
+  """
+  When this contribution was made.
+  """
+  occurredAt: DateTime!
+
+  """
+  The pull request that was opened.
+  """
+  pullRequest: PullRequest!
+
+  """
+  The HTTP path for this contribution.
+  """
+  resourcePath: URI!
+
+  """
+  The HTTP URL for this contribution.
+  """
+  url: URI!
+
+  """
+  The user who made this contribution.
+  """
+  user: User!
+}
+
+"""
+The connection type for CreatedPullRequestContribution.
+"""
+type CreatedPullRequestContributionConnection {
+  """
+  A list of edges.
+  """
+  edges: [CreatedPullRequestContributionEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [CreatedPullRequestContribution]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+An edge in a connection.
+"""
+type CreatedPullRequestContributionEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: CreatedPullRequestContribution
+}
+
+"""
+Represents either a pull request the viewer can access or a restricted contribution.
+"""
+union CreatedPullRequestOrRestrictedContribution = CreatedPullRequestContribution | RestrictedContribution
+
+"""
+Represents the contribution a user made by leaving a review on a pull request.
+"""
+type CreatedPullRequestReviewContribution implements Contribution {
+  """
+  Whether this contribution is associated with a record you do not have access to. For
+  example, your own 'first issue' contribution may have been made on a repository you can no
+  longer access.
+  """
+  isRestricted: Boolean!
+
+  """
+  When this contribution was made.
+  """
+  occurredAt: DateTime!
+
+  """
+  The pull request the user reviewed.
+  """
+  pullRequest: PullRequest!
+
+  """
+  The review the user left on the pull request.
+  """
+  pullRequestReview: PullRequestReview!
+
+  """
+  The repository containing the pull request that the user reviewed.
+  """
+  repository: Repository!
+
+  """
+  The HTTP path for this contribution.
+  """
+  resourcePath: URI!
+
+  """
+  The HTTP URL for this contribution.
+  """
+  url: URI!
+
+  """
+  The user who made this contribution.
+  """
+  user: User!
+}
+
+"""
+The connection type for CreatedPullRequestReviewContribution.
+"""
+type CreatedPullRequestReviewContributionConnection {
+  """
+  A list of edges.
+  """
+  edges: [CreatedPullRequestReviewContributionEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [CreatedPullRequestReviewContribution]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+An edge in a connection.
+"""
+type CreatedPullRequestReviewContributionEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: CreatedPullRequestReviewContribution
+}
+
+"""
+Represents the contribution a user made on GitHub by creating a repository.
+"""
+type CreatedRepositoryContribution implements Contribution {
+  """
+  Whether this contribution is associated with a record you do not have access to. For
+  example, your own 'first issue' contribution may have been made on a repository you can no
+  longer access.
+  """
+  isRestricted: Boolean!
+
+  """
+  When this contribution was made.
+  """
+  occurredAt: DateTime!
+
+  """
+  The repository that was created.
+  """
+  repository: Repository!
+
+  """
+  The HTTP path for this contribution.
+  """
+  resourcePath: URI!
+
+  """
+  The HTTP URL for this contribution.
+  """
+  url: URI!
+
+  """
+  The user who made this contribution.
+  """
+  user: User!
+}
+
+"""
+The connection type for CreatedRepositoryContribution.
+"""
+type CreatedRepositoryContributionConnection {
+  """
+  A list of edges.
+  """
+  edges: [CreatedRepositoryContributionEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [CreatedRepositoryContribution]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+An edge in a connection.
+"""
+type CreatedRepositoryContributionEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: CreatedRepositoryContribution
+}
+
+"""
+Represents either a repository the viewer can access or a restricted contribution.
+"""
+union CreatedRepositoryOrRestrictedContribution = CreatedRepositoryContribution | RestrictedContribution
+
+"""
+Represents a mention made by one issue or pull request to another.
+"""
+type CrossReferencedEvent implements Node & UniformResourceLocatable {
+  """
+  Identifies the actor who performed the event.
+  """
+  actor: Actor
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+  id: ID!
+
+  """
+  Reference originated in a different repository.
+  """
+  isCrossRepository: Boolean!
+
+  """
+  Identifies when the reference was made.
+  """
+  referencedAt: DateTime!
+
+  """
+  The HTTP path for this pull request.
+  """
+  resourcePath: URI!
+
+  """
+  Issue or pull request that made the reference.
+  """
+  source: ReferencedSubject!
+
+  """
+  Issue or pull request to which the reference was made.
+  """
+  target: ReferencedSubject!
+
+  """
+  The HTTP URL for this pull request.
+  """
+  url: URI!
+
+  """
+  Checks if the target will be closed when the source is merged.
+  """
+  willCloseTarget: Boolean!
+}
+
+"""
+An ISO-8601 encoded date string.
+"""
+scalar Date
+
+"""
+An ISO-8601 encoded UTC date string.
+"""
+scalar DateTime
+
+"""
+Autogenerated input type of DeclineTopicSuggestion
+"""
+input DeclineTopicSuggestionInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The name of the suggested topic.
+  """
+  name: String!
+
+  """
+  The reason why the suggested topic is declined.
+  """
+  reason: TopicSuggestionDeclineReason!
+
+  """
+  The Node ID of the repository.
+  """
+  repositoryId: ID!
+}
+
+"""
+Autogenerated return type of DeclineTopicSuggestion
+"""
+type DeclineTopicSuggestionPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The declined topic.
+  """
+  topic: Topic
+}
+
+"""
+The possible default permissions for repositories.
+"""
+enum DefaultRepositoryPermissionField {
+  """
+  Can read, write, and administrate repos by default
+  """
+  ADMIN
+
+  """
+  No access
+  """
+  NONE
+
+  """
+  Can read repos by default
+  """
+  READ
+
+  """
+  Can read and write repos by default
+  """
+  WRITE
+}
+
+"""
+Entities that can be deleted.
+"""
+interface Deletable {
+  """
+  Check if the current viewer can delete this object.
+  """
+  viewerCanDelete: Boolean!
+}
+
+"""
+Autogenerated input type of DeleteBranchProtectionRule
+"""
+input DeleteBranchProtectionRuleInput {
+  """
+  The global relay id of the branch protection rule to be deleted.
+  """
+  branchProtectionRuleId: ID!
+
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+}
+
+"""
+Autogenerated return type of DeleteBranchProtectionRule
+"""
+type DeleteBranchProtectionRulePayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+}
+
+"""
+Autogenerated input type of DeleteDeployment
+"""
+input DeleteDeploymentInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The Node ID of the deployment to be deleted.
+  """
+  id: ID!
+}
+
+"""
+Autogenerated return type of DeleteDeployment
+"""
+type DeleteDeploymentPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+}
+
+"""
+Autogenerated input type of DeleteIpAllowListEntry
+"""
+input DeleteIpAllowListEntryInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The ID of the IP allow list entry to delete.
+  """
+  ipAllowListEntryId: ID!
+}
+
+"""
+Autogenerated return type of DeleteIpAllowListEntry
+"""
+type DeleteIpAllowListEntryPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The IP allow list entry that was deleted.
+  """
+  ipAllowListEntry: IpAllowListEntry
+}
+
+"""
+Autogenerated input type of DeleteIssueComment
+"""
+input DeleteIssueCommentInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The ID of the comment to delete.
+  """
+  id: ID!
+}
+
+"""
+Autogenerated return type of DeleteIssueComment
+"""
+type DeleteIssueCommentPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+}
+
+"""
+Autogenerated input type of DeleteIssue
+"""
+input DeleteIssueInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The ID of the issue to delete.
+  """
+  issueId: ID!
+}
+
+"""
+Autogenerated return type of DeleteIssue
+"""
+type DeleteIssuePayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The repository the issue belonged to
+  """
+  repository: Repository
+}
+
+"""
+Autogenerated input type of DeleteProjectCard
+"""
+input DeleteProjectCardInput {
+  """
+  The id of the card to delete.
+  """
+  cardId: ID!
+
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+}
+
+"""
+Autogenerated return type of DeleteProjectCard
+"""
+type DeleteProjectCardPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The column the deleted card was in.
+  """
+  column: ProjectColumn
+
+  """
+  The deleted card ID.
+  """
+  deletedCardId: ID
+}
+
+"""
+Autogenerated input type of DeleteProjectColumn
+"""
+input DeleteProjectColumnInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The id of the column to delete.
+  """
+  columnId: ID!
+}
+
+"""
+Autogenerated return type of DeleteProjectColumn
+"""
+type DeleteProjectColumnPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The deleted column ID.
+  """
+  deletedColumnId: ID
+
+  """
+  The project the deleted column was in.
+  """
+  project: Project
+}
+
+"""
+Autogenerated input type of DeleteProject
+"""
+input DeleteProjectInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The Project ID to update.
+  """
+  projectId: ID!
+}
+
+"""
+Autogenerated return type of DeleteProject
+"""
+type DeleteProjectPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The repository or organization the project was removed from.
+  """
+  owner: ProjectOwner
+}
+
+"""
+Autogenerated input type of DeletePullRequestReviewComment
+"""
+input DeletePullRequestReviewCommentInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The ID of the comment to delete.
+  """
+  id: ID!
+}
+
+"""
+Autogenerated return type of DeletePullRequestReviewComment
+"""
+type DeletePullRequestReviewCommentPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The pull request review the deleted comment belonged to.
+  """
+  pullRequestReview: PullRequestReview
+}
+
+"""
+Autogenerated input type of DeletePullRequestReview
+"""
+input DeletePullRequestReviewInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The Node ID of the pull request review to delete.
+  """
+  pullRequestReviewId: ID!
+}
+
+"""
+Autogenerated return type of DeletePullRequestReview
+"""
+type DeletePullRequestReviewPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The deleted pull request review.
+  """
+  pullRequestReview: PullRequestReview
+}
+
+"""
+Autogenerated input type of DeleteRef
+"""
+input DeleteRefInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The Node ID of the Ref to be deleted.
+  """
+  refId: ID!
+}
+
+"""
+Autogenerated return type of DeleteRef
+"""
+type DeleteRefPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+}
+
+"""
+Autogenerated input type of DeleteTeamDiscussionComment
+"""
+input DeleteTeamDiscussionCommentInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The ID of the comment to delete.
+  """
+  id: ID!
+}
+
+"""
+Autogenerated return type of DeleteTeamDiscussionComment
+"""
+type DeleteTeamDiscussionCommentPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+}
+
+"""
+Autogenerated input type of DeleteTeamDiscussion
+"""
+input DeleteTeamDiscussionInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The discussion ID to delete.
+  """
+  id: ID!
+}
+
+"""
+Autogenerated return type of DeleteTeamDiscussion
+"""
+type DeleteTeamDiscussionPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+}
+
+"""
+Autogenerated input type of DeleteVerifiableDomain
+"""
+input DeleteVerifiableDomainInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The ID of the verifiable domain to delete.
+  """
+  id: ID!
+}
+
+"""
+Autogenerated return type of DeleteVerifiableDomain
+"""
+type DeleteVerifiableDomainPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The owning account from which the domain was deleted.
+  """
+  owner: VerifiableDomainOwner
+}
+
+"""
+Represents a 'demilestoned' event on a given issue or pull request.
+"""
+type DemilestonedEvent implements Node {
+  """
+  Identifies the actor who performed the event.
+  """
+  actor: Actor
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+  id: ID!
+
+  """
+  Identifies the milestone title associated with the 'demilestoned' event.
+  """
+  milestoneTitle: String!
+
+  """
+  Object referenced by event.
+  """
+  subject: MilestoneItem!
+}
+
+"""
+A repository deploy key.
+"""
+type DeployKey implements Node {
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+  id: ID!
+
+  """
+  The deploy key.
+  """
+  key: String!
+
+  """
+  Whether or not the deploy key is read only.
+  """
+  readOnly: Boolean!
+
+  """
+  The deploy key title.
+  """
+  title: String!
+
+  """
+  Whether or not the deploy key has been verified.
+  """
+  verified: Boolean!
+}
+
+"""
+The connection type for DeployKey.
+"""
+type DeployKeyConnection {
+  """
+  A list of edges.
+  """
+  edges: [DeployKeyEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [DeployKey]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+An edge in a connection.
+"""
+type DeployKeyEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: DeployKey
+}
+
+"""
+Represents a 'deployed' event on a given pull request.
+"""
+type DeployedEvent implements Node {
+  """
+  Identifies the actor who performed the event.
+  """
+  actor: Actor
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+
+  """
+  Identifies the primary key from the database.
+  """
+  databaseId: Int
+
+  """
+  The deployment associated with the 'deployed' event.
+  """
+  deployment: Deployment!
+  id: ID!
+
+  """
+  PullRequest referenced by event.
+  """
+  pullRequest: PullRequest!
+
+  """
+  The ref associated with the 'deployed' event.
+  """
+  ref: Ref
+}
+
+"""
+Represents triggered deployment instance.
+"""
+type Deployment implements Node {
+  """
+  Identifies the commit sha of the deployment.
+  """
+  commit: Commit
+
+  """
+  Identifies the oid of the deployment commit, even if the commit has been deleted.
+  """
+  commitOid: String!
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+
+  """
+  Identifies the actor who triggered the deployment.
+  """
+  creator: Actor!
+
+  """
+  Identifies the primary key from the database.
+  """
+  databaseId: Int
+
+  """
+  The deployment description.
+  """
+  description: String
+
+  """
+  The latest environment to which this deployment was made.
+  """
+  environment: String
+  id: ID!
+
+  """
+  The latest environment to which this deployment was made.
+  """
+  latestEnvironment: String
+
+  """
+  The latest status of this deployment.
+  """
+  latestStatus: DeploymentStatus
+
+  """
+  The original environment to which this deployment was made.
+  """
+  originalEnvironment: String
+
+  """
+  Extra information that a deployment system might need.
+  """
+  payload: String
+
+  """
+  Identifies the Ref of the deployment, if the deployment was created by ref.
+  """
+  ref: Ref
+
+  """
+  Identifies the repository associated with the deployment.
+  """
+  repository: Repository!
+
+  """
+  The current state of the deployment.
+  """
+  state: DeploymentState
+
+  """
+  A list of statuses associated with the deployment.
+  """
+  statuses(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+  ): DeploymentStatusConnection
+
+  """
+  The deployment task.
+  """
+  task: String
+
+  """
+  Identifies the date and time when the object was last updated.
+  """
+  updatedAt: DateTime!
+}
+
+"""
+The connection type for Deployment.
+"""
+type DeploymentConnection {
+  """
+  A list of edges.
+  """
+  edges: [DeploymentEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [Deployment]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+An edge in a connection.
+"""
+type DeploymentEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: Deployment
+}
+
+"""
+Represents a 'deployment_environment_changed' event on a given pull request.
+"""
+type DeploymentEnvironmentChangedEvent implements Node {
+  """
+  Identifies the actor who performed the event.
+  """
+  actor: Actor
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+
+  """
+  The deployment status that updated the deployment environment.
+  """
+  deploymentStatus: DeploymentStatus!
+  id: ID!
+
+  """
+  PullRequest referenced by event.
+  """
+  pullRequest: PullRequest!
+}
+
+"""
+Ordering options for deployment connections
+"""
+input DeploymentOrder {
+  """
+  The ordering direction.
+  """
+  direction: OrderDirection!
+
+  """
+  The field to order deployments by.
+  """
+  field: DeploymentOrderField!
+}
+
+"""
+Properties by which deployment connections can be ordered.
+"""
+enum DeploymentOrderField {
+  """
+  Order collection by creation time
+  """
+  CREATED_AT
+}
+
+"""
+The possible states in which a deployment can be.
+"""
+enum DeploymentState {
+  """
+  The pending deployment was not updated after 30 minutes.
+  """
+  ABANDONED
+
+  """
+  The deployment is currently active.
+  """
+  ACTIVE
+
+  """
+  An inactive transient deployment.
+  """
+  DESTROYED
+
+  """
+  The deployment experienced an error.
+  """
+  ERROR
+
+  """
+  The deployment has failed.
+  """
+  FAILURE
+
+  """
+  The deployment is inactive.
+  """
+  INACTIVE
+
+  """
+  The deployment is in progress.
+  """
+  IN_PROGRESS
+
+  """
+  The deployment is pending.
+  """
+  PENDING
+
+  """
+  The deployment has queued
+  """
+  QUEUED
+
+  """
+  The deployment is waiting.
+  """
+  WAITING
+}
+
+"""
+Describes the status of a given deployment attempt.
+"""
+type DeploymentStatus implements Node {
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+
+  """
+  Identifies the actor who triggered the deployment.
+  """
+  creator: Actor!
+
+  """
+  Identifies the deployment associated with status.
+  """
+  deployment: Deployment!
+
+  """
+  Identifies the description of the deployment.
+  """
+  description: String
+
+  """
+  Identifies the environment URL of the deployment.
+  """
+  environmentUrl: URI
+  id: ID!
+
+  """
+  Identifies the log URL of the deployment.
+  """
+  logUrl: URI
+
+  """
+  Identifies the current state of the deployment.
+  """
+  state: DeploymentStatusState!
+
+  """
+  Identifies the date and time when the object was last updated.
+  """
+  updatedAt: DateTime!
+}
+
+"""
+The connection type for DeploymentStatus.
+"""
+type DeploymentStatusConnection {
+  """
+  A list of edges.
+  """
+  edges: [DeploymentStatusEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [DeploymentStatus]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+An edge in a connection.
+"""
+type DeploymentStatusEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: DeploymentStatus
+}
+
+"""
+The possible states for a deployment status.
+"""
+enum DeploymentStatusState {
+  """
+  The deployment experienced an error.
+  """
+  ERROR
+
+  """
+  The deployment has failed.
+  """
+  FAILURE
+
+  """
+  The deployment is inactive.
+  """
+  INACTIVE
+
+  """
+  The deployment is in progress.
+  """
+  IN_PROGRESS
+
+  """
+  The deployment is pending.
+  """
+  PENDING
+
+  """
+  The deployment is queued
+  """
+  QUEUED
+
+  """
+  The deployment was successful.
+  """
+  SUCCESS
+
+  """
+  The deployment is waiting.
+  """
+  WAITING
+}
+
+"""
+The possible sides of a diff.
+"""
+enum DiffSide {
+  """
+  The left side of the diff.
+  """
+  LEFT
+
+  """
+  The right side of the diff.
+  """
+  RIGHT
+}
+
+"""
+Autogenerated input type of DisablePullRequestAutoMerge
+"""
+input DisablePullRequestAutoMergeInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  ID of the pull request to disable auto merge on.
+  """
+  pullRequestId: ID!
+}
+
+"""
+Autogenerated return type of DisablePullRequestAutoMerge
+"""
+type DisablePullRequestAutoMergePayload {
+  """
+  Identifies the actor who performed the event.
+  """
+  actor: Actor
+
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The pull request auto merge was disabled on.
+  """
+  pullRequest: PullRequest
+}
+
+"""
+Represents a 'disconnected' event on a given issue or pull request.
+"""
+type DisconnectedEvent implements Node {
+  """
+  Identifies the actor who performed the event.
+  """
+  actor: Actor
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+  id: ID!
+
+  """
+  Reference originated in a different repository.
+  """
+  isCrossRepository: Boolean!
+
+  """
+  Issue or pull request from which the issue was disconnected.
+  """
+  source: ReferencedSubject!
+
+  """
+  Issue or pull request which was disconnected.
+  """
+  subject: ReferencedSubject!
+}
+
+"""
+Autogenerated input type of DismissPullRequestReview
+"""
+input DismissPullRequestReviewInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The contents of the pull request review dismissal message.
+  """
+  message: String!
+
+  """
+  The Node ID of the pull request review to modify.
+  """
+  pullRequestReviewId: ID!
+}
+
+"""
+Autogenerated return type of DismissPullRequestReview
+"""
+type DismissPullRequestReviewPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The dismissed pull request review.
+  """
+  pullRequestReview: PullRequestReview
+}
+
+"""
+Specifies a review comment to be left with a Pull Request Review.
+"""
+input DraftPullRequestReviewComment {
+  """
+  Body of the comment to leave.
+  """
+  body: String!
+
+  """
+  Path to the file being commented on.
+  """
+  path: String!
+
+  """
+  Position in the file to leave a comment on.
+  """
+  position: Int!
+}
+
+"""
+Specifies a review comment thread to be left with a Pull Request Review.
+"""
+input DraftPullRequestReviewThread {
+  """
+  Body of the comment to leave.
+  """
+  body: String!
+
+  """
+  The line of the blob to which the thread refers. The end of the line range for multi-line comments.
+  """
+  line: Int!
+
+  """
+  Path to the file being commented on.
+  """
+  path: String!
+
+  """
+  The side of the diff on which the line resides. For multi-line comments, this is the side for the end of the line range.
+  """
+  side: DiffSide = RIGHT
+
+  """
+  The first line of the range to which the comment refers.
+  """
+  startLine: Int
+
+  """
+  The side of the diff on which the start line resides.
+  """
+  startSide: DiffSide = RIGHT
+}
+
+"""
+Autogenerated input type of EnablePullRequestAutoMerge
+"""
+input EnablePullRequestAutoMergeInput {
+  """
+  The email address to associate with this merge.
+  """
+  authorEmail: String
+
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  Commit body to use for the commit when the PR is mergable; if omitted, a default message will be used.
+  """
+  commitBody: String
+
+  """
+  Commit headline to use for the commit when the PR is mergable; if omitted, a default message will be used.
+  """
+  commitHeadline: String
+
+  """
+  The merge method to use. If omitted, defaults to 'MERGE'
+  """
+  mergeMethod: PullRequestMergeMethod = MERGE
+
+  """
+  ID of the pull request to enable auto-merge on.
+  """
+  pullRequestId: ID!
+}
+
+"""
+Autogenerated return type of EnablePullRequestAutoMerge
+"""
+type EnablePullRequestAutoMergePayload {
+  """
+  Identifies the actor who performed the event.
+  """
+  actor: Actor
+
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The pull request auto-merge was enabled on.
+  """
+  pullRequest: PullRequest
+}
+
+"""
+An account to manage multiple organizations with consolidated policy and billing.
+"""
+type Enterprise implements Node {
+  """
+  A URL pointing to the enterprise's public avatar.
+  """
+  avatarUrl(
+    """
+    The size of the resulting square image.
+    """
+    size: Int
+  ): URI!
+
+  """
+  Enterprise billing information visible to enterprise billing managers.
+  """
+  billingInfo: EnterpriseBillingInfo
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+
+  """
+  Identifies the primary key from the database.
+  """
+  databaseId: Int
+
+  """
+  The description of the enterprise.
+  """
+  description: String
+
+  """
+  The description of the enterprise as HTML.
+  """
+  descriptionHTML: HTML!
+  id: ID!
+
+  """
+  The location of the enterprise.
+  """
+  location: String
+
+  """
+  A list of users who are members of this enterprise.
+  """
+  members(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Only return members within the selected GitHub Enterprise deployment
+    """
+    deployment: EnterpriseUserDeployment
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for members returned from the connection.
+    """
+    orderBy: EnterpriseMemberOrder = {field: LOGIN, direction: ASC}
+
+    """
+    Only return members within the organizations with these logins
+    """
+    organizationLogins: [String!]
+
+    """
+    The search string to look for.
+    """
+    query: String
+
+    """
+    The role of the user in the enterprise organization or server.
+    """
+    role: EnterpriseUserAccountMembershipRole
+  ): EnterpriseMemberConnection!
+
+  """
+  The name of the enterprise.
+  """
+  name: String!
+
+  """
+  A list of organizations that belong to this enterprise.
+  """
+  organizations(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for organizations returned from the connection.
+    """
+    orderBy: OrganizationOrder = {field: LOGIN, direction: ASC}
+
+    """
+    The search string to look for.
+    """
+    query: String
+  ): OrganizationConnection!
+
+  """
+  Enterprise information only visible to enterprise owners.
+  """
+  ownerInfo: EnterpriseOwnerInfo
+
+  """
+  The HTTP path for this enterprise.
+  """
+  resourcePath: URI!
+
+  """
+  The URL-friendly identifier for the enterprise.
+  """
+  slug: String!
+
+  """
+  The HTTP URL for this enterprise.
+  """
+  url: URI!
+
+  """
+  A list of user accounts on this enterprise.
+  """
+  userAccounts(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+  ): EnterpriseUserAccountConnection!
+
+  """
+  Is the current viewer an admin of this enterprise?
+  """
+  viewerIsAdmin: Boolean!
+
+  """
+  The URL of the enterprise website.
+  """
+  websiteUrl: URI
+}
+
+"""
+The connection type for User.
+"""
+type EnterpriseAdministratorConnection {
+  """
+  A list of edges.
+  """
+  edges: [EnterpriseAdministratorEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [User]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+A User who is an administrator of an enterprise.
+"""
+type EnterpriseAdministratorEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: User
+
+  """
+  The role of the administrator.
+  """
+  role: EnterpriseAdministratorRole!
+}
+
+"""
+An invitation for a user to become an owner or billing manager of an enterprise.
+"""
+type EnterpriseAdministratorInvitation implements Node {
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+
+  """
+  The email of the person who was invited to the enterprise.
+  """
+  email: String
+
+  """
+  The enterprise the invitation is for.
+  """
+  enterprise: Enterprise!
+  id: ID!
+
+  """
+  The user who was invited to the enterprise.
+  """
+  invitee: User
+
+  """
+  The user who created the invitation.
+  """
+  inviter: User
+
+  """
+  The invitee's pending role in the enterprise (owner or billing_manager).
+  """
+  role: EnterpriseAdministratorRole!
+}
+
+"""
+The connection type for EnterpriseAdministratorInvitation.
+"""
+type EnterpriseAdministratorInvitationConnection {
+  """
+  A list of edges.
+  """
+  edges: [EnterpriseAdministratorInvitationEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [EnterpriseAdministratorInvitation]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+An edge in a connection.
+"""
+type EnterpriseAdministratorInvitationEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: EnterpriseAdministratorInvitation
+}
+
+"""
+Ordering options for enterprise administrator invitation connections
+"""
+input EnterpriseAdministratorInvitationOrder {
+  """
+  The ordering direction.
+  """
+  direction: OrderDirection!
+
+  """
+  The field to order enterprise administrator invitations by.
+  """
+  field: EnterpriseAdministratorInvitationOrderField!
+}
+
+"""
+Properties by which enterprise administrator invitation connections can be ordered.
+"""
+enum EnterpriseAdministratorInvitationOrderField {
+  """
+  Order enterprise administrator member invitations by creation time
+  """
+  CREATED_AT
+}
+
+"""
+The possible administrator roles in an enterprise account.
+"""
+enum EnterpriseAdministratorRole {
+  """
+  Represents a billing manager of the enterprise account.
+  """
+  BILLING_MANAGER
+
+  """
+  Represents an owner of the enterprise account.
+  """
+  OWNER
+}
+
+"""
+Metadata for an audit entry containing enterprise account information.
+"""
+interface EnterpriseAuditEntryData {
+  """
+  The HTTP path for this enterprise.
+  """
+  enterpriseResourcePath: URI
+
+  """
+  The slug of the enterprise.
+  """
+  enterpriseSlug: String
+
+  """
+  The HTTP URL for this enterprise.
+  """
+  enterpriseUrl: URI
+}
+
+"""
+Enterprise billing information visible to enterprise billing managers and owners.
+"""
+type EnterpriseBillingInfo {
+  """
+  The number of licenseable users/emails across the enterprise.
+  """
+  allLicensableUsersCount: Int!
+
+  """
+  The number of data packs used by all organizations owned by the enterprise.
+  """
+  assetPacks: Int!
+
+  """
+  The number of available seats across all owned organizations based on the unique number of billable users.
+  """
+  availableSeats: Int! @deprecated(reason: "`availableSeats` will be replaced with `totalAvailableLicenses` to provide more clarity on the value being returned Use EnterpriseBillingInfo.totalAvailableLicenses instead. Removal on 2020-01-01 UTC.")
+
+  """
+  The bandwidth quota in GB for all organizations owned by the enterprise.
+  """
+  bandwidthQuota: Float!
+
+  """
+  The bandwidth usage in GB for all organizations owned by the enterprise.
+  """
+  bandwidthUsage: Float!
+
+  """
+  The bandwidth usage as a percentage of the bandwidth quota.
+  """
+  bandwidthUsagePercentage: Int!
+
+  """
+  The total seats across all organizations owned by the enterprise.
+  """
+  seats: Int! @deprecated(reason: "`seats` will be replaced with `totalLicenses` to provide more clarity on the value being returned Use EnterpriseBillingInfo.totalLicenses instead. Removal on 2020-01-01 UTC.")
+
+  """
+  The storage quota in GB for all organizations owned by the enterprise.
+  """
+  storageQuota: Float!
+
+  """
+  The storage usage in GB for all organizations owned by the enterprise.
+  """
+  storageUsage: Float!
+
+  """
+  The storage usage as a percentage of the storage quota.
+  """
+  storageUsagePercentage: Int!
+
+  """
+  The number of available licenses across all owned organizations based on the unique number of billable users.
+  """
+  totalAvailableLicenses: Int!
+
+  """
+  The total number of licenses allocated.
+  """
+  totalLicenses: Int!
+}
+
+"""
+The possible values for the enterprise default repository permission setting.
+"""
+enum EnterpriseDefaultRepositoryPermissionSettingValue {
+  """
+  Organization members will be able to clone, pull, push, and add new collaborators to all organization repositories.
+  """
+  ADMIN
+
+  """
+  Organization members will only be able to clone and pull public repositories.
+  """
+  NONE
+
+  """
+  Organizations in the enterprise choose default repository permissions for their members.
+  """
+  NO_POLICY
+
+  """
+  Organization members will be able to clone and pull all organization repositories.
+  """
+  READ
+
+  """
+  Organization members will be able to clone, pull, and push all organization repositories.
+  """
+  WRITE
+}
+
+"""
+The possible values for an enabled/disabled enterprise setting.
+"""
+enum EnterpriseEnabledDisabledSettingValue {
+  """
+  The setting is disabled for organizations in the enterprise.
+  """
+  DISABLED
+
+  """
+  The setting is enabled for organizations in the enterprise.
+  """
+  ENABLED
+
+  """
+  There is no policy set for organizations in the enterprise.
+  """
+  NO_POLICY
+}
+
+"""
+The possible values for an enabled/no policy enterprise setting.
+"""
+enum EnterpriseEnabledSettingValue {
+  """
+  The setting is enabled for organizations in the enterprise.
+  """
+  ENABLED
+
+  """
+  There is no policy set for organizations in the enterprise.
+  """
+  NO_POLICY
+}
+
+"""
+An identity provider configured to provision identities for an enterprise.
+"""
+type EnterpriseIdentityProvider implements Node {
+  """
+  The digest algorithm used to sign SAML requests for the identity provider.
+  """
+  digestMethod: SamlDigestAlgorithm
+
+  """
+  The enterprise this identity provider belongs to.
+  """
+  enterprise: Enterprise
+
+  """
+  ExternalIdentities provisioned by this identity provider.
+  """
+  externalIdentities(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+  ): ExternalIdentityConnection!
+  id: ID!
+
+  """
+  The x509 certificate used by the identity provider to sign assertions and responses.
+  """
+  idpCertificate: X509Certificate
+
+  """
+  The Issuer Entity ID for the SAML identity provider.
+  """
+  issuer: String
+
+  """
+  Recovery codes that can be used by admins to access the enterprise if the identity provider is unavailable.
+  """
+  recoveryCodes: [String!]
+
+  """
+  The signature algorithm used to sign SAML requests for the identity provider.
+  """
+  signatureMethod: SamlSignatureAlgorithm
+
+  """
+  The URL endpoint for the identity provider's SAML SSO.
+  """
+  ssoUrl: URI
+}
+
+"""
+An object that is a member of an enterprise.
+"""
+union EnterpriseMember = EnterpriseUserAccount | User
+
+"""
+The connection type for EnterpriseMember.
+"""
+type EnterpriseMemberConnection {
+  """
+  A list of edges.
+  """
+  edges: [EnterpriseMemberEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [EnterpriseMember]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+A User who is a member of an enterprise through one or more organizations.
+"""
+type EnterpriseMemberEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  Whether the user does not have a license for the enterprise.
+  """
+  isUnlicensed: Boolean! @deprecated(reason: "All members consume a license Removal on 2021-01-01 UTC.")
+
+  """
+  The item at the end of the edge.
+  """
+  node: EnterpriseMember
+}
+
+"""
+Ordering options for enterprise member connections.
+"""
+input EnterpriseMemberOrder {
+  """
+  The ordering direction.
+  """
+  direction: OrderDirection!
+
+  """
+  The field to order enterprise members by.
+  """
+  field: EnterpriseMemberOrderField!
+}
+
+"""
+Properties by which enterprise member connections can be ordered.
+"""
+enum EnterpriseMemberOrderField {
+  """
+  Order enterprise members by creation time
+  """
+  CREATED_AT
+
+  """
+  Order enterprise members by login
+  """
+  LOGIN
+}
+
+"""
+The possible values for the enterprise members can create repositories setting.
+"""
+enum EnterpriseMembersCanCreateRepositoriesSettingValue {
+  """
+  Members will be able to create public and private repositories.
+  """
+  ALL
+
+  """
+  Members will not be able to create public or private repositories.
+  """
+  DISABLED
+
+  """
+  Organization administrators choose whether to allow members to create repositories.
+  """
+  NO_POLICY
+
+  """
+  Members will be able to create only private repositories.
+  """
+  PRIVATE
+
+  """
+  Members will be able to create only public repositories.
+  """
+  PUBLIC
+}
+
+"""
+The possible values for the members can make purchases setting.
+"""
+enum EnterpriseMembersCanMakePurchasesSettingValue {
+  """
+  The setting is disabled for organizations in the enterprise.
+  """
+  DISABLED
+
+  """
+  The setting is enabled for organizations in the enterprise.
+  """
+  ENABLED
+}
+
+"""
+The connection type for Organization.
+"""
+type EnterpriseOrganizationMembershipConnection {
+  """
+  A list of edges.
+  """
+  edges: [EnterpriseOrganizationMembershipEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [Organization]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+An enterprise organization that a user is a member of.
+"""
+type EnterpriseOrganizationMembershipEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: Organization
+
+  """
+  The role of the user in the enterprise membership.
+  """
+  role: EnterpriseUserAccountMembershipRole!
+}
+
+"""
+The connection type for User.
+"""
+type EnterpriseOutsideCollaboratorConnection {
+  """
+  A list of edges.
+  """
+  edges: [EnterpriseOutsideCollaboratorEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [User]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+A User who is an outside collaborator of an enterprise through one or more organizations.
+"""
+type EnterpriseOutsideCollaboratorEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  Whether the outside collaborator does not have a license for the enterprise.
+  """
+  isUnlicensed: Boolean! @deprecated(reason: "All outside collaborators consume a license Removal on 2021-01-01 UTC.")
+
+  """
+  The item at the end of the edge.
+  """
+  node: User
+
+  """
+  The enterprise organization repositories this user is a member of.
+  """
+  repositories(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for repositories.
+    """
+    orderBy: RepositoryOrder = {field: NAME, direction: ASC}
+  ): EnterpriseRepositoryInfoConnection!
+}
+
+"""
+Enterprise information only visible to enterprise owners.
+"""
+type EnterpriseOwnerInfo {
+  """
+  A list of all of the administrators for this enterprise.
+  """
+  admins(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for administrators returned from the connection.
+    """
+    orderBy: EnterpriseMemberOrder = {field: LOGIN, direction: ASC}
+
+    """
+    The search string to look for.
+    """
+    query: String
+
+    """
+    The role to filter by.
+    """
+    role: EnterpriseAdministratorRole
+  ): EnterpriseAdministratorConnection!
+
+  """
+  A list of users in the enterprise who currently have two-factor authentication disabled.
+  """
+  affiliatedUsersWithTwoFactorDisabled(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+  ): UserConnection!
+
+  """
+  Whether or not affiliated users with two-factor authentication disabled exist in the enterprise.
+  """
+  affiliatedUsersWithTwoFactorDisabledExist: Boolean!
+
+  """
+  The setting value for whether private repository forking is enabled for repositories in organizations in this enterprise.
+  """
+  allowPrivateRepositoryForkingSetting: EnterpriseEnabledDisabledSettingValue!
+
+  """
+  A list of enterprise organizations configured with the provided private repository forking setting value.
+  """
+  allowPrivateRepositoryForkingSettingOrganizations(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for organizations with this setting.
+    """
+    orderBy: OrganizationOrder = {field: LOGIN, direction: ASC}
+
+    """
+    The setting value to find organizations for.
+    """
+    value: Boolean!
+  ): OrganizationConnection!
+
+  """
+  The setting value for base repository permissions for organizations in this enterprise.
+  """
+  defaultRepositoryPermissionSetting: EnterpriseDefaultRepositoryPermissionSettingValue!
+
+  """
+  A list of enterprise organizations configured with the provided default repository permission.
+  """
+  defaultRepositoryPermissionSettingOrganizations(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for organizations with this setting.
+    """
+    orderBy: OrganizationOrder = {field: LOGIN, direction: ASC}
+
+    """
+    The permission to find organizations for.
+    """
+    value: DefaultRepositoryPermissionField!
+  ): OrganizationConnection!
+
+  """
+  A list of domains owned by the enterprise.
+  """
+  domains(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Filter whether or not the domain is verified.
+    """
+    isVerified: Boolean
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for verifiable domains returned.
+    """
+    orderBy: VerifiableDomainOrder = {field: DOMAIN, direction: ASC}
+  ): VerifiableDomainConnection!
+
+  """
+  Enterprise Server installations owned by the enterprise.
+  """
+  enterpriseServerInstallations(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Whether or not to only return installations discovered via GitHub Connect.
+    """
+    connectedOnly: Boolean = false
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for Enterprise Server installations returned.
+    """
+    orderBy: EnterpriseServerInstallationOrder = {field: HOST_NAME, direction: ASC}
+  ): EnterpriseServerInstallationConnection!
+
+  """
+  The setting value for whether the enterprise has an IP allow list enabled.
+  """
+  ipAllowListEnabledSetting: IpAllowListEnabledSettingValue!
+
+  """
+  The IP addresses that are allowed to access resources owned by the enterprise.
+  """
+  ipAllowListEntries(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for IP allow list entries returned.
+    """
+    orderBy: IpAllowListEntryOrder = {field: ALLOW_LIST_VALUE, direction: ASC}
+  ): IpAllowListEntryConnection!
+
+  """
+  Whether or not the default repository permission is currently being updated.
+  """
+  isUpdatingDefaultRepositoryPermission: Boolean!
+
+  """
+  Whether the two-factor authentication requirement is currently being enforced.
+  """
+  isUpdatingTwoFactorRequirement: Boolean!
+
+  """
+  The setting value for whether organization members with admin permissions on a
+  repository can change repository visibility.
+  """
+  membersCanChangeRepositoryVisibilitySetting: EnterpriseEnabledDisabledSettingValue!
+
+  """
+  A list of enterprise organizations configured with the provided can change repository visibility setting value.
+  """
+  membersCanChangeRepositoryVisibilitySettingOrganizations(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for organizations with this setting.
+    """
+    orderBy: OrganizationOrder = {field: LOGIN, direction: ASC}
+
+    """
+    The setting value to find organizations for.
+    """
+    value: Boolean!
+  ): OrganizationConnection!
+
+  """
+  The setting value for whether members of organizations in the enterprise can create internal repositories.
+  """
+  membersCanCreateInternalRepositoriesSetting: Boolean
+
+  """
+  The setting value for whether members of organizations in the enterprise can create private repositories.
+  """
+  membersCanCreatePrivateRepositoriesSetting: Boolean
+
+  """
+  The setting value for whether members of organizations in the enterprise can create public repositories.
+  """
+  membersCanCreatePublicRepositoriesSetting: Boolean
+
+  """
+  The setting value for whether members of organizations in the enterprise can create repositories.
+  """
+  membersCanCreateRepositoriesSetting: EnterpriseMembersCanCreateRepositoriesSettingValue
+
+  """
+  A list of enterprise organizations configured with the provided repository creation setting value.
+  """
+  membersCanCreateRepositoriesSettingOrganizations(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for organizations with this setting.
+    """
+    orderBy: OrganizationOrder = {field: LOGIN, direction: ASC}
+
+    """
+    The setting to find organizations for.
+    """
+    value: OrganizationMembersCanCreateRepositoriesSettingValue!
+  ): OrganizationConnection!
+
+  """
+  The setting value for whether members with admin permissions for repositories can delete issues.
+  """
+  membersCanDeleteIssuesSetting: EnterpriseEnabledDisabledSettingValue!
+
+  """
+  A list of enterprise organizations configured with the provided members can delete issues setting value.
+  """
+  membersCanDeleteIssuesSettingOrganizations(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for organizations with this setting.
+    """
+    orderBy: OrganizationOrder = {field: LOGIN, direction: ASC}
+
+    """
+    The setting value to find organizations for.
+    """
+    value: Boolean!
+  ): OrganizationConnection!
+
+  """
+  The setting value for whether members with admin permissions for repositories can delete or transfer repositories.
+  """
+  membersCanDeleteRepositoriesSetting: EnterpriseEnabledDisabledSettingValue!
+
+  """
+  A list of enterprise organizations configured with the provided members can delete repositories setting value.
+  """
+  membersCanDeleteRepositoriesSettingOrganizations(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for organizations with this setting.
+    """
+    orderBy: OrganizationOrder = {field: LOGIN, direction: ASC}
+
+    """
+    The setting value to find organizations for.
+    """
+    value: Boolean!
+  ): OrganizationConnection!
+
+  """
+  The setting value for whether members of organizations in the enterprise can invite outside collaborators.
+  """
+  membersCanInviteCollaboratorsSetting: EnterpriseEnabledDisabledSettingValue!
+
+  """
+  A list of enterprise organizations configured with the provided members can invite collaborators setting value.
+  """
+  membersCanInviteCollaboratorsSettingOrganizations(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for organizations with this setting.
+    """
+    orderBy: OrganizationOrder = {field: LOGIN, direction: ASC}
+
+    """
+    The setting value to find organizations for.
+    """
+    value: Boolean!
+  ): OrganizationConnection!
+
+  """
+  Indicates whether members of this enterprise's organizations can purchase additional services for those organizations.
+  """
+  membersCanMakePurchasesSetting: EnterpriseMembersCanMakePurchasesSettingValue!
+
+  """
+  The setting value for whether members with admin permissions for repositories can update protected branches.
+  """
+  membersCanUpdateProtectedBranchesSetting: EnterpriseEnabledDisabledSettingValue!
+
+  """
+  A list of enterprise organizations configured with the provided members can update protected branches setting value.
+  """
+  membersCanUpdateProtectedBranchesSettingOrganizations(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for organizations with this setting.
+    """
+    orderBy: OrganizationOrder = {field: LOGIN, direction: ASC}
+
+    """
+    The setting value to find organizations for.
+    """
+    value: Boolean!
+  ): OrganizationConnection!
+
+  """
+  The setting value for whether members can view dependency insights.
+  """
+  membersCanViewDependencyInsightsSetting: EnterpriseEnabledDisabledSettingValue!
+
+  """
+  A list of enterprise organizations configured with the provided members can view dependency insights setting value.
+  """
+  membersCanViewDependencyInsightsSettingOrganizations(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for organizations with this setting.
+    """
+    orderBy: OrganizationOrder = {field: LOGIN, direction: ASC}
+
+    """
+    The setting value to find organizations for.
+    """
+    value: Boolean!
+  ): OrganizationConnection!
+
+  """
+  Indicates if email notification delivery for this enterprise is restricted to verified domains.
+  """
+  notificationDeliveryRestrictionEnabledSetting: NotificationRestrictionSettingValue!
+
+  """
+  The setting value for whether organization projects are enabled for organizations in this enterprise.
+  """
+  organizationProjectsSetting: EnterpriseEnabledDisabledSettingValue!
+
+  """
+  A list of enterprise organizations configured with the provided organization projects setting value.
+  """
+  organizationProjectsSettingOrganizations(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for organizations with this setting.
+    """
+    orderBy: OrganizationOrder = {field: LOGIN, direction: ASC}
+
+    """
+    The setting value to find organizations for.
+    """
+    value: Boolean!
+  ): OrganizationConnection!
+
+  """
+  A list of outside collaborators across the repositories in the enterprise.
+  """
+  outsideCollaborators(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    The login of one specific outside collaborator.
+    """
+    login: String
+
+    """
+    Ordering options for outside collaborators returned from the connection.
+    """
+    orderBy: EnterpriseMemberOrder = {field: LOGIN, direction: ASC}
+
+    """
+    The search string to look for.
+    """
+    query: String
+
+    """
+    Only return outside collaborators on repositories with this visibility.
+    """
+    visibility: RepositoryVisibility
+  ): EnterpriseOutsideCollaboratorConnection!
+
+  """
+  A list of pending administrator invitations for the enterprise.
+  """
+  pendingAdminInvitations(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for pending enterprise administrator invitations returned from the connection.
+    """
+    orderBy: EnterpriseAdministratorInvitationOrder = {field: CREATED_AT, direction: DESC}
+
+    """
+    The search string to look for.
+    """
+    query: String
+
+    """
+    The role to filter by.
+    """
+    role: EnterpriseAdministratorRole
+  ): EnterpriseAdministratorInvitationConnection!
+
+  """
+  A list of pending collaborator invitations across the repositories in the enterprise.
+  """
+  pendingCollaboratorInvitations(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for pending repository collaborator invitations returned from the connection.
+    """
+    orderBy: RepositoryInvitationOrder = {field: CREATED_AT, direction: DESC}
+
+    """
+    The search string to look for.
+    """
+    query: String
+  ): RepositoryInvitationConnection!
+
+  """
+  A list of pending collaborators across the repositories in the enterprise.
+  """
+  pendingCollaborators(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for pending repository collaborator invitations returned from the connection.
+    """
+    orderBy: RepositoryInvitationOrder = {field: CREATED_AT, direction: DESC}
+
+    """
+    The search string to look for.
+    """
+    query: String
+  ): EnterprisePendingCollaboratorConnection! @deprecated(reason: "Repository invitations can now be associated with an email, not only an invitee. Use the `pendingCollaboratorInvitations` field instead. Removal on 2020-10-01 UTC.")
+
+  """
+  A list of pending member invitations for organizations in the enterprise.
+  """
+  pendingMemberInvitations(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    The search string to look for.
+    """
+    query: String
+  ): EnterprisePendingMemberInvitationConnection!
+
+  """
+  The setting value for whether repository projects are enabled in this enterprise.
+  """
+  repositoryProjectsSetting: EnterpriseEnabledDisabledSettingValue!
+
+  """
+  A list of enterprise organizations configured with the provided repository projects setting value.
+  """
+  repositoryProjectsSettingOrganizations(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for organizations with this setting.
+    """
+    orderBy: OrganizationOrder = {field: LOGIN, direction: ASC}
+
+    """
+    The setting value to find organizations for.
+    """
+    value: Boolean!
+  ): OrganizationConnection!
+
+  """
+  The SAML Identity Provider for the enterprise.
+  """
+  samlIdentityProvider: EnterpriseIdentityProvider
+
+  """
+  A list of enterprise organizations configured with the SAML single sign-on setting value.
+  """
+  samlIdentityProviderSettingOrganizations(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for organizations with this setting.
+    """
+    orderBy: OrganizationOrder = {field: LOGIN, direction: ASC}
+
+    """
+    The setting value to find organizations for.
+    """
+    value: IdentityProviderConfigurationState!
+  ): OrganizationConnection!
+
+  """
+  A list of members with a support entitlement.
+  """
+  supportEntitlements(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for support entitlement users returned from the connection.
+    """
+    orderBy: EnterpriseMemberOrder = {field: LOGIN, direction: ASC}
+  ): EnterpriseMemberConnection!
+
+  """
+  The setting value for whether team discussions are enabled for organizations in this enterprise.
+  """
+  teamDiscussionsSetting: EnterpriseEnabledDisabledSettingValue!
+
+  """
+  A list of enterprise organizations configured with the provided team discussions setting value.
+  """
+  teamDiscussionsSettingOrganizations(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for organizations with this setting.
+    """
+    orderBy: OrganizationOrder = {field: LOGIN, direction: ASC}
+
+    """
+    The setting value to find organizations for.
+    """
+    value: Boolean!
+  ): OrganizationConnection!
+
+  """
+  The setting value for whether the enterprise requires two-factor authentication for its organizations and users.
+  """
+  twoFactorRequiredSetting: EnterpriseEnabledSettingValue!
+
+  """
+  A list of enterprise organizations configured with the two-factor authentication setting value.
+  """
+  twoFactorRequiredSettingOrganizations(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for organizations with this setting.
+    """
+    orderBy: OrganizationOrder = {field: LOGIN, direction: ASC}
+
+    """
+    The setting value to find organizations for.
+    """
+    value: Boolean!
+  ): OrganizationConnection!
+}
+
+"""
+The connection type for User.
+"""
+type EnterprisePendingCollaboratorConnection {
+  """
+  A list of edges.
+  """
+  edges: [EnterprisePendingCollaboratorEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [User]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+A user with an invitation to be a collaborator on a repository owned by an organization in an enterprise.
+"""
+type EnterprisePendingCollaboratorEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  Whether the invited collaborator does not have a license for the enterprise.
+  """
+  isUnlicensed: Boolean! @deprecated(reason: "All pending collaborators consume a license Removal on 2021-01-01 UTC.")
+
+  """
+  The item at the end of the edge.
+  """
+  node: User
+
+  """
+  The enterprise organization repositories this user is a member of.
+  """
+  repositories(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for repositories.
+    """
+    orderBy: RepositoryOrder = {field: NAME, direction: ASC}
+  ): EnterpriseRepositoryInfoConnection!
+}
+
+"""
+The connection type for OrganizationInvitation.
+"""
+type EnterprisePendingMemberInvitationConnection {
+  """
+  A list of edges.
+  """
+  edges: [EnterprisePendingMemberInvitationEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [OrganizationInvitation]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+
+  """
+  Identifies the total count of unique users in the connection.
+  """
+  totalUniqueUserCount: Int!
+}
+
+"""
+An invitation to be a member in an enterprise organization.
+"""
+type EnterprisePendingMemberInvitationEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  Whether the invitation has a license for the enterprise.
+  """
+  isUnlicensed: Boolean! @deprecated(reason: "All pending members consume a license Removal on 2020-07-01 UTC.")
+
+  """
+  The item at the end of the edge.
+  """
+  node: OrganizationInvitation
+}
+
+"""
+A subset of repository information queryable from an enterprise.
+"""
+type EnterpriseRepositoryInfo implements Node {
+  id: ID!
+
+  """
+  Identifies if the repository is private.
+  """
+  isPrivate: Boolean!
+
+  """
+  The repository's name.
+  """
+  name: String!
+
+  """
+  The repository's name with owner.
+  """
+  nameWithOwner: String!
+}
+
+"""
+The connection type for EnterpriseRepositoryInfo.
+"""
+type EnterpriseRepositoryInfoConnection {
+  """
+  A list of edges.
+  """
+  edges: [EnterpriseRepositoryInfoEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [EnterpriseRepositoryInfo]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+An edge in a connection.
+"""
+type EnterpriseRepositoryInfoEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: EnterpriseRepositoryInfo
+}
+
+"""
+An Enterprise Server installation.
+"""
+type EnterpriseServerInstallation implements Node {
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+
+  """
+  The customer name to which the Enterprise Server installation belongs.
+  """
+  customerName: String!
+
+  """
+  The host name of the Enterprise Server installation.
+  """
+  hostName: String!
+  id: ID!
+
+  """
+  Whether or not the installation is connected to an Enterprise Server installation via GitHub Connect.
+  """
+  isConnected: Boolean!
+
+  """
+  Identifies the date and time when the object was last updated.
+  """
+  updatedAt: DateTime!
+
+  """
+  User accounts on this Enterprise Server installation.
+  """
+  userAccounts(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for Enterprise Server user accounts returned from the connection.
+    """
+    orderBy: EnterpriseServerUserAccountOrder = {field: LOGIN, direction: ASC}
+  ): EnterpriseServerUserAccountConnection!
+
+  """
+  User accounts uploads for the Enterprise Server installation.
+  """
+  userAccountsUploads(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for Enterprise Server user accounts uploads returned from the connection.
+    """
+    orderBy: EnterpriseServerUserAccountsUploadOrder = {field: CREATED_AT, direction: DESC}
+  ): EnterpriseServerUserAccountsUploadConnection!
+}
+
+"""
+The connection type for EnterpriseServerInstallation.
+"""
+type EnterpriseServerInstallationConnection {
+  """
+  A list of edges.
+  """
+  edges: [EnterpriseServerInstallationEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [EnterpriseServerInstallation]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+An edge in a connection.
+"""
+type EnterpriseServerInstallationEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: EnterpriseServerInstallation
+}
+
+"""
+Ordering options for Enterprise Server installation connections.
+"""
+input EnterpriseServerInstallationOrder {
+  """
+  The ordering direction.
+  """
+  direction: OrderDirection!
+
+  """
+  The field to order Enterprise Server installations by.
+  """
+  field: EnterpriseServerInstallationOrderField!
+}
+
+"""
+Properties by which Enterprise Server installation connections can be ordered.
+"""
+enum EnterpriseServerInstallationOrderField {
+  """
+  Order Enterprise Server installations by creation time
+  """
+  CREATED_AT
+
+  """
+  Order Enterprise Server installations by customer name
+  """
+  CUSTOMER_NAME
+
+  """
+  Order Enterprise Server installations by host name
+  """
+  HOST_NAME
+}
+
+"""
+A user account on an Enterprise Server installation.
+"""
+type EnterpriseServerUserAccount implements Node {
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+
+  """
+  User emails belonging to this user account.
+  """
+  emails(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for Enterprise Server user account emails returned from the connection.
+    """
+    orderBy: EnterpriseServerUserAccountEmailOrder = {field: EMAIL, direction: ASC}
+  ): EnterpriseServerUserAccountEmailConnection!
+
+  """
+  The Enterprise Server installation on which this user account exists.
+  """
+  enterpriseServerInstallation: EnterpriseServerInstallation!
+  id: ID!
+
+  """
+  Whether the user account is a site administrator on the Enterprise Server installation.
+  """
+  isSiteAdmin: Boolean!
+
+  """
+  The login of the user account on the Enterprise Server installation.
+  """
+  login: String!
+
+  """
+  The profile name of the user account on the Enterprise Server installation.
+  """
+  profileName: String
+
+  """
+  The date and time when the user account was created on the Enterprise Server installation.
+  """
+  remoteCreatedAt: DateTime!
+
+  """
+  The ID of the user account on the Enterprise Server installation.
+  """
+  remoteUserId: Int!
+
+  """
+  Identifies the date and time when the object was last updated.
+  """
+  updatedAt: DateTime!
+}
+
+"""
+The connection type for EnterpriseServerUserAccount.
+"""
+type EnterpriseServerUserAccountConnection {
+  """
+  A list of edges.
+  """
+  edges: [EnterpriseServerUserAccountEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [EnterpriseServerUserAccount]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+An edge in a connection.
+"""
+type EnterpriseServerUserAccountEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: EnterpriseServerUserAccount
+}
+
+"""
+An email belonging to a user account on an Enterprise Server installation.
+"""
+type EnterpriseServerUserAccountEmail implements Node {
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+
+  """
+  The email address.
+  """
+  email: String!
+  id: ID!
+
+  """
+  Indicates whether this is the primary email of the associated user account.
+  """
+  isPrimary: Boolean!
+
+  """
+  Identifies the date and time when the object was last updated.
+  """
+  updatedAt: DateTime!
+
+  """
+  The user account to which the email belongs.
+  """
+  userAccount: EnterpriseServerUserAccount!
+}
+
+"""
+The connection type for EnterpriseServerUserAccountEmail.
+"""
+type EnterpriseServerUserAccountEmailConnection {
+  """
+  A list of edges.
+  """
+  edges: [EnterpriseServerUserAccountEmailEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [EnterpriseServerUserAccountEmail]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+An edge in a connection.
+"""
+type EnterpriseServerUserAccountEmailEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: EnterpriseServerUserAccountEmail
+}
+
+"""
+Ordering options for Enterprise Server user account email connections.
+"""
+input EnterpriseServerUserAccountEmailOrder {
+  """
+  The ordering direction.
+  """
+  direction: OrderDirection!
+
+  """
+  The field to order emails by.
+  """
+  field: EnterpriseServerUserAccountEmailOrderField!
+}
+
+"""
+Properties by which Enterprise Server user account email connections can be ordered.
+"""
+enum EnterpriseServerUserAccountEmailOrderField {
+  """
+  Order emails by email
+  """
+  EMAIL
+}
+
+"""
+Ordering options for Enterprise Server user account connections.
+"""
+input EnterpriseServerUserAccountOrder {
+  """
+  The ordering direction.
+  """
+  direction: OrderDirection!
+
+  """
+  The field to order user accounts by.
+  """
+  field: EnterpriseServerUserAccountOrderField!
+}
+
+"""
+Properties by which Enterprise Server user account connections can be ordered.
+"""
+enum EnterpriseServerUserAccountOrderField {
+  """
+  Order user accounts by login
+  """
+  LOGIN
+
+  """
+  Order user accounts by creation time on the Enterprise Server installation
+  """
+  REMOTE_CREATED_AT
+}
+
+"""
+A user accounts upload from an Enterprise Server installation.
+"""
+type EnterpriseServerUserAccountsUpload implements Node {
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+
+  """
+  The enterprise to which this upload belongs.
+  """
+  enterprise: Enterprise!
+
+  """
+  The Enterprise Server installation for which this upload was generated.
+  """
+  enterpriseServerInstallation: EnterpriseServerInstallation!
+  id: ID!
+
+  """
+  The name of the file uploaded.
+  """
+  name: String!
+
+  """
+  The synchronization state of the upload
+  """
+  syncState: EnterpriseServerUserAccountsUploadSyncState!
+
+  """
+  Identifies the date and time when the object was last updated.
+  """
+  updatedAt: DateTime!
+}
+
+"""
+The connection type for EnterpriseServerUserAccountsUpload.
+"""
+type EnterpriseServerUserAccountsUploadConnection {
+  """
+  A list of edges.
+  """
+  edges: [EnterpriseServerUserAccountsUploadEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [EnterpriseServerUserAccountsUpload]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+An edge in a connection.
+"""
+type EnterpriseServerUserAccountsUploadEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: EnterpriseServerUserAccountsUpload
+}
+
+"""
+Ordering options for Enterprise Server user accounts upload connections.
+"""
+input EnterpriseServerUserAccountsUploadOrder {
+  """
+  The ordering direction.
+  """
+  direction: OrderDirection!
+
+  """
+  The field to order user accounts uploads by.
+  """
+  field: EnterpriseServerUserAccountsUploadOrderField!
+}
+
+"""
+Properties by which Enterprise Server user accounts upload connections can be ordered.
+"""
+enum EnterpriseServerUserAccountsUploadOrderField {
+  """
+  Order user accounts uploads by creation time
+  """
+  CREATED_AT
+}
+
+"""
+Synchronization state of the Enterprise Server user accounts upload
+"""
+enum EnterpriseServerUserAccountsUploadSyncState {
+  """
+  The synchronization of the upload failed.
+  """
+  FAILURE
+
+  """
+  The synchronization of the upload is pending.
+  """
+  PENDING
+
+  """
+  The synchronization of the upload succeeded.
+  """
+  SUCCESS
+}
+
+"""
+An account for a user who is an admin of an enterprise or a member of an enterprise through one or more organizations.
+"""
+type EnterpriseUserAccount implements Actor & Node {
+  """
+  A URL pointing to the enterprise user account's public avatar.
+  """
+  avatarUrl(
+    """
+    The size of the resulting square image.
+    """
+    size: Int
+  ): URI!
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+
+  """
+  The enterprise in which this user account exists.
+  """
+  enterprise: Enterprise!
+  id: ID!
+
+  """
+  An identifier for the enterprise user account, a login or email address
+  """
+  login: String!
+
+  """
+  The name of the enterprise user account
+  """
+  name: String
+
+  """
+  A list of enterprise organizations this user is a member of.
+  """
+  organizations(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for organizations returned from the connection.
+    """
+    orderBy: OrganizationOrder = {field: LOGIN, direction: ASC}
+
+    """
+    The search string to look for.
+    """
+    query: String
+
+    """
+    The role of the user in the enterprise organization.
+    """
+    role: EnterpriseUserAccountMembershipRole
+  ): EnterpriseOrganizationMembershipConnection!
+
+  """
+  The HTTP path for this user.
+  """
+  resourcePath: URI!
+
+  """
+  Identifies the date and time when the object was last updated.
+  """
+  updatedAt: DateTime!
+
+  """
+  The HTTP URL for this user.
+  """
+  url: URI!
+
+  """
+  The user within the enterprise.
+  """
+  user: User
+}
+
+"""
+The connection type for EnterpriseUserAccount.
+"""
+type EnterpriseUserAccountConnection {
+  """
+  A list of edges.
+  """
+  edges: [EnterpriseUserAccountEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [EnterpriseUserAccount]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+An edge in a connection.
+"""
+type EnterpriseUserAccountEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: EnterpriseUserAccount
+}
+
+"""
+The possible roles for enterprise membership.
+"""
+enum EnterpriseUserAccountMembershipRole {
+  """
+  The user is a member of the enterprise membership.
+  """
+  MEMBER
+
+  """
+  The user is an owner of the enterprise membership.
+  """
+  OWNER
+}
+
+"""
+The possible GitHub Enterprise deployments where this user can exist.
+"""
+enum EnterpriseUserDeployment {
+  """
+  The user is part of a GitHub Enterprise Cloud deployment.
+  """
+  CLOUD
+
+  """
+  The user is part of a GitHub Enterprise Server deployment.
+  """
+  SERVER
+}
+
+"""
+An external identity provisioned by SAML SSO or SCIM.
+"""
+type ExternalIdentity implements Node {
+  """
+  The GUID for this identity
+  """
+  guid: String!
+  id: ID!
+
+  """
+  Organization invitation for this SCIM-provisioned external identity
+  """
+  organizationInvitation: OrganizationInvitation
+
+  """
+  SAML Identity attributes
+  """
+  samlIdentity: ExternalIdentitySamlAttributes
+
+  """
+  SCIM Identity attributes
+  """
+  scimIdentity: ExternalIdentityScimAttributes
+
+  """
+  User linked to this external identity. Will be NULL if this identity has not been claimed by an organization member.
+  """
+  user: User
+}
+
+"""
+The connection type for ExternalIdentity.
+"""
+type ExternalIdentityConnection {
+  """
+  A list of edges.
+  """
+  edges: [ExternalIdentityEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [ExternalIdentity]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+An edge in a connection.
+"""
+type ExternalIdentityEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: ExternalIdentity
+}
+
+"""
+SAML attributes for the External Identity
+"""
+type ExternalIdentitySamlAttributes {
+  """
+  The emails associated with the SAML identity
+  """
+  emails: [UserEmailMetadata!]
+
+  """
+  Family name of the SAML identity
+  """
+  familyName: String
+
+  """
+  Given name of the SAML identity
+  """
+  givenName: String
+
+  """
+  The groups linked to this identity in IDP
+  """
+  groups: [String!]
+
+  """
+  The NameID of the SAML identity
+  """
+  nameId: String
+
+  """
+  The userName of the SAML identity
+  """
+  username: String
+}
+
+"""
+SCIM attributes for the External Identity
+"""
+type ExternalIdentityScimAttributes {
+  """
+  The emails associated with the SCIM identity
+  """
+  emails: [UserEmailMetadata!]
+
+  """
+  Family name of the SCIM identity
+  """
+  familyName: String
+
+  """
+  Given name of the SCIM identity
+  """
+  givenName: String
+
+  """
+  The groups linked to this identity in IDP
+  """
+  groups: [String!]
+
+  """
+  The userName of the SCIM identity
+  """
+  username: String
+}
+
+"""
+The possible viewed states of a file .
+"""
+enum FileViewedState {
+  """
+  The file has new changes since last viewed.
+  """
+  DISMISSED
+
+  """
+  The file has not been marked as viewed.
+  """
+  UNVIEWED
+
+  """
+  The file has been marked as viewed.
+  """
+  VIEWED
+}
+
+"""
+Autogenerated input type of FollowUser
+"""
+input FollowUserInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  ID of the user to follow.
+  """
+  userId: ID!
+}
+
+"""
+Autogenerated return type of FollowUser
+"""
+type FollowUserPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The user that was followed.
+  """
+  user: User
+}
+
+"""
+The connection type for User.
+"""
+type FollowerConnection {
+  """
+  A list of edges.
+  """
+  edges: [UserEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [User]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+The connection type for User.
+"""
+type FollowingConnection {
+  """
+  A list of edges.
+  """
+  edges: [UserEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [User]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+A funding platform link for a repository.
+"""
+type FundingLink {
+  """
+  The funding platform this link is for.
+  """
+  platform: FundingPlatform!
+
+  """
+  The configured URL for this funding link.
+  """
+  url: URI!
+}
+
+"""
+The possible funding platforms for repository funding links.
+"""
+enum FundingPlatform {
+  """
+  Community Bridge funding platform.
+  """
+  COMMUNITY_BRIDGE
+
+  """
+  Custom funding platform.
+  """
+  CUSTOM
+
+  """
+  GitHub funding platform.
+  """
+  GITHUB
+
+  """
+  IssueHunt funding platform.
+  """
+  ISSUEHUNT
+
+  """
+  Ko-fi funding platform.
+  """
+  KO_FI
+
+  """
+  Liberapay funding platform.
+  """
+  LIBERAPAY
+
+  """
+  Open Collective funding platform.
+  """
+  OPEN_COLLECTIVE
+
+  """
+  Otechie funding platform.
+  """
+  OTECHIE
+
+  """
+  Patreon funding platform.
+  """
+  PATREON
+
+  """
+  Tidelift funding platform.
+  """
+  TIDELIFT
+}
+
+"""
+A generic hovercard context with a message and icon
+"""
+type GenericHovercardContext implements HovercardContext {
+  """
+  A string describing this context
+  """
+  message: String!
+
+  """
+  An octicon to accompany this context
+  """
+  octicon: String!
+}
+
+"""
+A Gist.
+"""
+type Gist implements Node & Starrable & UniformResourceLocatable {
+  """
+  A list of comments associated with the gist
+  """
+  comments(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+  ): GistCommentConnection!
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+
+  """
+  The gist description.
+  """
+  description: String
+
+  """
+  The files in this gist.
+  """
+  files(
+    """
+    The maximum number of files to return.
+    """
+    limit: Int = 10
+
+    """
+    The oid of the files to return
+    """
+    oid: GitObjectID
+  ): [GistFile]
+
+  """
+  A list of forks associated with the gist
+  """
+  forks(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for gists returned from the connection
+    """
+    orderBy: GistOrder
+  ): GistConnection!
+  id: ID!
+
+  """
+  Identifies if the gist is a fork.
+  """
+  isFork: Boolean!
+
+  """
+  Whether the gist is public or not.
+  """
+  isPublic: Boolean!
+
+  """
+  The gist name.
+  """
+  name: String!
+
+  """
+  The gist owner.
+  """
+  owner: RepositoryOwner
+
+  """
+  Identifies when the gist was last pushed to.
+  """
+  pushedAt: DateTime
+
+  """
+  The HTML path to this resource.
+  """
+  resourcePath: URI!
+
+  """
+  Returns a count of how many stargazers there are on this object
+  """
+  stargazerCount: Int!
+
+  """
+  A list of users who have starred this starrable.
+  """
+  stargazers(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Order for connection
+    """
+    orderBy: StarOrder
+  ): StargazerConnection!
+
+  """
+  Identifies the date and time when the object was last updated.
+  """
+  updatedAt: DateTime!
+
+  """
+  The HTTP URL for this Gist.
+  """
+  url: URI!
+
+  """
+  Returns a boolean indicating whether the viewing user has starred this starrable.
+  """
+  viewerHasStarred: Boolean!
+}
+
+"""
+Represents a comment on an Gist.
+"""
+type GistComment implements Comment & Deletable & Minimizable & Node & Updatable & UpdatableComment {
+  """
+  The actor who authored the comment.
+  """
+  author: Actor
+
+  """
+  Author's association with the gist.
+  """
+  authorAssociation: CommentAuthorAssociation!
+
+  """
+  Identifies the comment body.
+  """
+  body: String!
+
+  """
+  The body rendered to HTML.
+  """
+  bodyHTML: HTML!
+
+  """
+  The body rendered to text.
+  """
+  bodyText: String!
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+
+  """
+  Check if this comment was created via an email reply.
+  """
+  createdViaEmail: Boolean!
+
+  """
+  Identifies the primary key from the database.
+  """
+  databaseId: Int
+
+  """
+  The actor who edited the comment.
+  """
+  editor: Actor
+
+  """
+  The associated gist.
+  """
+  gist: Gist!
+  id: ID!
+
+  """
+  Check if this comment was edited and includes an edit with the creation data
+  """
+  includesCreatedEdit: Boolean!
+
+  """
+  Returns whether or not a comment has been minimized.
+  """
+  isMinimized: Boolean!
+
+  """
+  The moment the editor made the last edit
+  """
+  lastEditedAt: DateTime
+
+  """
+  Returns why the comment was minimized.
+  """
+  minimizedReason: String
+
+  """
+  Identifies when the comment was published at.
+  """
+  publishedAt: DateTime
+
+  """
+  Identifies the date and time when the object was last updated.
+  """
+  updatedAt: DateTime!
+
+  """
+  A list of edits to this content.
+  """
+  userContentEdits(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+  ): UserContentEditConnection
+
+  """
+  Check if the current viewer can delete this object.
+  """
+  viewerCanDelete: Boolean!
+
+  """
+  Check if the current viewer can minimize this object.
+  """
+  viewerCanMinimize: Boolean!
+
+  """
+  Check if the current viewer can update this object.
+  """
+  viewerCanUpdate: Boolean!
+
+  """
+  Reasons why the current viewer can not update this comment.
+  """
+  viewerCannotUpdateReasons: [CommentCannotUpdateReason!]!
+
+  """
+  Did the viewer author this comment.
+  """
+  viewerDidAuthor: Boolean!
+}
+
+"""
+The connection type for GistComment.
+"""
+type GistCommentConnection {
+  """
+  A list of edges.
+  """
+  edges: [GistCommentEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [GistComment]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+An edge in a connection.
+"""
+type GistCommentEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: GistComment
+}
+
+"""
+The connection type for Gist.
+"""
+type GistConnection {
+  """
+  A list of edges.
+  """
+  edges: [GistEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [Gist]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+An edge in a connection.
+"""
+type GistEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: Gist
+}
+
+"""
+A file in a gist.
+"""
+type GistFile {
+  """
+  The file name encoded to remove characters that are invalid in URL paths.
+  """
+  encodedName: String
+
+  """
+  The gist file encoding.
+  """
+  encoding: String
+
+  """
+  The file extension from the file name.
+  """
+  extension: String
+
+  """
+  Indicates if this file is an image.
+  """
+  isImage: Boolean!
+
+  """
+  Whether the file's contents were truncated.
+  """
+  isTruncated: Boolean!
+
+  """
+  The programming language this file is written in.
+  """
+  language: Language
+
+  """
+  The gist file name.
+  """
+  name: String
+
+  """
+  The gist file size in bytes.
+  """
+  size: Int
+
+  """
+  UTF8 text data or null if the file is binary
+  """
+  text(
+    """
+    Optionally truncate the returned file to this length.
+    """
+    truncate: Int
+  ): String
+}
+
+"""
+Ordering options for gist connections
+"""
+input GistOrder {
+  """
+  The ordering direction.
+  """
+  direction: OrderDirection!
+
+  """
+  The field to order repositories by.
+  """
+  field: GistOrderField!
+}
+
+"""
+Properties by which gist connections can be ordered.
+"""
+enum GistOrderField {
+  """
+  Order gists by creation time
+  """
+  CREATED_AT
+
+  """
+  Order gists by push time
+  """
+  PUSHED_AT
+
+  """
+  Order gists by update time
+  """
+  UPDATED_AT
+}
+
+"""
+The privacy of a Gist
+"""
+enum GistPrivacy {
+  """
+  Gists that are public and secret
+  """
+  ALL
+
+  """
+  Public
+  """
+  PUBLIC
+
+  """
+  Secret
+  """
+  SECRET
+}
+
+"""
+Represents an actor in a Git commit (ie. an author or committer).
+"""
+type GitActor {
+  """
+  A URL pointing to the author's public avatar.
+  """
+  avatarUrl(
+    """
+    The size of the resulting square image.
+    """
+    size: Int
+  ): URI!
+
+  """
+  The timestamp of the Git action (authoring or committing).
+  """
+  date: GitTimestamp
+
+  """
+  The email in the Git commit.
+  """
+  email: String
+
+  """
+  The name in the Git commit.
+  """
+  name: String
+
+  """
+  The GitHub user corresponding to the email field. Null if no such user exists.
+  """
+  user: User
+}
+
+"""
+The connection type for GitActor.
+"""
+type GitActorConnection {
+  """
+  A list of edges.
+  """
+  edges: [GitActorEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [GitActor]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+An edge in a connection.
+"""
+type GitActorEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: GitActor
+}
+
+"""
+Represents information about the GitHub instance.
+"""
+type GitHubMetadata {
+  """
+  Returns a String that's a SHA of `github-services`
+  """
+  gitHubServicesSha: GitObjectID!
+
+  """
+  IP addresses that users connect to for git operations
+  """
+  gitIpAddresses: [String!]
+
+  """
+  IP addresses that service hooks are sent from
+  """
+  hookIpAddresses: [String!]
+
+  """
+  IP addresses that the importer connects from
+  """
+  importerIpAddresses: [String!]
+
+  """
+  Whether or not users are verified
+  """
+  isPasswordAuthenticationVerifiable: Boolean!
+
+  """
+  IP addresses for GitHub Pages' A records
+  """
+  pagesIpAddresses: [String!]
+}
+
+"""
+Represents a Git object.
+"""
+interface GitObject {
+  """
+  An abbreviated version of the Git object ID
+  """
+  abbreviatedOid: String!
+
+  """
+  The HTTP path for this Git object
+  """
+  commitResourcePath: URI!
+
+  """
+  The HTTP URL for this Git object
+  """
+  commitUrl: URI!
+  id: ID!
+
+  """
+  The Git object ID
+  """
+  oid: GitObjectID!
+
+  """
+  The Repository the Git object belongs to
+  """
+  repository: Repository!
+}
+
+"""
+A Git object ID.
+"""
+scalar GitObjectID
+
+"""
+Git SSH string
+"""
+scalar GitSSHRemote
+
+"""
+Information about a signature (GPG or S/MIME) on a Commit or Tag.
+"""
+interface GitSignature {
+  """
+  Email used to sign this object.
+  """
+  email: String!
+
+  """
+  True if the signature is valid and verified by GitHub.
+  """
+  isValid: Boolean!
+
+  """
+  Payload for GPG signing object. Raw ODB object without the signature header.
+  """
+  payload: String!
+
+  """
+  ASCII-armored signature header from object.
+  """
+  signature: String!
+
+  """
+  GitHub user corresponding to the email signing this commit.
+  """
+  signer: User
+
+  """
+  The state of this signature. `VALID` if signature is valid and verified by
+  GitHub, otherwise represents reason why signature is considered invalid.
+  """
+  state: GitSignatureState!
+
+  """
+  True if the signature was made with GitHub's signing key.
+  """
+  wasSignedByGitHub: Boolean!
+}
+
+"""
+The state of a Git signature.
+"""
+enum GitSignatureState {
+  """
+  The signing certificate or its chain could not be verified
+  """
+  BAD_CERT
+
+  """
+  Invalid email used for signing
+  """
+  BAD_EMAIL
+
+  """
+  Signing key expired
+  """
+  EXPIRED_KEY
+
+  """
+  Internal error - the GPG verification service misbehaved
+  """
+  GPGVERIFY_ERROR
+
+  """
+  Internal error - the GPG verification service is unavailable at the moment
+  """
+  GPGVERIFY_UNAVAILABLE
+
+  """
+  Invalid signature
+  """
+  INVALID
+
+  """
+  Malformed signature
+  """
+  MALFORMED_SIG
+
+  """
+  The usage flags for the key that signed this don't allow signing
+  """
+  NOT_SIGNING_KEY
+
+  """
+  Email used for signing not known to GitHub
+  """
+  NO_USER
+
+  """
+  Valid signature, though certificate revocation check failed
+  """
+  OCSP_ERROR
+
+  """
+  Valid signature, pending certificate revocation checking
+  """
+  OCSP_PENDING
+
+  """
+  One or more certificates in chain has been revoked
+  """
+  OCSP_REVOKED
+
+  """
+  Key used for signing not known to GitHub
+  """
+  UNKNOWN_KEY
+
+  """
+  Unknown signature type
+  """
+  UNKNOWN_SIG_TYPE
+
+  """
+  Unsigned
+  """
+  UNSIGNED
+
+  """
+  Email used for signing unverified on GitHub
+  """
+  UNVERIFIED_EMAIL
+
+  """
+  Valid signature and verified by GitHub
+  """
+  VALID
+}
+
+"""
+An ISO-8601 encoded date string. Unlike the DateTime type, GitTimestamp is not converted in UTC.
+"""
+scalar GitTimestamp
+
+"""
+Represents a GPG signature on a Commit or Tag.
+"""
+type GpgSignature implements GitSignature {
+  """
+  Email used to sign this object.
+  """
+  email: String!
+
+  """
+  True if the signature is valid and verified by GitHub.
+  """
+  isValid: Boolean!
+
+  """
+  Hex-encoded ID of the key that signed this object.
+  """
+  keyId: String
+
+  """
+  Payload for GPG signing object. Raw ODB object without the signature header.
+  """
+  payload: String!
+
+  """
+  ASCII-armored signature header from object.
+  """
+  signature: String!
+
+  """
+  GitHub user corresponding to the email signing this commit.
+  """
+  signer: User
+
+  """
+  The state of this signature. `VALID` if signature is valid and verified by
+  GitHub, otherwise represents reason why signature is considered invalid.
+  """
+  state: GitSignatureState!
+
+  """
+  True if the signature was made with GitHub's signing key.
+  """
+  wasSignedByGitHub: Boolean!
+}
+
+"""
+A string containing HTML code.
+"""
+scalar HTML
+
+"""
+Represents a 'head_ref_deleted' event on a given pull request.
+"""
+type HeadRefDeletedEvent implements Node {
+  """
+  Identifies the actor who performed the event.
+  """
+  actor: Actor
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+
+  """
+  Identifies the Ref associated with the `head_ref_deleted` event.
+  """
+  headRef: Ref
+
+  """
+  Identifies the name of the Ref associated with the `head_ref_deleted` event.
+  """
+  headRefName: String!
+  id: ID!
+
+  """
+  PullRequest referenced by event.
+  """
+  pullRequest: PullRequest!
+}
+
+"""
+Represents a 'head_ref_force_pushed' event on a given pull request.
+"""
+type HeadRefForcePushedEvent implements Node {
+  """
+  Identifies the actor who performed the event.
+  """
+  actor: Actor
+
+  """
+  Identifies the after commit SHA for the 'head_ref_force_pushed' event.
+  """
+  afterCommit: Commit
+
+  """
+  Identifies the before commit SHA for the 'head_ref_force_pushed' event.
+  """
+  beforeCommit: Commit
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+  id: ID!
+
+  """
+  PullRequest referenced by event.
+  """
+  pullRequest: PullRequest!
+
+  """
+  Identifies the fully qualified ref name for the 'head_ref_force_pushed' event.
+  """
+  ref: Ref
+}
+
+"""
+Represents a 'head_ref_restored' event on a given pull request.
+"""
+type HeadRefRestoredEvent implements Node {
+  """
+  Identifies the actor who performed the event.
+  """
+  actor: Actor
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+  id: ID!
+
+  """
+  PullRequest referenced by event.
+  """
+  pullRequest: PullRequest!
+}
+
+"""
+Detail needed to display a hovercard for a user
+"""
+type Hovercard {
+  """
+  Each of the contexts for this hovercard
+  """
+  contexts: [HovercardContext!]!
+}
+
+"""
+An individual line of a hovercard
+"""
+interface HovercardContext {
+  """
+  A string describing this context
+  """
+  message: String!
+
+  """
+  An octicon to accompany this context
+  """
+  octicon: String!
+}
+
+"""
+The possible states in which authentication can be configured with an identity provider.
+"""
+enum IdentityProviderConfigurationState {
+  """
+  Authentication with an identity provider is configured but not enforced.
+  """
+  CONFIGURED
+
+  """
+  Authentication with an identity provider is configured and enforced.
+  """
+  ENFORCED
+
+  """
+  Authentication with an identity provider is not configured.
+  """
+  UNCONFIGURED
+}
+
+"""
+Autogenerated input type of InviteEnterpriseAdmin
+"""
+input InviteEnterpriseAdminInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The email of the person to invite as an administrator.
+  """
+  email: String
+
+  """
+  The ID of the enterprise to which you want to invite an administrator.
+  """
+  enterpriseId: ID!
+
+  """
+  The login of a user to invite as an administrator.
+  """
+  invitee: String
+
+  """
+  The role of the administrator.
+  """
+  role: EnterpriseAdministratorRole
+}
+
+"""
+Autogenerated return type of InviteEnterpriseAdmin
+"""
+type InviteEnterpriseAdminPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The created enterprise administrator invitation.
+  """
+  invitation: EnterpriseAdministratorInvitation
+}
+
+"""
+The possible values for the IP allow list enabled setting.
+"""
+enum IpAllowListEnabledSettingValue {
+  """
+  The setting is disabled for the owner.
+  """
+  DISABLED
+
+  """
+  The setting is enabled for the owner.
+  """
+  ENABLED
+}
+
+"""
+An IP address or range of addresses that is allowed to access an owner's resources.
+"""
+type IpAllowListEntry implements Node {
+  """
+  A single IP address or range of IP addresses in CIDR notation.
+  """
+  allowListValue: String!
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+  id: ID!
+
+  """
+  Whether the entry is currently active.
+  """
+  isActive: Boolean!
+
+  """
+  The name of the IP allow list entry.
+  """
+  name: String
+
+  """
+  The owner of the IP allow list entry.
+  """
+  owner: IpAllowListOwner!
+
+  """
+  Identifies the date and time when the object was last updated.
+  """
+  updatedAt: DateTime!
+}
+
+"""
+The connection type for IpAllowListEntry.
+"""
+type IpAllowListEntryConnection {
+  """
+  A list of edges.
+  """
+  edges: [IpAllowListEntryEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [IpAllowListEntry]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+An edge in a connection.
+"""
+type IpAllowListEntryEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: IpAllowListEntry
+}
+
+"""
+Ordering options for IP allow list entry connections.
+"""
+input IpAllowListEntryOrder {
+  """
+  The ordering direction.
+  """
+  direction: OrderDirection!
+
+  """
+  The field to order IP allow list entries by.
+  """
+  field: IpAllowListEntryOrderField!
+}
+
+"""
+Properties by which IP allow list entry connections can be ordered.
+"""
+enum IpAllowListEntryOrderField {
+  """
+  Order IP allow list entries by the allow list value.
+  """
+  ALLOW_LIST_VALUE
+
+  """
+  Order IP allow list entries by creation time.
+  """
+  CREATED_AT
+}
+
+"""
+Types that can own an IP allow list.
+"""
+union IpAllowListOwner = Enterprise | Organization
+
+"""
+An Issue is a place to discuss ideas, enhancements, tasks, and bugs for a project.
+"""
+type Issue implements Assignable & Closable & Comment & Labelable & Lockable & Node & Reactable & RepositoryNode & Subscribable & UniformResourceLocatable & Updatable & UpdatableComment {
+  """
+  Reason that the conversation was locked.
+  """
+  activeLockReason: LockReason
+
+  """
+  A list of Users assigned to this object.
+  """
+  assignees(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+  ): UserConnection!
+
+  """
+  The actor who authored the comment.
+  """
+  author: Actor
+
+  """
+  Author's association with the subject of the comment.
+  """
+  authorAssociation: CommentAuthorAssociation!
+
+  """
+  Identifies the body of the issue.
+  """
+  body: String!
+
+  """
+  The body rendered to HTML.
+  """
+  bodyHTML: HTML!
+
+  """
+  The http path for this issue body
+  """
+  bodyResourcePath: URI!
+
+  """
+  Identifies the body of the issue rendered to text.
+  """
+  bodyText: String!
+
+  """
+  The http URL for this issue body
+  """
+  bodyUrl: URI!
+
+  """
+  `true` if the object is closed (definition of closed may depend on type)
+  """
+  closed: Boolean!
+
+  """
+  Identifies the date and time when the object was closed.
+  """
+  closedAt: DateTime
+
+  """
+  A list of comments associated with the Issue.
+  """
+  comments(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for issue comments returned from the connection.
+    """
+    orderBy: IssueCommentOrder
+  ): IssueCommentConnection!
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+
+  """
+  Check if this comment was created via an email reply.
+  """
+  createdViaEmail: Boolean!
+
+  """
+  Identifies the primary key from the database.
+  """
+  databaseId: Int
+
+  """
+  The actor who edited the comment.
+  """
+  editor: Actor
+
+  """
+  The hovercard information for this issue
+  """
+  hovercard(
+    """
+    Whether or not to include notification contexts
+    """
+    includeNotificationContexts: Boolean = true
+  ): Hovercard!
+  id: ID!
+
+  """
+  Check if this comment was edited and includes an edit with the creation data
+  """
+  includesCreatedEdit: Boolean!
+
+  """
+  Is this issue read by the viewer
+  """
+  isReadByViewer: Boolean
+
+  """
+  A list of labels associated with the object.
+  """
+  labels(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for labels returned from the connection.
+    """
+    orderBy: LabelOrder = {field: CREATED_AT, direction: ASC}
+  ): LabelConnection
+
+  """
+  The moment the editor made the last edit
+  """
+  lastEditedAt: DateTime
+
+  """
+  `true` if the object is locked
+  """
+  locked: Boolean!
+
+  """
+  Identifies the milestone associated with the issue.
+  """
+  milestone: Milestone
+
+  """
+  Identifies the issue number.
+  """
+  number: Int!
+
+  """
+  A list of Users that are participating in the Issue conversation.
+  """
+  participants(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+  ): UserConnection!
+
+  """
+  List of project cards associated with this issue.
+  """
+  projectCards(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    A list of archived states to filter the cards by
+    """
+    archivedStates: [ProjectCardArchivedState] = [ARCHIVED, NOT_ARCHIVED]
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+  ): ProjectCardConnection!
+
+  """
+  Identifies when the comment was published at.
+  """
+  publishedAt: DateTime
+
+  """
+  A list of reactions grouped by content left on the subject.
+  """
+  reactionGroups: [ReactionGroup!]
+
+  """
+  A list of Reactions left on the Issue.
+  """
+  reactions(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Allows filtering Reactions by emoji.
+    """
+    content: ReactionContent
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Allows specifying the order in which reactions are returned.
+    """
+    orderBy: ReactionOrder
+  ): ReactionConnection!
+
+  """
+  The repository associated with this node.
+  """
+  repository: Repository!
+
+  """
+  The HTTP path for this issue
+  """
+  resourcePath: URI!
+
+  """
+  Identifies the state of the issue.
+  """
+  state: IssueState!
+
+  """
+  A list of events, comments, commits, etc. associated with the issue.
+  """
+  timeline(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Allows filtering timeline events by a `since` timestamp.
+    """
+    since: DateTime
+  ): IssueTimelineConnection! @deprecated(reason: "`timeline` will be removed Use Issue.timelineItems instead. Removal on 2020-10-01 UTC.")
+
+  """
+  A list of events, comments, commits, etc. associated with the issue.
+  """
+  timelineItems(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Filter timeline items by type.
+    """
+    itemTypes: [IssueTimelineItemsItemType!]
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Filter timeline items by a `since` timestamp.
+    """
+    since: DateTime
+
+    """
+    Skips the first _n_ elements in the list.
+    """
+    skip: Int
+  ): IssueTimelineItemsConnection!
+
+  """
+  Identifies the issue title.
+  """
+  title: String!
+
+  """
+  Identifies the date and time when the object was last updated.
+  """
+  updatedAt: DateTime!
+
+  """
+  The HTTP URL for this issue
+  """
+  url: URI!
+
+  """
+  A list of edits to this content.
+  """
+  userContentEdits(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+  ): UserContentEditConnection
+
+  """
+  Can user react to this subject
+  """
+  viewerCanReact: Boolean!
+
+  """
+  Check if the viewer is able to change their subscription status for the repository.
+  """
+  viewerCanSubscribe: Boolean!
+
+  """
+  Check if the current viewer can update this object.
+  """
+  viewerCanUpdate: Boolean!
+
+  """
+  Reasons why the current viewer can not update this comment.
+  """
+  viewerCannotUpdateReasons: [CommentCannotUpdateReason!]!
+
+  """
+  Did the viewer author this comment.
+  """
+  viewerDidAuthor: Boolean!
+
+  """
+  Identifies if the viewer is watching, not watching, or ignoring the subscribable entity.
+  """
+  viewerSubscription: SubscriptionState
+}
+
+"""
+Represents a comment on an Issue.
+"""
+type IssueComment implements Comment & Deletable & Minimizable & Node & Reactable & RepositoryNode & Updatable & UpdatableComment {
+  """
+  The actor who authored the comment.
+  """
+  author: Actor
+
+  """
+  Author's association with the subject of the comment.
+  """
+  authorAssociation: CommentAuthorAssociation!
+
+  """
+  The body as Markdown.
+  """
+  body: String!
+
+  """
+  The body rendered to HTML.
+  """
+  bodyHTML: HTML!
+
+  """
+  The body rendered to text.
+  """
+  bodyText: String!
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+
+  """
+  Check if this comment was created via an email reply.
+  """
+  createdViaEmail: Boolean!
+
+  """
+  Identifies the primary key from the database.
+  """
+  databaseId: Int
+
+  """
+  The actor who edited the comment.
+  """
+  editor: Actor
+  id: ID!
+
+  """
+  Check if this comment was edited and includes an edit with the creation data
+  """
+  includesCreatedEdit: Boolean!
+
+  """
+  Returns whether or not a comment has been minimized.
+  """
+  isMinimized: Boolean!
+
+  """
+  Identifies the issue associated with the comment.
+  """
+  issue: Issue!
+
+  """
+  The moment the editor made the last edit
+  """
+  lastEditedAt: DateTime
+
+  """
+  Returns why the comment was minimized.
+  """
+  minimizedReason: String
+
+  """
+  Identifies when the comment was published at.
+  """
+  publishedAt: DateTime
+
+  """
+  Returns the pull request associated with the comment, if this comment was made on a
+  pull request.
+  """
+  pullRequest: PullRequest
+
+  """
+  A list of reactions grouped by content left on the subject.
+  """
+  reactionGroups: [ReactionGroup!]
+
+  """
+  A list of Reactions left on the Issue.
+  """
+  reactions(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Allows filtering Reactions by emoji.
+    """
+    content: ReactionContent
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Allows specifying the order in which reactions are returned.
+    """
+    orderBy: ReactionOrder
+  ): ReactionConnection!
+
+  """
+  The repository associated with this node.
+  """
+  repository: Repository!
+
+  """
+  The HTTP path for this issue comment
+  """
+  resourcePath: URI!
+
+  """
+  Identifies the date and time when the object was last updated.
+  """
+  updatedAt: DateTime!
+
+  """
+  The HTTP URL for this issue comment
+  """
+  url: URI!
+
+  """
+  A list of edits to this content.
+  """
+  userContentEdits(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+  ): UserContentEditConnection
+
+  """
+  Check if the current viewer can delete this object.
+  """
+  viewerCanDelete: Boolean!
+
+  """
+  Check if the current viewer can minimize this object.
+  """
+  viewerCanMinimize: Boolean!
+
+  """
+  Can user react to this subject
+  """
+  viewerCanReact: Boolean!
+
+  """
+  Check if the current viewer can update this object.
+  """
+  viewerCanUpdate: Boolean!
+
+  """
+  Reasons why the current viewer can not update this comment.
+  """
+  viewerCannotUpdateReasons: [CommentCannotUpdateReason!]!
+
+  """
+  Did the viewer author this comment.
+  """
+  viewerDidAuthor: Boolean!
+}
+
+"""
+The connection type for IssueComment.
+"""
+type IssueCommentConnection {
+  """
+  A list of edges.
+  """
+  edges: [IssueCommentEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [IssueComment]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+An edge in a connection.
+"""
+type IssueCommentEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: IssueComment
+}
+
+"""
+Ways in which lists of issue comments can be ordered upon return.
+"""
+input IssueCommentOrder {
+  """
+  The direction in which to order issue comments by the specified field.
+  """
+  direction: OrderDirection!
+
+  """
+  The field in which to order issue comments by.
+  """
+  field: IssueCommentOrderField!
+}
+
+"""
+Properties by which issue comment connections can be ordered.
+"""
+enum IssueCommentOrderField {
+  """
+  Order issue comments by update time
+  """
+  UPDATED_AT
+}
+
+"""
+The connection type for Issue.
+"""
+type IssueConnection {
+  """
+  A list of edges.
+  """
+  edges: [IssueEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [Issue]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+This aggregates issues opened by a user within one repository.
+"""
+type IssueContributionsByRepository {
+  """
+  The issue contributions.
+  """
+  contributions(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for contributions returned from the connection.
+    """
+    orderBy: ContributionOrder = {direction: DESC}
+  ): CreatedIssueContributionConnection!
+
+  """
+  The repository in which the issues were opened.
+  """
+  repository: Repository!
+}
+
+"""
+An edge in a connection.
+"""
+type IssueEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: Issue
+}
+
+"""
+Ways in which to filter lists of issues.
+"""
+input IssueFilters {
+  """
+  List issues assigned to given name. Pass in `null` for issues with no assigned
+  user, and `*` for issues assigned to any user.
+  """
+  assignee: String
+
+  """
+  List issues created by given name.
+  """
+  createdBy: String
+
+  """
+  List issues where the list of label names exist on the issue.
+  """
+  labels: [String!]
+
+  """
+  List issues where the given name is mentioned in the issue.
+  """
+  mentioned: String
+
+  """
+  List issues by given milestone argument. If an string representation of an
+  integer is passed, it should refer to a milestone by its number field. Pass in
+  `null` for issues with no milestone, and `*` for issues that are assigned to any milestone.
+  """
+  milestone: String
+
+  """
+  List issues that have been updated at or after the given date.
+  """
+  since: DateTime
+
+  """
+  List issues filtered by the list of states given.
+  """
+  states: [IssueState!]
+
+  """
+  List issues subscribed to by viewer.
+  """
+  viewerSubscribed: Boolean = false
+}
+
+"""
+Used for return value of Repository.issueOrPullRequest.
+"""
+union IssueOrPullRequest = Issue | PullRequest
+
+"""
+Ways in which lists of issues can be ordered upon return.
+"""
+input IssueOrder {
+  """
+  The direction in which to order issues by the specified field.
+  """
+  direction: OrderDirection!
+
+  """
+  The field in which to order issues by.
+  """
+  field: IssueOrderField!
+}
+
+"""
+Properties by which issue connections can be ordered.
+"""
+enum IssueOrderField {
+  """
+  Order issues by comment count
+  """
+  COMMENTS
+
+  """
+  Order issues by creation time
+  """
+  CREATED_AT
+
+  """
+  Order issues by update time
+  """
+  UPDATED_AT
+}
+
+"""
+The possible states of an issue.
+"""
+enum IssueState {
+  """
+  An issue that has been closed
+  """
+  CLOSED
+
+  """
+  An issue that is still open
+  """
+  OPEN
+}
+
+"""
+A repository issue template.
+"""
+type IssueTemplate {
+  """
+  The template purpose.
+  """
+  about: String
+
+  """
+  The suggested issue body.
+  """
+  body: String
+
+  """
+  The template name.
+  """
+  name: String!
+
+  """
+  The suggested issue title.
+  """
+  title: String
+}
+
+"""
+The connection type for IssueTimelineItem.
+"""
+type IssueTimelineConnection {
+  """
+  A list of edges.
+  """
+  edges: [IssueTimelineItemEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [IssueTimelineItem]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+An item in an issue timeline
+"""
+union IssueTimelineItem = AssignedEvent | ClosedEvent | Commit | CrossReferencedEvent | DemilestonedEvent | IssueComment | LabeledEvent | LockedEvent | MilestonedEvent | ReferencedEvent | RenamedTitleEvent | ReopenedEvent | SubscribedEvent | TransferredEvent | UnassignedEvent | UnlabeledEvent | UnlockedEvent | UnsubscribedEvent | UserBlockedEvent
+
+"""
+An edge in a connection.
+"""
+type IssueTimelineItemEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: IssueTimelineItem
+}
+
+"""
+An item in an issue timeline
+"""
+union IssueTimelineItems = AddedToProjectEvent | AssignedEvent | ClosedEvent | CommentDeletedEvent | ConnectedEvent | ConvertedNoteToIssueEvent | CrossReferencedEvent | DemilestonedEvent | DisconnectedEvent | IssueComment | LabeledEvent | LockedEvent | MarkedAsDuplicateEvent | MentionedEvent | MilestonedEvent | MovedColumnsInProjectEvent | PinnedEvent | ReferencedEvent | RemovedFromProjectEvent | RenamedTitleEvent | ReopenedEvent | SubscribedEvent | TransferredEvent | UnassignedEvent | UnlabeledEvent | UnlockedEvent | UnmarkedAsDuplicateEvent | UnpinnedEvent | UnsubscribedEvent | UserBlockedEvent
+
+"""
+The connection type for IssueTimelineItems.
+"""
+type IssueTimelineItemsConnection {
+  """
+  A list of edges.
+  """
+  edges: [IssueTimelineItemsEdge]
+
+  """
+  Identifies the count of items after applying `before` and `after` filters.
+  """
+  filteredCount: Int!
+
+  """
+  A list of nodes.
+  """
+  nodes: [IssueTimelineItems]
+
+  """
+  Identifies the count of items after applying `before`/`after` filters and `first`/`last`/`skip` slicing.
+  """
+  pageCount: Int!
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+
+  """
+  Identifies the date and time when the timeline was last updated.
+  """
+  updatedAt: DateTime!
+}
+
+"""
+An edge in a connection.
+"""
+type IssueTimelineItemsEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: IssueTimelineItems
+}
+
+"""
+The possible item types found in a timeline.
+"""
+enum IssueTimelineItemsItemType {
+  """
+  Represents a 'added_to_project' event on a given issue or pull request.
+  """
+  ADDED_TO_PROJECT_EVENT
+
+  """
+  Represents an 'assigned' event on any assignable object.
+  """
+  ASSIGNED_EVENT
+
+  """
+  Represents a 'closed' event on any `Closable`.
+  """
+  CLOSED_EVENT
+
+  """
+  Represents a 'comment_deleted' event on a given issue or pull request.
+  """
+  COMMENT_DELETED_EVENT
+
+  """
+  Represents a 'connected' event on a given issue or pull request.
+  """
+  CONNECTED_EVENT
+
+  """
+  Represents a 'converted_note_to_issue' event on a given issue or pull request.
+  """
+  CONVERTED_NOTE_TO_ISSUE_EVENT
+
+  """
+  Represents a mention made by one issue or pull request to another.
+  """
+  CROSS_REFERENCED_EVENT
+
+  """
+  Represents a 'demilestoned' event on a given issue or pull request.
+  """
+  DEMILESTONED_EVENT
+
+  """
+  Represents a 'disconnected' event on a given issue or pull request.
+  """
+  DISCONNECTED_EVENT
+
+  """
+  Represents a comment on an Issue.
+  """
+  ISSUE_COMMENT
+
+  """
+  Represents a 'labeled' event on a given issue or pull request.
+  """
+  LABELED_EVENT
+
+  """
+  Represents a 'locked' event on a given issue or pull request.
+  """
+  LOCKED_EVENT
+
+  """
+  Represents a 'marked_as_duplicate' event on a given issue or pull request.
+  """
+  MARKED_AS_DUPLICATE_EVENT
+
+  """
+  Represents a 'mentioned' event on a given issue or pull request.
+  """
+  MENTIONED_EVENT
+
+  """
+  Represents a 'milestoned' event on a given issue or pull request.
+  """
+  MILESTONED_EVENT
+
+  """
+  Represents a 'moved_columns_in_project' event on a given issue or pull request.
+  """
+  MOVED_COLUMNS_IN_PROJECT_EVENT
+
+  """
+  Represents a 'pinned' event on a given issue or pull request.
+  """
+  PINNED_EVENT
+
+  """
+  Represents a 'referenced' event on a given `ReferencedSubject`.
+  """
+  REFERENCED_EVENT
+
+  """
+  Represents a 'removed_from_project' event on a given issue or pull request.
+  """
+  REMOVED_FROM_PROJECT_EVENT
+
+  """
+  Represents a 'renamed' event on a given issue or pull request
+  """
+  RENAMED_TITLE_EVENT
+
+  """
+  Represents a 'reopened' event on any `Closable`.
+  """
+  REOPENED_EVENT
+
+  """
+  Represents a 'subscribed' event on a given `Subscribable`.
+  """
+  SUBSCRIBED_EVENT
+
+  """
+  Represents a 'transferred' event on a given issue or pull request.
+  """
+  TRANSFERRED_EVENT
+
+  """
+  Represents an 'unassigned' event on any assignable object.
+  """
+  UNASSIGNED_EVENT
+
+  """
+  Represents an 'unlabeled' event on a given issue or pull request.
+  """
+  UNLABELED_EVENT
+
+  """
+  Represents an 'unlocked' event on a given issue or pull request.
+  """
+  UNLOCKED_EVENT
+
+  """
+  Represents an 'unmarked_as_duplicate' event on a given issue or pull request.
+  """
+  UNMARKED_AS_DUPLICATE_EVENT
+
+  """
+  Represents an 'unpinned' event on a given issue or pull request.
+  """
+  UNPINNED_EVENT
+
+  """
+  Represents an 'unsubscribed' event on a given `Subscribable`.
+  """
+  UNSUBSCRIBED_EVENT
+
+  """
+  Represents a 'user_blocked' event on a given user.
+  """
+  USER_BLOCKED_EVENT
+}
+
+"""
+Represents a user signing up for a GitHub account.
+"""
+type JoinedGitHubContribution implements Contribution {
+  """
+  Whether this contribution is associated with a record you do not have access to. For
+  example, your own 'first issue' contribution may have been made on a repository you can no
+  longer access.
+  """
+  isRestricted: Boolean!
+
+  """
+  When this contribution was made.
+  """
+  occurredAt: DateTime!
+
+  """
+  The HTTP path for this contribution.
+  """
+  resourcePath: URI!
+
+  """
+  The HTTP URL for this contribution.
+  """
+  url: URI!
+
+  """
+  The user who made this contribution.
+  """
+  user: User!
+}
+
+"""
+A label for categorizing Issues or Milestones with a given Repository.
+"""
+type Label implements Node {
+  """
+  Identifies the label color.
+  """
+  color: String!
+
+  """
+  Identifies the date and time when the label was created.
+  """
+  createdAt: DateTime
+
+  """
+  A brief description of this label.
+  """
+  description: String
+  id: ID!
+
+  """
+  Indicates whether or not this is a default label.
+  """
+  isDefault: Boolean!
+
+  """
+  A list of issues associated with this label.
+  """
+  issues(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Filtering options for issues returned from the connection.
+    """
+    filterBy: IssueFilters
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    A list of label names to filter the pull requests by.
+    """
+    labels: [String!]
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for issues returned from the connection.
+    """
+    orderBy: IssueOrder
+
+    """
+    A list of states to filter the issues by.
+    """
+    states: [IssueState!]
+  ): IssueConnection!
+
+  """
+  Identifies the label name.
+  """
+  name: String!
+
+  """
+  A list of pull requests associated with this label.
+  """
+  pullRequests(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    The base ref name to filter the pull requests by.
+    """
+    baseRefName: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    The head ref name to filter the pull requests by.
+    """
+    headRefName: String
+
+    """
+    A list of label names to filter the pull requests by.
+    """
+    labels: [String!]
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for pull requests returned from the connection.
+    """
+    orderBy: IssueOrder
+
+    """
+    A list of states to filter the pull requests by.
+    """
+    states: [PullRequestState!]
+  ): PullRequestConnection!
+
+  """
+  The repository associated with this label.
+  """
+  repository: Repository!
+
+  """
+  The HTTP path for this label.
+  """
+  resourcePath: URI!
+
+  """
+  Identifies the date and time when the label was last updated.
+  """
+  updatedAt: DateTime
+
+  """
+  The HTTP URL for this label.
+  """
+  url: URI!
+}
+
+"""
+The connection type for Label.
+"""
+type LabelConnection {
+  """
+  A list of edges.
+  """
+  edges: [LabelEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [Label]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+An edge in a connection.
+"""
+type LabelEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: Label
+}
+
+"""
+Ways in which lists of labels can be ordered upon return.
+"""
+input LabelOrder {
+  """
+  The direction in which to order labels by the specified field.
+  """
+  direction: OrderDirection!
+
+  """
+  The field in which to order labels by.
+  """
+  field: LabelOrderField!
+}
+
+"""
+Properties by which label connections can be ordered.
+"""
+enum LabelOrderField {
+  """
+  Order labels by creation time
+  """
+  CREATED_AT
+
+  """
+  Order labels by name 
+  """
+  NAME
+}
+
+"""
+An object that can have labels assigned to it.
+"""
+interface Labelable {
+  """
+  A list of labels associated with the object.
+  """
+  labels(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for labels returned from the connection.
+    """
+    orderBy: LabelOrder = {field: CREATED_AT, direction: ASC}
+  ): LabelConnection
+}
+
+"""
+Represents a 'labeled' event on a given issue or pull request.
+"""
+type LabeledEvent implements Node {
+  """
+  Identifies the actor who performed the event.
+  """
+  actor: Actor
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+  id: ID!
+
+  """
+  Identifies the label associated with the 'labeled' event.
+  """
+  label: Label!
+
+  """
+  Identifies the `Labelable` associated with the event.
+  """
+  labelable: Labelable!
+}
+
+"""
+Represents a given language found in repositories.
+"""
+type Language implements Node {
+  """
+  The color defined for the current language.
+  """
+  color: String
+  id: ID!
+
+  """
+  The name of the current language.
+  """
+  name: String!
+}
+
+"""
+A list of languages associated with the parent.
+"""
+type LanguageConnection {
+  """
+  A list of edges.
+  """
+  edges: [LanguageEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [Language]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+
+  """
+  The total size in bytes of files written in that language.
+  """
+  totalSize: Int!
+}
+
+"""
+Represents the language of a repository.
+"""
+type LanguageEdge {
+  cursor: String!
+  node: Language!
+
+  """
+  The number of bytes of code written in the language.
+  """
+  size: Int!
+}
+
+"""
+Ordering options for language connections.
+"""
+input LanguageOrder {
+  """
+  The ordering direction.
+  """
+  direction: OrderDirection!
+
+  """
+  The field to order languages by.
+  """
+  field: LanguageOrderField!
+}
+
+"""
+Properties by which language connections can be ordered.
+"""
+enum LanguageOrderField {
+  """
+  Order languages by the size of all files containing the language
+  """
+  SIZE
+}
+
+"""
+A repository's open source license
+"""
+type License implements Node {
+  """
+  The full text of the license
+  """
+  body: String!
+
+  """
+  The conditions set by the license
+  """
+  conditions: [LicenseRule]!
+
+  """
+  A human-readable description of the license
+  """
+  description: String
+
+  """
+  Whether the license should be featured
+  """
+  featured: Boolean!
+
+  """
+  Whether the license should be displayed in license pickers
+  """
+  hidden: Boolean!
+  id: ID!
+
+  """
+  Instructions on how to implement the license
+  """
+  implementation: String
+
+  """
+  The lowercased SPDX ID of the license
+  """
+  key: String!
+
+  """
+  The limitations set by the license
+  """
+  limitations: [LicenseRule]!
+
+  """
+  The license full name specified by <https://spdx.org/licenses>
+  """
+  name: String!
+
+  """
+  Customary short name if applicable (e.g, GPLv3)
+  """
+  nickname: String
+
+  """
+  The permissions set by the license
+  """
+  permissions: [LicenseRule]!
+
+  """
+  Whether the license is a pseudo-license placeholder (e.g., other, no-license)
+  """
+  pseudoLicense: Boolean!
+
+  """
+  Short identifier specified by <https://spdx.org/licenses>
+  """
+  spdxId: String
+
+  """
+  URL to the license on <https://choosealicense.com>
+  """
+  url: URI
+}
+
+"""
+Describes a License's conditions, permissions, and limitations
+"""
+type LicenseRule {
+  """
+  A description of the rule
+  """
+  description: String!
+
+  """
+  The machine-readable rule key
+  """
+  key: String!
+
+  """
+  The human-readable rule label
+  """
+  label: String!
+}
+
+"""
+Autogenerated input type of LinkRepositoryToProject
+"""
+input LinkRepositoryToProjectInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The ID of the Project to link to a Repository
+  """
+  projectId: ID!
+
+  """
+  The ID of the Repository to link to a Project.
+  """
+  repositoryId: ID!
+}
+
+"""
+Autogenerated return type of LinkRepositoryToProject
+"""
+type LinkRepositoryToProjectPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The linked Project.
+  """
+  project: Project
+
+  """
+  The linked Repository.
+  """
+  repository: Repository
+}
+
+"""
+Autogenerated input type of LockLockable
+"""
+input LockLockableInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  A reason for why the item will be locked.
+  """
+  lockReason: LockReason
+
+  """
+  ID of the item to be locked.
+  """
+  lockableId: ID!
+}
+
+"""
+Autogenerated return type of LockLockable
+"""
+type LockLockablePayload {
+  """
+  Identifies the actor who performed the event.
+  """
+  actor: Actor
+
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The item that was locked.
+  """
+  lockedRecord: Lockable
+}
+
+"""
+The possible reasons that an issue or pull request was locked.
+"""
+enum LockReason {
+  """
+  The issue or pull request was locked because the conversation was off-topic.
+  """
+  OFF_TOPIC
+
+  """
+  The issue or pull request was locked because the conversation was resolved.
+  """
+  RESOLVED
+
+  """
+  The issue or pull request was locked because the conversation was spam.
+  """
+  SPAM
+
+  """
+  The issue or pull request was locked because the conversation was too heated.
+  """
+  TOO_HEATED
+}
+
+"""
+An object that can be locked.
+"""
+interface Lockable {
+  """
+  Reason that the conversation was locked.
+  """
+  activeLockReason: LockReason
+
+  """
+  `true` if the object is locked
+  """
+  locked: Boolean!
+}
+
+"""
+Represents a 'locked' event on a given issue or pull request.
+"""
+type LockedEvent implements Node {
+  """
+  Identifies the actor who performed the event.
+  """
+  actor: Actor
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+  id: ID!
+
+  """
+  Reason that the conversation was locked (optional).
+  """
+  lockReason: LockReason
+
+  """
+  Object that was locked.
+  """
+  lockable: Lockable!
+}
+
+"""
+A placeholder user for attribution of imported data on GitHub.
+"""
+type Mannequin implements Actor & Node & UniformResourceLocatable {
+  """
+  A URL pointing to the GitHub App's public avatar.
+  """
+  avatarUrl(
+    """
+    The size of the resulting square image.
+    """
+    size: Int
+  ): URI!
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+
+  """
+  Identifies the primary key from the database.
+  """
+  databaseId: Int
+
+  """
+  The mannequin's email on the source instance.
+  """
+  email: String
+  id: ID!
+
+  """
+  The username of the actor.
+  """
+  login: String!
+
+  """
+  The HTML path to this resource.
+  """
+  resourcePath: URI!
+
+  """
+  Identifies the date and time when the object was last updated.
+  """
+  updatedAt: DateTime!
+
+  """
+  The URL to this resource.
+  """
+  url: URI!
+}
+
+"""
+Autogenerated input type of MarkFileAsViewed
+"""
+input MarkFileAsViewedInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The path of the file to mark as viewed
+  """
+  path: String!
+
+  """
+  The Node ID of the pull request.
+  """
+  pullRequestId: ID!
+}
+
+"""
+Autogenerated return type of MarkFileAsViewed
+"""
+type MarkFileAsViewedPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The updated pull request.
+  """
+  pullRequest: PullRequest
+}
+
+"""
+Autogenerated input type of MarkPullRequestReadyForReview
+"""
+input MarkPullRequestReadyForReviewInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  ID of the pull request to be marked as ready for review.
+  """
+  pullRequestId: ID!
+}
+
+"""
+Autogenerated return type of MarkPullRequestReadyForReview
+"""
+type MarkPullRequestReadyForReviewPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The pull request that is ready for review.
+  """
+  pullRequest: PullRequest
+}
+
+"""
+Represents a 'marked_as_duplicate' event on a given issue or pull request.
+"""
+type MarkedAsDuplicateEvent implements Node {
+  """
+  Identifies the actor who performed the event.
+  """
+  actor: Actor
+
+  """
+  The authoritative issue or pull request which has been duplicated by another.
+  """
+  canonical: IssueOrPullRequest
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+
+  """
+  The issue or pull request which has been marked as a duplicate of another.
+  """
+  duplicate: IssueOrPullRequest
+  id: ID!
+
+  """
+  Canonical and duplicate belong to different repositories.
+  """
+  isCrossRepository: Boolean!
+}
+
+"""
+A public description of a Marketplace category.
+"""
+type MarketplaceCategory implements Node {
+  """
+  The category's description.
+  """
+  description: String
+
+  """
+  The technical description of how apps listed in this category work with GitHub.
+  """
+  howItWorks: String
+  id: ID!
+
+  """
+  The category's name.
+  """
+  name: String!
+
+  """
+  How many Marketplace listings have this as their primary category.
+  """
+  primaryListingCount: Int!
+
+  """
+  The HTTP path for this Marketplace category.
+  """
+  resourcePath: URI!
+
+  """
+  How many Marketplace listings have this as their secondary category.
+  """
+  secondaryListingCount: Int!
+
+  """
+  The short name of the category used in its URL.
+  """
+  slug: String!
+
+  """
+  The HTTP URL for this Marketplace category.
+  """
+  url: URI!
+}
+
+"""
+A listing in the GitHub integration marketplace.
+"""
+type MarketplaceListing implements Node {
+  """
+  The GitHub App this listing represents.
+  """
+  app: App
+
+  """
+  URL to the listing owner's company site.
+  """
+  companyUrl: URI
+
+  """
+  The HTTP path for configuring access to the listing's integration or OAuth app
+  """
+  configurationResourcePath: URI!
+
+  """
+  The HTTP URL for configuring access to the listing's integration or OAuth app
+  """
+  configurationUrl: URI!
+
+  """
+  URL to the listing's documentation.
+  """
+  documentationUrl: URI
+
+  """
+  The listing's detailed description.
+  """
+  extendedDescription: String
+
+  """
+  The listing's detailed description rendered to HTML.
+  """
+  extendedDescriptionHTML: HTML!
+
+  """
+  The listing's introductory description.
+  """
+  fullDescription: String!
+
+  """
+  The listing's introductory description rendered to HTML.
+  """
+  fullDescriptionHTML: HTML!
+
+  """
+  Does this listing have any plans with a free trial?
+  """
+  hasPublishedFreeTrialPlans: Boolean!
+
+  """
+  Does this listing have a terms of service link?
+  """
+  hasTermsOfService: Boolean!
+
+  """
+  Whether the creator of the app is a verified org
+  """
+  hasVerifiedOwner: Boolean!
+
+  """
+  A technical description of how this app works with GitHub.
+  """
+  howItWorks: String
+
+  """
+  The listing's technical description rendered to HTML.
+  """
+  howItWorksHTML: HTML!
+  id: ID!
+
+  """
+  URL to install the product to the viewer's account or organization.
+  """
+  installationUrl: URI
+
+  """
+  Whether this listing's app has been installed for the current viewer
+  """
+  installedForViewer: Boolean!
+
+  """
+  Whether this listing has been removed from the Marketplace.
+  """
+  isArchived: Boolean!
+
+  """
+  Whether this listing is still an editable draft that has not been submitted
+  for review and is not publicly visible in the Marketplace.
+  """
+  isDraft: Boolean!
+
+  """
+  Whether the product this listing represents is available as part of a paid plan.
+  """
+  isPaid: Boolean!
+
+  """
+  Whether this listing has been approved for display in the Marketplace.
+  """
+  isPublic: Boolean!
+
+  """
+  Whether this listing has been rejected by GitHub for display in the Marketplace.
+  """
+  isRejected: Boolean!
+
+  """
+  Whether this listing has been approved for unverified display in the Marketplace.
+  """
+  isUnverified: Boolean!
+
+  """
+  Whether this draft listing has been submitted for review for approval to be unverified in the Marketplace.
+  """
+  isUnverifiedPending: Boolean!
+
+  """
+  Whether this draft listing has been submitted for review from GitHub for approval to be verified in the Marketplace.
+  """
+  isVerificationPendingFromDraft: Boolean!
+
+  """
+  Whether this unverified listing has been submitted for review from GitHub for approval to be verified in the Marketplace.
+  """
+  isVerificationPendingFromUnverified: Boolean!
+
+  """
+  Whether this listing has been approved for verified display in the Marketplace.
+  """
+  isVerified: Boolean!
+
+  """
+  The hex color code, without the leading '#', for the logo background.
+  """
+  logoBackgroundColor: String!
+
+  """
+  URL for the listing's logo image.
+  """
+  logoUrl(
+    """
+    The size in pixels of the resulting square image.
+    """
+    size: Int = 400
+  ): URI
+
+  """
+  The listing's full name.
+  """
+  name: String!
+
+  """
+  The listing's very short description without a trailing period or ampersands.
+  """
+  normalizedShortDescription: String!
+
+  """
+  URL to the listing's detailed pricing.
+  """
+  pricingUrl: URI
+
+  """
+  The category that best describes the listing.
+  """
+  primaryCategory: MarketplaceCategory!
+
+  """
+  URL to the listing's privacy policy, may return an empty string for listings that do not require a privacy policy URL.
+  """
+  privacyPolicyUrl: URI!
+
+  """
+  The HTTP path for the Marketplace listing.
+  """
+  resourcePath: URI!
+
+  """
+  The URLs for the listing's screenshots.
+  """
+  screenshotUrls: [String]!
+
+  """
+  An alternate category that describes the listing.
+  """
+  secondaryCategory: MarketplaceCategory
+
+  """
+  The listing's very short description.
+  """
+  shortDescription: String!
+
+  """
+  The short name of the listing used in its URL.
+  """
+  slug: String!
+
+  """
+  URL to the listing's status page.
+  """
+  statusUrl: URI
+
+  """
+  An email address for support for this listing's app.
+  """
+  supportEmail: String
+
+  """
+  Either a URL or an email address for support for this listing's app, may
+  return an empty string for listings that do not require a support URL.
+  """
+  supportUrl: URI!
+
+  """
+  URL to the listing's terms of service.
+  """
+  termsOfServiceUrl: URI
+
+  """
+  The HTTP URL for the Marketplace listing.
+  """
+  url: URI!
+
+  """
+  Can the current viewer add plans for this Marketplace listing.
+  """
+  viewerCanAddPlans: Boolean!
+
+  """
+  Can the current viewer approve this Marketplace listing.
+  """
+  viewerCanApprove: Boolean!
+
+  """
+  Can the current viewer delist this Marketplace listing.
+  """
+  viewerCanDelist: Boolean!
+
+  """
+  Can the current viewer edit this Marketplace listing.
+  """
+  viewerCanEdit: Boolean!
+
+  """
+  Can the current viewer edit the primary and secondary category of this
+  Marketplace listing.
+  """
+  viewerCanEditCategories: Boolean!
+
+  """
+  Can the current viewer edit the plans for this Marketplace listing.
+  """
+  viewerCanEditPlans: Boolean!
+
+  """
+  Can the current viewer return this Marketplace listing to draft state
+  so it becomes editable again.
+  """
+  viewerCanRedraft: Boolean!
+
+  """
+  Can the current viewer reject this Marketplace listing by returning it to
+  an editable draft state or rejecting it entirely.
+  """
+  viewerCanReject: Boolean!
+
+  """
+  Can the current viewer request this listing be reviewed for display in
+  the Marketplace as verified.
+  """
+  viewerCanRequestApproval: Boolean!
+
+  """
+  Indicates whether the current user has an active subscription to this Marketplace listing.
+  """
+  viewerHasPurchased: Boolean!
+
+  """
+  Indicates if the current user has purchased a subscription to this Marketplace listing
+  for all of the organizations the user owns.
+  """
+  viewerHasPurchasedForAllOrganizations: Boolean!
+
+  """
+  Does the current viewer role allow them to administer this Marketplace listing.
+  """
+  viewerIsListingAdmin: Boolean!
+}
+
+"""
+Look up Marketplace Listings
+"""
+type MarketplaceListingConnection {
+  """
+  A list of edges.
+  """
+  edges: [MarketplaceListingEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [MarketplaceListing]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+An edge in a connection.
+"""
+type MarketplaceListingEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: MarketplaceListing
+}
+
+"""
+Entities that have members who can set status messages.
+"""
+interface MemberStatusable {
+  """
+  Get the status messages members of this entity have set that are either public or visible only to the organization.
+  """
+  memberStatuses(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for user statuses returned from the connection.
+    """
+    orderBy: UserStatusOrder = {field: UPDATED_AT, direction: DESC}
+  ): UserStatusConnection!
+}
+
+"""
+Audit log entry for a members_can_delete_repos.clear event.
+"""
+type MembersCanDeleteReposClearAuditEntry implements AuditEntry & EnterpriseAuditEntryData & Node & OrganizationAuditEntryData {
+  """
+  The action name
+  """
+  action: String!
+
+  """
+  The user who initiated the action
+  """
+  actor: AuditEntryActor
+
+  """
+  The IP address of the actor
+  """
+  actorIp: String
+
+  """
+  A readable representation of the actor's location
+  """
+  actorLocation: ActorLocation
+
+  """
+  The username of the user who initiated the action
+  """
+  actorLogin: String
+
+  """
+  The HTTP path for the actor.
+  """
+  actorResourcePath: URI
+
+  """
+  The HTTP URL for the actor.
+  """
+  actorUrl: URI
+
+  """
+  The time the action was initiated
+  """
+  createdAt: PreciseDateTime!
+
+  """
+  The HTTP path for this enterprise.
+  """
+  enterpriseResourcePath: URI
+
+  """
+  The slug of the enterprise.
+  """
+  enterpriseSlug: String
+
+  """
+  The HTTP URL for this enterprise.
+  """
+  enterpriseUrl: URI
+  id: ID!
+
+  """
+  The corresponding operation type for the action
+  """
+  operationType: OperationType
+
+  """
+  The Organization associated with the Audit Entry.
+  """
+  organization: Organization
+
+  """
+  The name of the Organization.
+  """
+  organizationName: String
+
+  """
+  The HTTP path for the organization
+  """
+  organizationResourcePath: URI
+
+  """
+  The HTTP URL for the organization
+  """
+  organizationUrl: URI
+
+  """
+  The user affected by the action
+  """
+  user: User
+
+  """
+  For actions involving two users, the actor is the initiator and the user is the affected user.
+  """
+  userLogin: String
+
+  """
+  The HTTP path for the user.
+  """
+  userResourcePath: URI
+
+  """
+  The HTTP URL for the user.
+  """
+  userUrl: URI
+}
+
+"""
+Audit log entry for a members_can_delete_repos.disable event.
+"""
+type MembersCanDeleteReposDisableAuditEntry implements AuditEntry & EnterpriseAuditEntryData & Node & OrganizationAuditEntryData {
+  """
+  The action name
+  """
+  action: String!
+
+  """
+  The user who initiated the action
+  """
+  actor: AuditEntryActor
+
+  """
+  The IP address of the actor
+  """
+  actorIp: String
+
+  """
+  A readable representation of the actor's location
+  """
+  actorLocation: ActorLocation
+
+  """
+  The username of the user who initiated the action
+  """
+  actorLogin: String
+
+  """
+  The HTTP path for the actor.
+  """
+  actorResourcePath: URI
+
+  """
+  The HTTP URL for the actor.
+  """
+  actorUrl: URI
+
+  """
+  The time the action was initiated
+  """
+  createdAt: PreciseDateTime!
+
+  """
+  The HTTP path for this enterprise.
+  """
+  enterpriseResourcePath: URI
+
+  """
+  The slug of the enterprise.
+  """
+  enterpriseSlug: String
+
+  """
+  The HTTP URL for this enterprise.
+  """
+  enterpriseUrl: URI
+  id: ID!
+
+  """
+  The corresponding operation type for the action
+  """
+  operationType: OperationType
+
+  """
+  The Organization associated with the Audit Entry.
+  """
+  organization: Organization
+
+  """
+  The name of the Organization.
+  """
+  organizationName: String
+
+  """
+  The HTTP path for the organization
+  """
+  organizationResourcePath: URI
+
+  """
+  The HTTP URL for the organization
+  """
+  organizationUrl: URI
+
+  """
+  The user affected by the action
+  """
+  user: User
+
+  """
+  For actions involving two users, the actor is the initiator and the user is the affected user.
+  """
+  userLogin: String
+
+  """
+  The HTTP path for the user.
+  """
+  userResourcePath: URI
+
+  """
+  The HTTP URL for the user.
+  """
+  userUrl: URI
+}
+
+"""
+Audit log entry for a members_can_delete_repos.enable event.
+"""
+type MembersCanDeleteReposEnableAuditEntry implements AuditEntry & EnterpriseAuditEntryData & Node & OrganizationAuditEntryData {
+  """
+  The action name
+  """
+  action: String!
+
+  """
+  The user who initiated the action
+  """
+  actor: AuditEntryActor
+
+  """
+  The IP address of the actor
+  """
+  actorIp: String
+
+  """
+  A readable representation of the actor's location
+  """
+  actorLocation: ActorLocation
+
+  """
+  The username of the user who initiated the action
+  """
+  actorLogin: String
+
+  """
+  The HTTP path for the actor.
+  """
+  actorResourcePath: URI
+
+  """
+  The HTTP URL for the actor.
+  """
+  actorUrl: URI
+
+  """
+  The time the action was initiated
+  """
+  createdAt: PreciseDateTime!
+
+  """
+  The HTTP path for this enterprise.
+  """
+  enterpriseResourcePath: URI
+
+  """
+  The slug of the enterprise.
+  """
+  enterpriseSlug: String
+
+  """
+  The HTTP URL for this enterprise.
+  """
+  enterpriseUrl: URI
+  id: ID!
+
+  """
+  The corresponding operation type for the action
+  """
+  operationType: OperationType
+
+  """
+  The Organization associated with the Audit Entry.
+  """
+  organization: Organization
+
+  """
+  The name of the Organization.
+  """
+  organizationName: String
+
+  """
+  The HTTP path for the organization
+  """
+  organizationResourcePath: URI
+
+  """
+  The HTTP URL for the organization
+  """
+  organizationUrl: URI
+
+  """
+  The user affected by the action
+  """
+  user: User
+
+  """
+  For actions involving two users, the actor is the initiator and the user is the affected user.
+  """
+  userLogin: String
+
+  """
+  The HTTP path for the user.
+  """
+  userResourcePath: URI
+
+  """
+  The HTTP URL for the user.
+  """
+  userUrl: URI
+}
+
+"""
+Represents a 'mentioned' event on a given issue or pull request.
+"""
+type MentionedEvent implements Node {
+  """
+  Identifies the actor who performed the event.
+  """
+  actor: Actor
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+
+  """
+  Identifies the primary key from the database.
+  """
+  databaseId: Int
+  id: ID!
+}
+
+"""
+Autogenerated input type of MergeBranch
+"""
+input MergeBranchInput {
+  """
+  The email address to associate with this commit.
+  """
+  authorEmail: String
+
+  """
+  The name of the base branch that the provided head will be merged into.
+  """
+  base: String!
+
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  Message to use for the merge commit. If omitted, a default will be used.
+  """
+  commitMessage: String
+
+  """
+  The head to merge into the base branch. This can be a branch name or a commit GitObjectID.
+  """
+  head: String!
+
+  """
+  The Node ID of the Repository containing the base branch that will be modified.
+  """
+  repositoryId: ID!
+}
+
+"""
+Autogenerated return type of MergeBranch
+"""
+type MergeBranchPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The resulting merge Commit.
+  """
+  mergeCommit: Commit
+}
+
+"""
+Autogenerated input type of MergePullRequest
+"""
+input MergePullRequestInput {
+  """
+  The email address to associate with this merge.
+  """
+  authorEmail: String
+
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  Commit body to use for the merge commit; if omitted, a default message will be used
+  """
+  commitBody: String
+
+  """
+  Commit headline to use for the merge commit; if omitted, a default message will be used.
+  """
+  commitHeadline: String
+
+  """
+  OID that the pull request head ref must match to allow merge; if omitted, no check is performed.
+  """
+  expectedHeadOid: GitObjectID
+
+  """
+  The merge method to use. If omitted, defaults to 'MERGE'
+  """
+  mergeMethod: PullRequestMergeMethod = MERGE
+
+  """
+  ID of the pull request to be merged.
+  """
+  pullRequestId: ID!
+}
+
+"""
+Autogenerated return type of MergePullRequest
+"""
+type MergePullRequestPayload {
+  """
+  Identifies the actor who performed the event.
+  """
+  actor: Actor
+
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The pull request that was merged.
+  """
+  pullRequest: PullRequest
+}
+
+"""
+Whether or not a PullRequest can be merged.
+"""
+enum MergeableState {
+  """
+  The pull request cannot be merged due to merge conflicts.
+  """
+  CONFLICTING
+
+  """
+  The pull request can be merged.
+  """
+  MERGEABLE
+
+  """
+  The mergeability of the pull request is still being calculated.
+  """
+  UNKNOWN
+}
+
+"""
+Represents a 'merged' event on a given pull request.
+"""
+type MergedEvent implements Node & UniformResourceLocatable {
+  """
+  Identifies the actor who performed the event.
+  """
+  actor: Actor
+
+  """
+  Identifies the commit associated with the `merge` event.
+  """
+  commit: Commit
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+  id: ID!
+
+  """
+  Identifies the Ref associated with the `merge` event.
+  """
+  mergeRef: Ref
+
+  """
+  Identifies the name of the Ref associated with the `merge` event.
+  """
+  mergeRefName: String!
+
+  """
+  PullRequest referenced by event.
+  """
+  pullRequest: PullRequest!
+
+  """
+  The HTTP path for this merged event.
+  """
+  resourcePath: URI!
+
+  """
+  The HTTP URL for this merged event.
+  """
+  url: URI!
+}
+
+"""
+Represents a Milestone object on a given repository.
+"""
+type Milestone implements Closable & Node & UniformResourceLocatable {
+  """
+  `true` if the object is closed (definition of closed may depend on type)
+  """
+  closed: Boolean!
+
+  """
+  Identifies the date and time when the object was closed.
+  """
+  closedAt: DateTime
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+
+  """
+  Identifies the actor who created the milestone.
+  """
+  creator: Actor
+
+  """
+  Identifies the description of the milestone.
+  """
+  description: String
+
+  """
+  Identifies the due date of the milestone.
+  """
+  dueOn: DateTime
+  id: ID!
+
+  """
+  A list of issues associated with the milestone.
+  """
+  issues(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Filtering options for issues returned from the connection.
+    """
+    filterBy: IssueFilters
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    A list of label names to filter the pull requests by.
+    """
+    labels: [String!]
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for issues returned from the connection.
+    """
+    orderBy: IssueOrder
+
+    """
+    A list of states to filter the issues by.
+    """
+    states: [IssueState!]
+  ): IssueConnection!
+
+  """
+  Identifies the number of the milestone.
+  """
+  number: Int!
+
+  """
+  Identifies the percentage complete for the milestone
+  """
+  progressPercentage: Float!
+
+  """
+  A list of pull requests associated with the milestone.
+  """
+  pullRequests(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    The base ref name to filter the pull requests by.
+    """
+    baseRefName: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    The head ref name to filter the pull requests by.
+    """
+    headRefName: String
+
+    """
+    A list of label names to filter the pull requests by.
+    """
+    labels: [String!]
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for pull requests returned from the connection.
+    """
+    orderBy: IssueOrder
+
+    """
+    A list of states to filter the pull requests by.
+    """
+    states: [PullRequestState!]
+  ): PullRequestConnection!
+
+  """
+  The repository associated with this milestone.
+  """
+  repository: Repository!
+
+  """
+  The HTTP path for this milestone
+  """
+  resourcePath: URI!
+
+  """
+  Identifies the state of the milestone.
+  """
+  state: MilestoneState!
+
+  """
+  Identifies the title of the milestone.
+  """
+  title: String!
+
+  """
+  Identifies the date and time when the object was last updated.
+  """
+  updatedAt: DateTime!
+
+  """
+  The HTTP URL for this milestone
+  """
+  url: URI!
+}
+
+"""
+The connection type for Milestone.
+"""
+type MilestoneConnection {
+  """
+  A list of edges.
+  """
+  edges: [MilestoneEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [Milestone]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+An edge in a connection.
+"""
+type MilestoneEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: Milestone
+}
+
+"""
+Types that can be inside a Milestone.
+"""
+union MilestoneItem = Issue | PullRequest
+
+"""
+Ordering options for milestone connections.
+"""
+input MilestoneOrder {
+  """
+  The ordering direction.
+  """
+  direction: OrderDirection!
+
+  """
+  The field to order milestones by.
+  """
+  field: MilestoneOrderField!
+}
+
+"""
+Properties by which milestone connections can be ordered.
+"""
+enum MilestoneOrderField {
+  """
+  Order milestones by when they were created.
+  """
+  CREATED_AT
+
+  """
+  Order milestones by when they are due.
+  """
+  DUE_DATE
+
+  """
+  Order milestones by their number.
+  """
+  NUMBER
+
+  """
+  Order milestones by when they were last updated.
+  """
+  UPDATED_AT
+}
+
+"""
+The possible states of a milestone.
+"""
+enum MilestoneState {
+  """
+  A milestone that has been closed.
+  """
+  CLOSED
+
+  """
+  A milestone that is still open.
+  """
+  OPEN
+}
+
+"""
+Represents a 'milestoned' event on a given issue or pull request.
+"""
+type MilestonedEvent implements Node {
+  """
+  Identifies the actor who performed the event.
+  """
+  actor: Actor
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+  id: ID!
+
+  """
+  Identifies the milestone title associated with the 'milestoned' event.
+  """
+  milestoneTitle: String!
+
+  """
+  Object referenced by event.
+  """
+  subject: MilestoneItem!
+}
+
+"""
+Entities that can be minimized.
+"""
+interface Minimizable {
+  """
+  Returns whether or not a comment has been minimized.
+  """
+  isMinimized: Boolean!
+
+  """
+  Returns why the comment was minimized.
+  """
+  minimizedReason: String
+
+  """
+  Check if the current viewer can minimize this object.
+  """
+  viewerCanMinimize: Boolean!
+}
+
+"""
+Autogenerated input type of MinimizeComment
+"""
+input MinimizeCommentInput {
+  """
+  The classification of comment
+  """
+  classifier: ReportedContentClassifiers!
+
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The Node ID of the subject to modify.
+  """
+  subjectId: ID!
+}
+
+"""
+Autogenerated return type of MinimizeComment
+"""
+type MinimizeCommentPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The comment that was minimized.
+  """
+  minimizedComment: Minimizable
+}
+
+"""
+Autogenerated input type of MoveProjectCard
+"""
+input MoveProjectCardInput {
+  """
+  Place the new card after the card with this id. Pass null to place it at the top.
+  """
+  afterCardId: ID
+
+  """
+  The id of the card to move.
+  """
+  cardId: ID!
+
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The id of the column to move it into.
+  """
+  columnId: ID!
+}
+
+"""
+Autogenerated return type of MoveProjectCard
+"""
+type MoveProjectCardPayload {
+  """
+  The new edge of the moved card.
+  """
+  cardEdge: ProjectCardEdge
+
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+}
+
+"""
+Autogenerated input type of MoveProjectColumn
+"""
+input MoveProjectColumnInput {
+  """
+  Place the new column after the column with this id. Pass null to place it at the front.
+  """
+  afterColumnId: ID
+
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The id of the column to move.
+  """
+  columnId: ID!
+}
+
+"""
+Autogenerated return type of MoveProjectColumn
+"""
+type MoveProjectColumnPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The new edge of the moved column.
+  """
+  columnEdge: ProjectColumnEdge
+}
+
+"""
+Represents a 'moved_columns_in_project' event on a given issue or pull request.
+"""
+type MovedColumnsInProjectEvent implements Node {
+  """
+  Identifies the actor who performed the event.
+  """
+  actor: Actor
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+
+  """
+  Identifies the primary key from the database.
+  """
+  databaseId: Int
+  id: ID!
+}
+
+"""
+The root query for implementing GraphQL mutations.
+"""
+type Mutation {
+  """
+  Accepts a pending invitation for a user to become an administrator of an enterprise.
+  """
+  acceptEnterpriseAdministratorInvitation(input: AcceptEnterpriseAdministratorInvitationInput!): AcceptEnterpriseAdministratorInvitationPayload
+
+  """
+  Applies a suggested topic to the repository.
+  """
+  acceptTopicSuggestion(input: AcceptTopicSuggestionInput!): AcceptTopicSuggestionPayload
+
+  """
+  Adds assignees to an assignable object.
+  """
+  addAssigneesToAssignable(input: AddAssigneesToAssignableInput!): AddAssigneesToAssignablePayload
+
+  """
+  Adds a comment to an Issue or Pull Request.
+  """
+  addComment(input: AddCommentInput!): AddCommentPayload
+
+  """
+  Adds a support entitlement to an enterprise member.
+  """
+  addEnterpriseSupportEntitlement(input: AddEnterpriseSupportEntitlementInput!): AddEnterpriseSupportEntitlementPayload
+
+  """
+  Adds labels to a labelable object.
+  """
+  addLabelsToLabelable(input: AddLabelsToLabelableInput!): AddLabelsToLabelablePayload
+
+  """
+  Adds a card to a ProjectColumn. Either `contentId` or `note` must be provided but **not** both.
+  """
+  addProjectCard(input: AddProjectCardInput!): AddProjectCardPayload
+
+  """
+  Adds a column to a Project.
+  """
+  addProjectColumn(input: AddProjectColumnInput!): AddProjectColumnPayload
+
+  """
+  Adds a review to a Pull Request.
+  """
+  addPullRequestReview(input: AddPullRequestReviewInput!): AddPullRequestReviewPayload
+
+  """
+  Adds a comment to a review.
+  """
+  addPullRequestReviewComment(input: AddPullRequestReviewCommentInput!): AddPullRequestReviewCommentPayload
+
+  """
+  Adds a new thread to a pending Pull Request Review.
+  """
+  addPullRequestReviewThread(input: AddPullRequestReviewThreadInput!): AddPullRequestReviewThreadPayload
+
+  """
+  Adds a reaction to a subject.
+  """
+  addReaction(input: AddReactionInput!): AddReactionPayload
+
+  """
+  Adds a star to a Starrable.
+  """
+  addStar(input: AddStarInput!): AddStarPayload
+
+  """
+  Adds a verifiable domain to an owning account.
+  """
+  addVerifiableDomain(input: AddVerifiableDomainInput!): AddVerifiableDomainPayload
+
+  """
+  Marks a repository as archived.
+  """
+  archiveRepository(input: ArchiveRepositoryInput!): ArchiveRepositoryPayload
+
+  """
+  Cancels a pending invitation for an administrator to join an enterprise.
+  """
+  cancelEnterpriseAdminInvitation(input: CancelEnterpriseAdminInvitationInput!): CancelEnterpriseAdminInvitationPayload
+
+  """
+  Update your status on GitHub.
+  """
+  changeUserStatus(input: ChangeUserStatusInput!): ChangeUserStatusPayload
+
+  """
+  Clears all labels from a labelable object.
+  """
+  clearLabelsFromLabelable(input: ClearLabelsFromLabelableInput!): ClearLabelsFromLabelablePayload
+
+  """
+  Creates a new project by cloning configuration from an existing project.
+  """
+  cloneProject(input: CloneProjectInput!): CloneProjectPayload
+
+  """
+  Create a new repository with the same files and directory structure as a template repository.
+  """
+  cloneTemplateRepository(input: CloneTemplateRepositoryInput!): CloneTemplateRepositoryPayload
+
+  """
+  Close an issue.
+  """
+  closeIssue(input: CloseIssueInput!): CloseIssuePayload
+
+  """
+  Close a pull request.
+  """
+  closePullRequest(input: ClosePullRequestInput!): ClosePullRequestPayload
+
+  """
+  Convert a project note card to one associated with a newly created issue.
+  """
+  convertProjectCardNoteToIssue(input: ConvertProjectCardNoteToIssueInput!): ConvertProjectCardNoteToIssuePayload
+
+  """
+  Create a new branch protection rule
+  """
+  createBranchProtectionRule(input: CreateBranchProtectionRuleInput!): CreateBranchProtectionRulePayload
+
+  """
+  Create a check run.
+  """
+  createCheckRun(input: CreateCheckRunInput!): CreateCheckRunPayload
+
+  """
+  Create a check suite
+  """
+  createCheckSuite(input: CreateCheckSuiteInput!): CreateCheckSuitePayload
+
+  """
+  Creates an organization as part of an enterprise account.
+  """
+  createEnterpriseOrganization(input: CreateEnterpriseOrganizationInput!): CreateEnterpriseOrganizationPayload
+
+  """
+  Creates a new IP allow list entry.
+  """
+  createIpAllowListEntry(input: CreateIpAllowListEntryInput!): CreateIpAllowListEntryPayload
+
+  """
+  Creates a new issue.
+  """
+  createIssue(input: CreateIssueInput!): CreateIssuePayload
+
+  """
+  Creates a new project.
+  """
+  createProject(input: CreateProjectInput!): CreateProjectPayload
+
+  """
+  Create a new pull request
+  """
+  createPullRequest(input: CreatePullRequestInput!): CreatePullRequestPayload
+
+  """
+  Create a new Git Ref.
+  """
+  createRef(input: CreateRefInput!): CreateRefPayload
+
+  """
+  Create a new repository.
+  """
+  createRepository(input: CreateRepositoryInput!): CreateRepositoryPayload
+
+  """
+  Creates a new team discussion.
+  """
+  createTeamDiscussion(input: CreateTeamDiscussionInput!): CreateTeamDiscussionPayload
+
+  """
+  Creates a new team discussion comment.
+  """
+  createTeamDiscussionComment(input: CreateTeamDiscussionCommentInput!): CreateTeamDiscussionCommentPayload
+
+  """
+  Rejects a suggested topic for the repository.
+  """
+  declineTopicSuggestion(input: DeclineTopicSuggestionInput!): DeclineTopicSuggestionPayload
+
+  """
+  Delete a branch protection rule
+  """
+  deleteBranchProtectionRule(input: DeleteBranchProtectionRuleInput!): DeleteBranchProtectionRulePayload
+
+  """
+  Deletes a deployment.
+  """
+  deleteDeployment(input: DeleteDeploymentInput!): DeleteDeploymentPayload
+
+  """
+  Deletes an IP allow list entry.
+  """
+  deleteIpAllowListEntry(input: DeleteIpAllowListEntryInput!): DeleteIpAllowListEntryPayload
+
+  """
+  Deletes an Issue object.
+  """
+  deleteIssue(input: DeleteIssueInput!): DeleteIssuePayload
+
+  """
+  Deletes an IssueComment object.
+  """
+  deleteIssueComment(input: DeleteIssueCommentInput!): DeleteIssueCommentPayload
+
+  """
+  Deletes a project.
+  """
+  deleteProject(input: DeleteProjectInput!): DeleteProjectPayload
+
+  """
+  Deletes a project card.
+  """
+  deleteProjectCard(input: DeleteProjectCardInput!): DeleteProjectCardPayload
+
+  """
+  Deletes a project column.
+  """
+  deleteProjectColumn(input: DeleteProjectColumnInput!): DeleteProjectColumnPayload
+
+  """
+  Deletes a pull request review.
+  """
+  deletePullRequestReview(input: DeletePullRequestReviewInput!): DeletePullRequestReviewPayload
+
+  """
+  Deletes a pull request review comment.
+  """
+  deletePullRequestReviewComment(input: DeletePullRequestReviewCommentInput!): DeletePullRequestReviewCommentPayload
+
+  """
+  Delete a Git Ref.
+  """
+  deleteRef(input: DeleteRefInput!): DeleteRefPayload
+
+  """
+  Deletes a team discussion.
+  """
+  deleteTeamDiscussion(input: DeleteTeamDiscussionInput!): DeleteTeamDiscussionPayload
+
+  """
+  Deletes a team discussion comment.
+  """
+  deleteTeamDiscussionComment(input: DeleteTeamDiscussionCommentInput!): DeleteTeamDiscussionCommentPayload
+
+  """
+  Deletes a verifiable domain.
+  """
+  deleteVerifiableDomain(input: DeleteVerifiableDomainInput!): DeleteVerifiableDomainPayload
+
+  """
+  Disable auto merge on the given pull request
+  """
+  disablePullRequestAutoMerge(input: DisablePullRequestAutoMergeInput!): DisablePullRequestAutoMergePayload
+
+  """
+  Dismisses an approved or rejected pull request review.
+  """
+  dismissPullRequestReview(input: DismissPullRequestReviewInput!): DismissPullRequestReviewPayload
+
+  """
+  Enable the default auto-merge on a pull request.
+  """
+  enablePullRequestAutoMerge(input: EnablePullRequestAutoMergeInput!): EnablePullRequestAutoMergePayload
+
+  """
+  Follow a user.
+  """
+  followUser(input: FollowUserInput!): FollowUserPayload
+
+  """
+  Invite someone to become an administrator of the enterprise.
+  """
+  inviteEnterpriseAdmin(input: InviteEnterpriseAdminInput!): InviteEnterpriseAdminPayload
+
+  """
+  Creates a repository link for a project.
+  """
+  linkRepositoryToProject(input: LinkRepositoryToProjectInput!): LinkRepositoryToProjectPayload
+
+  """
+  Lock a lockable object
+  """
+  lockLockable(input: LockLockableInput!): LockLockablePayload
+
+  """
+  Mark a pull request file as viewed
+  """
+  markFileAsViewed(input: MarkFileAsViewedInput!): MarkFileAsViewedPayload
+
+  """
+  Marks a pull request ready for review.
+  """
+  markPullRequestReadyForReview(input: MarkPullRequestReadyForReviewInput!): MarkPullRequestReadyForReviewPayload
+
+  """
+  Merge a head into a branch.
+  """
+  mergeBranch(input: MergeBranchInput!): MergeBranchPayload
+
+  """
+  Merge a pull request.
+  """
+  mergePullRequest(input: MergePullRequestInput!): MergePullRequestPayload
+
+  """
+  Minimizes a comment on an Issue, Commit, Pull Request, or Gist
+  """
+  minimizeComment(input: MinimizeCommentInput!): MinimizeCommentPayload
+
+  """
+  Moves a project card to another place.
+  """
+  moveProjectCard(input: MoveProjectCardInput!): MoveProjectCardPayload
+
+  """
+  Moves a project column to another place.
+  """
+  moveProjectColumn(input: MoveProjectColumnInput!): MoveProjectColumnPayload
+
+  """
+  Regenerates the identity provider recovery codes for an enterprise
+  """
+  regenerateEnterpriseIdentityProviderRecoveryCodes(input: RegenerateEnterpriseIdentityProviderRecoveryCodesInput!): RegenerateEnterpriseIdentityProviderRecoveryCodesPayload
+
+  """
+  Regenerates a verifiable domain's verification token.
+  """
+  regenerateVerifiableDomainToken(input: RegenerateVerifiableDomainTokenInput!): RegenerateVerifiableDomainTokenPayload
+
+  """
+  Removes assignees from an assignable object.
+  """
+  removeAssigneesFromAssignable(input: RemoveAssigneesFromAssignableInput!): RemoveAssigneesFromAssignablePayload
+
+  """
+  Removes an administrator from the enterprise.
+  """
+  removeEnterpriseAdmin(input: RemoveEnterpriseAdminInput!): RemoveEnterpriseAdminPayload
+
+  """
+  Removes the identity provider from an enterprise
+  """
+  removeEnterpriseIdentityProvider(input: RemoveEnterpriseIdentityProviderInput!): RemoveEnterpriseIdentityProviderPayload
+
+  """
+  Removes an organization from the enterprise
+  """
+  removeEnterpriseOrganization(input: RemoveEnterpriseOrganizationInput!): RemoveEnterpriseOrganizationPayload
+
+  """
+  Removes a support entitlement from an enterprise member.
+  """
+  removeEnterpriseSupportEntitlement(input: RemoveEnterpriseSupportEntitlementInput!): RemoveEnterpriseSupportEntitlementPayload
+
+  """
+  Removes labels from a Labelable object.
+  """
+  removeLabelsFromLabelable(input: RemoveLabelsFromLabelableInput!): RemoveLabelsFromLabelablePayload
+
+  """
+  Removes outside collaborator from all repositories in an organization.
+  """
+  removeOutsideCollaborator(input: RemoveOutsideCollaboratorInput!): RemoveOutsideCollaboratorPayload
+
+  """
+  Removes a reaction from a subject.
+  """
+  removeReaction(input: RemoveReactionInput!): RemoveReactionPayload
+
+  """
+  Removes a star from a Starrable.
+  """
+  removeStar(input: RemoveStarInput!): RemoveStarPayload
+
+  """
+  Reopen a issue.
+  """
+  reopenIssue(input: ReopenIssueInput!): ReopenIssuePayload
+
+  """
+  Reopen a pull request.
+  """
+  reopenPullRequest(input: ReopenPullRequestInput!): ReopenPullRequestPayload
+
+  """
+  Set review requests on a pull request.
+  """
+  requestReviews(input: RequestReviewsInput!): RequestReviewsPayload
+
+  """
+  Rerequests an existing check suite.
+  """
+  rerequestCheckSuite(input: RerequestCheckSuiteInput!): RerequestCheckSuitePayload
+
+  """
+  Marks a review thread as resolved.
+  """
+  resolveReviewThread(input: ResolveReviewThreadInput!): ResolveReviewThreadPayload
+
+  """
+  Creates or updates the identity provider for an enterprise.
+  """
+  setEnterpriseIdentityProvider(input: SetEnterpriseIdentityProviderInput!): SetEnterpriseIdentityProviderPayload
+
+  """
+  Set an organization level interaction limit for an organization's public repositories.
+  """
+  setOrganizationInteractionLimit(input: SetOrganizationInteractionLimitInput!): SetOrganizationInteractionLimitPayload
+
+  """
+  Sets an interaction limit setting for a repository.
+  """
+  setRepositoryInteractionLimit(input: SetRepositoryInteractionLimitInput!): SetRepositoryInteractionLimitPayload
+
+  """
+  Set a user level interaction limit for an user's public repositories.
+  """
+  setUserInteractionLimit(input: SetUserInteractionLimitInput!): SetUserInteractionLimitPayload
+
+  """
+  Submits a pending pull request review.
+  """
+  submitPullRequestReview(input: SubmitPullRequestReviewInput!): SubmitPullRequestReviewPayload
+
+  """
+  Transfer an issue to a different repository
+  """
+  transferIssue(input: TransferIssueInput!): TransferIssuePayload
+
+  """
+  Unarchives a repository.
+  """
+  unarchiveRepository(input: UnarchiveRepositoryInput!): UnarchiveRepositoryPayload
+
+  """
+  Unfollow a user.
+  """
+  unfollowUser(input: UnfollowUserInput!): UnfollowUserPayload
+
+  """
+  Deletes a repository link from a project.
+  """
+  unlinkRepositoryFromProject(input: UnlinkRepositoryFromProjectInput!): UnlinkRepositoryFromProjectPayload
+
+  """
+  Unlock a lockable object
+  """
+  unlockLockable(input: UnlockLockableInput!): UnlockLockablePayload
+
+  """
+  Unmark a pull request file as viewed
+  """
+  unmarkFileAsViewed(input: UnmarkFileAsViewedInput!): UnmarkFileAsViewedPayload
+
+  """
+  Unmark an issue as a duplicate of another issue.
+  """
+  unmarkIssueAsDuplicate(input: UnmarkIssueAsDuplicateInput!): UnmarkIssueAsDuplicatePayload
+
+  """
+  Unminimizes a comment on an Issue, Commit, Pull Request, or Gist
+  """
+  unminimizeComment(input: UnminimizeCommentInput!): UnminimizeCommentPayload
+
+  """
+  Marks a review thread as unresolved.
+  """
+  unresolveReviewThread(input: UnresolveReviewThreadInput!): UnresolveReviewThreadPayload
+
+  """
+  Create a new branch protection rule
+  """
+  updateBranchProtectionRule(input: UpdateBranchProtectionRuleInput!): UpdateBranchProtectionRulePayload
+
+  """
+  Update a check run
+  """
+  updateCheckRun(input: UpdateCheckRunInput!): UpdateCheckRunPayload
+
+  """
+  Modifies the settings of an existing check suite
+  """
+  updateCheckSuitePreferences(input: UpdateCheckSuitePreferencesInput!): UpdateCheckSuitePreferencesPayload
+
+  """
+  Updates the role of an enterprise administrator.
+  """
+  updateEnterpriseAdministratorRole(input: UpdateEnterpriseAdministratorRoleInput!): UpdateEnterpriseAdministratorRolePayload
+
+  """
+  Sets whether private repository forks are enabled for an enterprise.
+  """
+  updateEnterpriseAllowPrivateRepositoryForkingSetting(input: UpdateEnterpriseAllowPrivateRepositoryForkingSettingInput!): UpdateEnterpriseAllowPrivateRepositoryForkingSettingPayload
+
+  """
+  Sets the default repository permission for organizations in an enterprise.
+  """
+  updateEnterpriseDefaultRepositoryPermissionSetting(input: UpdateEnterpriseDefaultRepositoryPermissionSettingInput!): UpdateEnterpriseDefaultRepositoryPermissionSettingPayload
+
+  """
+  Sets whether organization members with admin permissions on a repository can change repository visibility.
+  """
+  updateEnterpriseMembersCanChangeRepositoryVisibilitySetting(input: UpdateEnterpriseMembersCanChangeRepositoryVisibilitySettingInput!): UpdateEnterpriseMembersCanChangeRepositoryVisibilitySettingPayload
+
+  """
+  Sets the members can create repositories setting for an enterprise.
+  """
+  updateEnterpriseMembersCanCreateRepositoriesSetting(input: UpdateEnterpriseMembersCanCreateRepositoriesSettingInput!): UpdateEnterpriseMembersCanCreateRepositoriesSettingPayload
+
+  """
+  Sets the members can delete issues setting for an enterprise.
+  """
+  updateEnterpriseMembersCanDeleteIssuesSetting(input: UpdateEnterpriseMembersCanDeleteIssuesSettingInput!): UpdateEnterpriseMembersCanDeleteIssuesSettingPayload
+
+  """
+  Sets the members can delete repositories setting for an enterprise.
+  """
+  updateEnterpriseMembersCanDeleteRepositoriesSetting(input: UpdateEnterpriseMembersCanDeleteRepositoriesSettingInput!): UpdateEnterpriseMembersCanDeleteRepositoriesSettingPayload
+
+  """
+  Sets whether members can invite collaborators are enabled for an enterprise.
+  """
+  updateEnterpriseMembersCanInviteCollaboratorsSetting(input: UpdateEnterpriseMembersCanInviteCollaboratorsSettingInput!): UpdateEnterpriseMembersCanInviteCollaboratorsSettingPayload
+
+  """
+  Sets whether or not an organization admin can make purchases.
+  """
+  updateEnterpriseMembersCanMakePurchasesSetting(input: UpdateEnterpriseMembersCanMakePurchasesSettingInput!): UpdateEnterpriseMembersCanMakePurchasesSettingPayload
+
+  """
+  Sets the members can update protected branches setting for an enterprise.
+  """
+  updateEnterpriseMembersCanUpdateProtectedBranchesSetting(input: UpdateEnterpriseMembersCanUpdateProtectedBranchesSettingInput!): UpdateEnterpriseMembersCanUpdateProtectedBranchesSettingPayload
+
+  """
+  Sets the members can view dependency insights for an enterprise.
+  """
+  updateEnterpriseMembersCanViewDependencyInsightsSetting(input: UpdateEnterpriseMembersCanViewDependencyInsightsSettingInput!): UpdateEnterpriseMembersCanViewDependencyInsightsSettingPayload
+
+  """
+  Sets whether organization projects are enabled for an enterprise.
+  """
+  updateEnterpriseOrganizationProjectsSetting(input: UpdateEnterpriseOrganizationProjectsSettingInput!): UpdateEnterpriseOrganizationProjectsSettingPayload
+
+  """
+  Updates an enterprise's profile.
+  """
+  updateEnterpriseProfile(input: UpdateEnterpriseProfileInput!): UpdateEnterpriseProfilePayload
+
+  """
+  Sets whether repository projects are enabled for a enterprise.
+  """
+  updateEnterpriseRepositoryProjectsSetting(input: UpdateEnterpriseRepositoryProjectsSettingInput!): UpdateEnterpriseRepositoryProjectsSettingPayload
+
+  """
+  Sets whether team discussions are enabled for an enterprise.
+  """
+  updateEnterpriseTeamDiscussionsSetting(input: UpdateEnterpriseTeamDiscussionsSettingInput!): UpdateEnterpriseTeamDiscussionsSettingPayload
+
+  """
+  Sets whether two factor authentication is required for all users in an enterprise.
+  """
+  updateEnterpriseTwoFactorAuthenticationRequiredSetting(input: UpdateEnterpriseTwoFactorAuthenticationRequiredSettingInput!): UpdateEnterpriseTwoFactorAuthenticationRequiredSettingPayload
+
+  """
+  Sets whether an IP allow list is enabled on an owner.
+  """
+  updateIpAllowListEnabledSetting(input: UpdateIpAllowListEnabledSettingInput!): UpdateIpAllowListEnabledSettingPayload
+
+  """
+  Updates an IP allow list entry.
+  """
+  updateIpAllowListEntry(input: UpdateIpAllowListEntryInput!): UpdateIpAllowListEntryPayload
+
+  """
+  Updates an Issue.
+  """
+  updateIssue(input: UpdateIssueInput!): UpdateIssuePayload
+
+  """
+  Updates an IssueComment object.
+  """
+  updateIssueComment(input: UpdateIssueCommentInput!): UpdateIssueCommentPayload
+
+  """
+  Update the setting to restrict notifications to only verified domains available to an owner.
+  """
+  updateNotificationRestrictionSetting(input: UpdateNotificationRestrictionSettingInput!): UpdateNotificationRestrictionSettingPayload
+
+  """
+  Updates an existing project.
+  """
+  updateProject(input: UpdateProjectInput!): UpdateProjectPayload
+
+  """
+  Updates an existing project card.
+  """
+  updateProjectCard(input: UpdateProjectCardInput!): UpdateProjectCardPayload
+
+  """
+  Updates an existing project column.
+  """
+  updateProjectColumn(input: UpdateProjectColumnInput!): UpdateProjectColumnPayload
+
+  """
+  Update a pull request
+  """
+  updatePullRequest(input: UpdatePullRequestInput!): UpdatePullRequestPayload
+
+  """
+  Updates the body of a pull request review.
+  """
+  updatePullRequestReview(input: UpdatePullRequestReviewInput!): UpdatePullRequestReviewPayload
+
+  """
+  Updates a pull request review comment.
+  """
+  updatePullRequestReviewComment(input: UpdatePullRequestReviewCommentInput!): UpdatePullRequestReviewCommentPayload
+
+  """
+  Update a Git Ref.
+  """
+  updateRef(input: UpdateRefInput!): UpdateRefPayload
+
+  """
+  Update information about a repository.
+  """
+  updateRepository(input: UpdateRepositoryInput!): UpdateRepositoryPayload
+
+  """
+  Updates the state for subscribable subjects.
+  """
+  updateSubscription(input: UpdateSubscriptionInput!): UpdateSubscriptionPayload
+
+  """
+  Updates a team discussion.
+  """
+  updateTeamDiscussion(input: UpdateTeamDiscussionInput!): UpdateTeamDiscussionPayload
+
+  """
+  Updates a discussion comment.
+  """
+  updateTeamDiscussionComment(input: UpdateTeamDiscussionCommentInput!): UpdateTeamDiscussionCommentPayload
+
+  """
+  Replaces the repository's topics with the given topics.
+  """
+  updateTopics(input: UpdateTopicsInput!): UpdateTopicsPayload
+
+  """
+  Verify that a verifiable domain has the expected DNS record.
+  """
+  verifyVerifiableDomain(input: VerifyVerifiableDomainInput!): VerifyVerifiableDomainPayload
+}
+
+"""
+An object with an ID.
+"""
+interface Node {
+  """
+  ID of the object.
+  """
+  id: ID!
+}
+
+"""
+The possible values for the notification restriction setting.
+"""
+enum NotificationRestrictionSettingValue {
+  """
+  The setting is disabled for the owner.
+  """
+  DISABLED
+
+  """
+  The setting is enabled for the owner.
+  """
+  ENABLED
+}
+
+"""
+Metadata for an audit entry with action oauth_application.*
+"""
+interface OauthApplicationAuditEntryData {
+  """
+  The name of the OAuth Application.
+  """
+  oauthApplicationName: String
+
+  """
+  The HTTP path for the OAuth Application
+  """
+  oauthApplicationResourcePath: URI
+
+  """
+  The HTTP URL for the OAuth Application
+  """
+  oauthApplicationUrl: URI
+}
+
+"""
+Audit log entry for a oauth_application.create event.
+"""
+type OauthApplicationCreateAuditEntry implements AuditEntry & Node & OauthApplicationAuditEntryData & OrganizationAuditEntryData {
+  """
+  The action name
+  """
+  action: String!
+
+  """
+  The user who initiated the action
+  """
+  actor: AuditEntryActor
+
+  """
+  The IP address of the actor
+  """
+  actorIp: String
+
+  """
+  A readable representation of the actor's location
+  """
+  actorLocation: ActorLocation
+
+  """
+  The username of the user who initiated the action
+  """
+  actorLogin: String
+
+  """
+  The HTTP path for the actor.
+  """
+  actorResourcePath: URI
+
+  """
+  The HTTP URL for the actor.
+  """
+  actorUrl: URI
+
+  """
+  The application URL of the OAuth Application.
+  """
+  applicationUrl: URI
+
+  """
+  The callback URL of the OAuth Application.
+  """
+  callbackUrl: URI
+
+  """
+  The time the action was initiated
+  """
+  createdAt: PreciseDateTime!
+  id: ID!
+
+  """
+  The name of the OAuth Application.
+  """
+  oauthApplicationName: String
+
+  """
+  The HTTP path for the OAuth Application
+  """
+  oauthApplicationResourcePath: URI
+
+  """
+  The HTTP URL for the OAuth Application
+  """
+  oauthApplicationUrl: URI
+
+  """
+  The corresponding operation type for the action
+  """
+  operationType: OperationType
+
+  """
+  The Organization associated with the Audit Entry.
+  """
+  organization: Organization
+
+  """
+  The name of the Organization.
+  """
+  organizationName: String
+
+  """
+  The HTTP path for the organization
+  """
+  organizationResourcePath: URI
+
+  """
+  The HTTP URL for the organization
+  """
+  organizationUrl: URI
+
+  """
+  The rate limit of the OAuth Application.
+  """
+  rateLimit: Int
+
+  """
+  The state of the OAuth Application.
+  """
+  state: OauthApplicationCreateAuditEntryState
+
+  """
+  The user affected by the action
+  """
+  user: User
+
+  """
+  For actions involving two users, the actor is the initiator and the user is the affected user.
+  """
+  userLogin: String
+
+  """
+  The HTTP path for the user.
+  """
+  userResourcePath: URI
+
+  """
+  The HTTP URL for the user.
+  """
+  userUrl: URI
+}
+
+"""
+The state of an OAuth Application when it was created.
+"""
+enum OauthApplicationCreateAuditEntryState {
+  """
+  The OAuth Application was active and allowed to have OAuth Accesses.
+  """
+  ACTIVE
+
+  """
+  The OAuth Application was in the process of being deleted.
+  """
+  PENDING_DELETION
+
+  """
+  The OAuth Application was suspended from generating OAuth Accesses due to abuse or security concerns.
+  """
+  SUSPENDED
+}
+
+"""
+The corresponding operation type for the action
+"""
+enum OperationType {
+  """
+  An existing resource was accessed
+  """
+  ACCESS
+
+  """
+  A resource performed an authentication event
+  """
+  AUTHENTICATION
+
+  """
+  A new resource was created
+  """
+  CREATE
+
+  """
+  An existing resource was modified
+  """
+  MODIFY
+
+  """
+  An existing resource was removed
+  """
+  REMOVE
+
+  """
+  An existing resource was restored
+  """
+  RESTORE
+
+  """
+  An existing resource was transferred between multiple resources
+  """
+  TRANSFER
+}
+
+"""
+Possible directions in which to order a list of items when provided an `orderBy` argument.
+"""
+enum OrderDirection {
+  """
+  Specifies an ascending order for a given `orderBy` argument.
+  """
+  ASC
+
+  """
+  Specifies a descending order for a given `orderBy` argument.
+  """
+  DESC
+}
+
+"""
+Audit log entry for a org.add_billing_manager
+"""
+type OrgAddBillingManagerAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData {
+  """
+  The action name
+  """
+  action: String!
+
+  """
+  The user who initiated the action
+  """
+  actor: AuditEntryActor
+
+  """
+  The IP address of the actor
+  """
+  actorIp: String
+
+  """
+  A readable representation of the actor's location
+  """
+  actorLocation: ActorLocation
+
+  """
+  The username of the user who initiated the action
+  """
+  actorLogin: String
+
+  """
+  The HTTP path for the actor.
+  """
+  actorResourcePath: URI
+
+  """
+  The HTTP URL for the actor.
+  """
+  actorUrl: URI
+
+  """
+  The time the action was initiated
+  """
+  createdAt: PreciseDateTime!
+  id: ID!
+
+  """
+  The email address used to invite a billing manager for the organization.
+  """
+  invitationEmail: String
+
+  """
+  The corresponding operation type for the action
+  """
+  operationType: OperationType
+
+  """
+  The Organization associated with the Audit Entry.
+  """
+  organization: Organization
+
+  """
+  The name of the Organization.
+  """
+  organizationName: String
+
+  """
+  The HTTP path for the organization
+  """
+  organizationResourcePath: URI
+
+  """
+  The HTTP URL for the organization
+  """
+  organizationUrl: URI
+
+  """
+  The user affected by the action
+  """
+  user: User
+
+  """
+  For actions involving two users, the actor is the initiator and the user is the affected user.
+  """
+  userLogin: String
+
+  """
+  The HTTP path for the user.
+  """
+  userResourcePath: URI
+
+  """
+  The HTTP URL for the user.
+  """
+  userUrl: URI
+}
+
+"""
+Audit log entry for a org.add_member
+"""
+type OrgAddMemberAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData {
+  """
+  The action name
+  """
+  action: String!
+
+  """
+  The user who initiated the action
+  """
+  actor: AuditEntryActor
+
+  """
+  The IP address of the actor
+  """
+  actorIp: String
+
+  """
+  A readable representation of the actor's location
+  """
+  actorLocation: ActorLocation
+
+  """
+  The username of the user who initiated the action
+  """
+  actorLogin: String
+
+  """
+  The HTTP path for the actor.
+  """
+  actorResourcePath: URI
+
+  """
+  The HTTP URL for the actor.
+  """
+  actorUrl: URI
+
+  """
+  The time the action was initiated
+  """
+  createdAt: PreciseDateTime!
+  id: ID!
+
+  """
+  The corresponding operation type for the action
+  """
+  operationType: OperationType
+
+  """
+  The Organization associated with the Audit Entry.
+  """
+  organization: Organization
+
+  """
+  The name of the Organization.
+  """
+  organizationName: String
+
+  """
+  The HTTP path for the organization
+  """
+  organizationResourcePath: URI
+
+  """
+  The HTTP URL for the organization
+  """
+  organizationUrl: URI
+
+  """
+  The permission level of the member added to the organization.
+  """
+  permission: OrgAddMemberAuditEntryPermission
+
+  """
+  The user affected by the action
+  """
+  user: User
+
+  """
+  For actions involving two users, the actor is the initiator and the user is the affected user.
+  """
+  userLogin: String
+
+  """
+  The HTTP path for the user.
+  """
+  userResourcePath: URI
+
+  """
+  The HTTP URL for the user.
+  """
+  userUrl: URI
+}
+
+"""
+The permissions available to members on an Organization.
+"""
+enum OrgAddMemberAuditEntryPermission {
+  """
+  Can read, clone, push, and add collaborators to repositories.
+  """
+  ADMIN
+
+  """
+  Can read and clone repositories.
+  """
+  READ
+}
+
+"""
+Audit log entry for a org.block_user
+"""
+type OrgBlockUserAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData {
+  """
+  The action name
+  """
+  action: String!
+
+  """
+  The user who initiated the action
+  """
+  actor: AuditEntryActor
+
+  """
+  The IP address of the actor
+  """
+  actorIp: String
+
+  """
+  A readable representation of the actor's location
+  """
+  actorLocation: ActorLocation
+
+  """
+  The username of the user who initiated the action
+  """
+  actorLogin: String
+
+  """
+  The HTTP path for the actor.
+  """
+  actorResourcePath: URI
+
+  """
+  The HTTP URL for the actor.
+  """
+  actorUrl: URI
+
+  """
+  The blocked user.
+  """
+  blockedUser: User
+
+  """
+  The username of the blocked user.
+  """
+  blockedUserName: String
+
+  """
+  The HTTP path for the blocked user.
+  """
+  blockedUserResourcePath: URI
+
+  """
+  The HTTP URL for the blocked user.
+  """
+  blockedUserUrl: URI
+
+  """
+  The time the action was initiated
+  """
+  createdAt: PreciseDateTime!
+  id: ID!
+
+  """
+  The corresponding operation type for the action
+  """
+  operationType: OperationType
+
+  """
+  The Organization associated with the Audit Entry.
+  """
+  organization: Organization
+
+  """
+  The name of the Organization.
+  """
+  organizationName: String
+
+  """
+  The HTTP path for the organization
+  """
+  organizationResourcePath: URI
+
+  """
+  The HTTP URL for the organization
+  """
+  organizationUrl: URI
+
+  """
+  The user affected by the action
+  """
+  user: User
+
+  """
+  For actions involving two users, the actor is the initiator and the user is the affected user.
+  """
+  userLogin: String
+
+  """
+  The HTTP path for the user.
+  """
+  userResourcePath: URI
+
+  """
+  The HTTP URL for the user.
+  """
+  userUrl: URI
+}
+
+"""
+Audit log entry for a org.config.disable_collaborators_only event.
+"""
+type OrgConfigDisableCollaboratorsOnlyAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData {
+  """
+  The action name
+  """
+  action: String!
+
+  """
+  The user who initiated the action
+  """
+  actor: AuditEntryActor
+
+  """
+  The IP address of the actor
+  """
+  actorIp: String
+
+  """
+  A readable representation of the actor's location
+  """
+  actorLocation: ActorLocation
+
+  """
+  The username of the user who initiated the action
+  """
+  actorLogin: String
+
+  """
+  The HTTP path for the actor.
+  """
+  actorResourcePath: URI
+
+  """
+  The HTTP URL for the actor.
+  """
+  actorUrl: URI
+
+  """
+  The time the action was initiated
+  """
+  createdAt: PreciseDateTime!
+  id: ID!
+
+  """
+  The corresponding operation type for the action
+  """
+  operationType: OperationType
+
+  """
+  The Organization associated with the Audit Entry.
+  """
+  organization: Organization
+
+  """
+  The name of the Organization.
+  """
+  organizationName: String
+
+  """
+  The HTTP path for the organization
+  """
+  organizationResourcePath: URI
+
+  """
+  The HTTP URL for the organization
+  """
+  organizationUrl: URI
+
+  """
+  The user affected by the action
+  """
+  user: User
+
+  """
+  For actions involving two users, the actor is the initiator and the user is the affected user.
+  """
+  userLogin: String
+
+  """
+  The HTTP path for the user.
+  """
+  userResourcePath: URI
+
+  """
+  The HTTP URL for the user.
+  """
+  userUrl: URI
+}
+
+"""
+Audit log entry for a org.config.enable_collaborators_only event.
+"""
+type OrgConfigEnableCollaboratorsOnlyAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData {
+  """
+  The action name
+  """
+  action: String!
+
+  """
+  The user who initiated the action
+  """
+  actor: AuditEntryActor
+
+  """
+  The IP address of the actor
+  """
+  actorIp: String
+
+  """
+  A readable representation of the actor's location
+  """
+  actorLocation: ActorLocation
+
+  """
+  The username of the user who initiated the action
+  """
+  actorLogin: String
+
+  """
+  The HTTP path for the actor.
+  """
+  actorResourcePath: URI
+
+  """
+  The HTTP URL for the actor.
+  """
+  actorUrl: URI
+
+  """
+  The time the action was initiated
+  """
+  createdAt: PreciseDateTime!
+  id: ID!
+
+  """
+  The corresponding operation type for the action
+  """
+  operationType: OperationType
+
+  """
+  The Organization associated with the Audit Entry.
+  """
+  organization: Organization
+
+  """
+  The name of the Organization.
+  """
+  organizationName: String
+
+  """
+  The HTTP path for the organization
+  """
+  organizationResourcePath: URI
+
+  """
+  The HTTP URL for the organization
+  """
+  organizationUrl: URI
+
+  """
+  The user affected by the action
+  """
+  user: User
+
+  """
+  For actions involving two users, the actor is the initiator and the user is the affected user.
+  """
+  userLogin: String
+
+  """
+  The HTTP path for the user.
+  """
+  userResourcePath: URI
+
+  """
+  The HTTP URL for the user.
+  """
+  userUrl: URI
+}
+
+"""
+Audit log entry for a org.create event.
+"""
+type OrgCreateAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData {
+  """
+  The action name
+  """
+  action: String!
+
+  """
+  The user who initiated the action
+  """
+  actor: AuditEntryActor
+
+  """
+  The IP address of the actor
+  """
+  actorIp: String
+
+  """
+  A readable representation of the actor's location
+  """
+  actorLocation: ActorLocation
+
+  """
+  The username of the user who initiated the action
+  """
+  actorLogin: String
+
+  """
+  The HTTP path for the actor.
+  """
+  actorResourcePath: URI
+
+  """
+  The HTTP URL for the actor.
+  """
+  actorUrl: URI
+
+  """
+  The billing plan for the Organization.
+  """
+  billingPlan: OrgCreateAuditEntryBillingPlan
+
+  """
+  The time the action was initiated
+  """
+  createdAt: PreciseDateTime!
+  id: ID!
+
+  """
+  The corresponding operation type for the action
+  """
+  operationType: OperationType
+
+  """
+  The Organization associated with the Audit Entry.
+  """
+  organization: Organization
+
+  """
+  The name of the Organization.
+  """
+  organizationName: String
+
+  """
+  The HTTP path for the organization
+  """
+  organizationResourcePath: URI
+
+  """
+  The HTTP URL for the organization
+  """
+  organizationUrl: URI
+
+  """
+  The user affected by the action
+  """
+  user: User
+
+  """
+  For actions involving two users, the actor is the initiator and the user is the affected user.
+  """
+  userLogin: String
+
+  """
+  The HTTP path for the user.
+  """
+  userResourcePath: URI
+
+  """
+  The HTTP URL for the user.
+  """
+  userUrl: URI
+}
+
+"""
+The billing plans available for organizations.
+"""
+enum OrgCreateAuditEntryBillingPlan {
+  """
+  Team Plan
+  """
+  BUSINESS
+
+  """
+  Enterprise Cloud Plan
+  """
+  BUSINESS_PLUS
+
+  """
+  Free Plan
+  """
+  FREE
+
+  """
+  Tiered Per Seat Plan
+  """
+  TIERED_PER_SEAT
+
+  """
+  Legacy Unlimited Plan
+  """
+  UNLIMITED
+}
+
+"""
+Audit log entry for a org.disable_oauth_app_restrictions event.
+"""
+type OrgDisableOauthAppRestrictionsAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData {
+  """
+  The action name
+  """
+  action: String!
+
+  """
+  The user who initiated the action
+  """
+  actor: AuditEntryActor
+
+  """
+  The IP address of the actor
+  """
+  actorIp: String
+
+  """
+  A readable representation of the actor's location
+  """
+  actorLocation: ActorLocation
+
+  """
+  The username of the user who initiated the action
+  """
+  actorLogin: String
+
+  """
+  The HTTP path for the actor.
+  """
+  actorResourcePath: URI
+
+  """
+  The HTTP URL for the actor.
+  """
+  actorUrl: URI
+
+  """
+  The time the action was initiated
+  """
+  createdAt: PreciseDateTime!
+  id: ID!
+
+  """
+  The corresponding operation type for the action
+  """
+  operationType: OperationType
+
+  """
+  The Organization associated with the Audit Entry.
+  """
+  organization: Organization
+
+  """
+  The name of the Organization.
+  """
+  organizationName: String
+
+  """
+  The HTTP path for the organization
+  """
+  organizationResourcePath: URI
+
+  """
+  The HTTP URL for the organization
+  """
+  organizationUrl: URI
+
+  """
+  The user affected by the action
+  """
+  user: User
+
+  """
+  For actions involving two users, the actor is the initiator and the user is the affected user.
+  """
+  userLogin: String
+
+  """
+  The HTTP path for the user.
+  """
+  userResourcePath: URI
+
+  """
+  The HTTP URL for the user.
+  """
+  userUrl: URI
+}
+
+"""
+Audit log entry for a org.disable_saml event.
+"""
+type OrgDisableSamlAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData {
+  """
+  The action name
+  """
+  action: String!
+
+  """
+  The user who initiated the action
+  """
+  actor: AuditEntryActor
+
+  """
+  The IP address of the actor
+  """
+  actorIp: String
+
+  """
+  A readable representation of the actor's location
+  """
+  actorLocation: ActorLocation
+
+  """
+  The username of the user who initiated the action
+  """
+  actorLogin: String
+
+  """
+  The HTTP path for the actor.
+  """
+  actorResourcePath: URI
+
+  """
+  The HTTP URL for the actor.
+  """
+  actorUrl: URI
+
+  """
+  The time the action was initiated
+  """
+  createdAt: PreciseDateTime!
+
+  """
+  The SAML provider's digest algorithm URL.
+  """
+  digestMethodUrl: URI
+  id: ID!
+
+  """
+  The SAML provider's issuer URL.
+  """
+  issuerUrl: URI
+
+  """
+  The corresponding operation type for the action
+  """
+  operationType: OperationType
+
+  """
+  The Organization associated with the Audit Entry.
+  """
+  organization: Organization
+
+  """
+  The name of the Organization.
+  """
+  organizationName: String
+
+  """
+  The HTTP path for the organization
+  """
+  organizationResourcePath: URI
+
+  """
+  The HTTP URL for the organization
+  """
+  organizationUrl: URI
+
+  """
+  The SAML provider's signature algorithm URL.
+  """
+  signatureMethodUrl: URI
+
+  """
+  The SAML provider's single sign-on URL.
+  """
+  singleSignOnUrl: URI
+
+  """
+  The user affected by the action
+  """
+  user: User
+
+  """
+  For actions involving two users, the actor is the initiator and the user is the affected user.
+  """
+  userLogin: String
+
+  """
+  The HTTP path for the user.
+  """
+  userResourcePath: URI
+
+  """
+  The HTTP URL for the user.
+  """
+  userUrl: URI
+}
+
+"""
+Audit log entry for a org.disable_two_factor_requirement event.
+"""
+type OrgDisableTwoFactorRequirementAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData {
+  """
+  The action name
+  """
+  action: String!
+
+  """
+  The user who initiated the action
+  """
+  actor: AuditEntryActor
+
+  """
+  The IP address of the actor
+  """
+  actorIp: String
+
+  """
+  A readable representation of the actor's location
+  """
+  actorLocation: ActorLocation
+
+  """
+  The username of the user who initiated the action
+  """
+  actorLogin: String
+
+  """
+  The HTTP path for the actor.
+  """
+  actorResourcePath: URI
+
+  """
+  The HTTP URL for the actor.
+  """
+  actorUrl: URI
+
+  """
+  The time the action was initiated
+  """
+  createdAt: PreciseDateTime!
+  id: ID!
+
+  """
+  The corresponding operation type for the action
+  """
+  operationType: OperationType
+
+  """
+  The Organization associated with the Audit Entry.
+  """
+  organization: Organization
+
+  """
+  The name of the Organization.
+  """
+  organizationName: String
+
+  """
+  The HTTP path for the organization
+  """
+  organizationResourcePath: URI
+
+  """
+  The HTTP URL for the organization
+  """
+  organizationUrl: URI
+
+  """
+  The user affected by the action
+  """
+  user: User
+
+  """
+  For actions involving two users, the actor is the initiator and the user is the affected user.
+  """
+  userLogin: String
+
+  """
+  The HTTP path for the user.
+  """
+  userResourcePath: URI
+
+  """
+  The HTTP URL for the user.
+  """
+  userUrl: URI
+}
+
+"""
+Audit log entry for a org.enable_oauth_app_restrictions event.
+"""
+type OrgEnableOauthAppRestrictionsAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData {
+  """
+  The action name
+  """
+  action: String!
+
+  """
+  The user who initiated the action
+  """
+  actor: AuditEntryActor
+
+  """
+  The IP address of the actor
+  """
+  actorIp: String
+
+  """
+  A readable representation of the actor's location
+  """
+  actorLocation: ActorLocation
+
+  """
+  The username of the user who initiated the action
+  """
+  actorLogin: String
+
+  """
+  The HTTP path for the actor.
+  """
+  actorResourcePath: URI
+
+  """
+  The HTTP URL for the actor.
+  """
+  actorUrl: URI
+
+  """
+  The time the action was initiated
+  """
+  createdAt: PreciseDateTime!
+  id: ID!
+
+  """
+  The corresponding operation type for the action
+  """
+  operationType: OperationType
+
+  """
+  The Organization associated with the Audit Entry.
+  """
+  organization: Organization
+
+  """
+  The name of the Organization.
+  """
+  organizationName: String
+
+  """
+  The HTTP path for the organization
+  """
+  organizationResourcePath: URI
+
+  """
+  The HTTP URL for the organization
+  """
+  organizationUrl: URI
+
+  """
+  The user affected by the action
+  """
+  user: User
+
+  """
+  For actions involving two users, the actor is the initiator and the user is the affected user.
+  """
+  userLogin: String
+
+  """
+  The HTTP path for the user.
+  """
+  userResourcePath: URI
+
+  """
+  The HTTP URL for the user.
+  """
+  userUrl: URI
+}
+
+"""
+Audit log entry for a org.enable_saml event.
+"""
+type OrgEnableSamlAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData {
+  """
+  The action name
+  """
+  action: String!
+
+  """
+  The user who initiated the action
+  """
+  actor: AuditEntryActor
+
+  """
+  The IP address of the actor
+  """
+  actorIp: String
+
+  """
+  A readable representation of the actor's location
+  """
+  actorLocation: ActorLocation
+
+  """
+  The username of the user who initiated the action
+  """
+  actorLogin: String
+
+  """
+  The HTTP path for the actor.
+  """
+  actorResourcePath: URI
+
+  """
+  The HTTP URL for the actor.
+  """
+  actorUrl: URI
+
+  """
+  The time the action was initiated
+  """
+  createdAt: PreciseDateTime!
+
+  """
+  The SAML provider's digest algorithm URL.
+  """
+  digestMethodUrl: URI
+  id: ID!
+
+  """
+  The SAML provider's issuer URL.
+  """
+  issuerUrl: URI
+
+  """
+  The corresponding operation type for the action
+  """
+  operationType: OperationType
+
+  """
+  The Organization associated with the Audit Entry.
+  """
+  organization: Organization
+
+  """
+  The name of the Organization.
+  """
+  organizationName: String
+
+  """
+  The HTTP path for the organization
+  """
+  organizationResourcePath: URI
+
+  """
+  The HTTP URL for the organization
+  """
+  organizationUrl: URI
+
+  """
+  The SAML provider's signature algorithm URL.
+  """
+  signatureMethodUrl: URI
+
+  """
+  The SAML provider's single sign-on URL.
+  """
+  singleSignOnUrl: URI
+
+  """
+  The user affected by the action
+  """
+  user: User
+
+  """
+  For actions involving two users, the actor is the initiator and the user is the affected user.
+  """
+  userLogin: String
+
+  """
+  The HTTP path for the user.
+  """
+  userResourcePath: URI
+
+  """
+  The HTTP URL for the user.
+  """
+  userUrl: URI
+}
+
+"""
+Audit log entry for a org.enable_two_factor_requirement event.
+"""
+type OrgEnableTwoFactorRequirementAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData {
+  """
+  The action name
+  """
+  action: String!
+
+  """
+  The user who initiated the action
+  """
+  actor: AuditEntryActor
+
+  """
+  The IP address of the actor
+  """
+  actorIp: String
+
+  """
+  A readable representation of the actor's location
+  """
+  actorLocation: ActorLocation
+
+  """
+  The username of the user who initiated the action
+  """
+  actorLogin: String
+
+  """
+  The HTTP path for the actor.
+  """
+  actorResourcePath: URI
+
+  """
+  The HTTP URL for the actor.
+  """
+  actorUrl: URI
+
+  """
+  The time the action was initiated
+  """
+  createdAt: PreciseDateTime!
+  id: ID!
+
+  """
+  The corresponding operation type for the action
+  """
+  operationType: OperationType
+
+  """
+  The Organization associated with the Audit Entry.
+  """
+  organization: Organization
+
+  """
+  The name of the Organization.
+  """
+  organizationName: String
+
+  """
+  The HTTP path for the organization
+  """
+  organizationResourcePath: URI
+
+  """
+  The HTTP URL for the organization
+  """
+  organizationUrl: URI
+
+  """
+  The user affected by the action
+  """
+  user: User
+
+  """
+  For actions involving two users, the actor is the initiator and the user is the affected user.
+  """
+  userLogin: String
+
+  """
+  The HTTP path for the user.
+  """
+  userResourcePath: URI
+
+  """
+  The HTTP URL for the user.
+  """
+  userUrl: URI
+}
+
+"""
+Audit log entry for a org.invite_member event.
+"""
+type OrgInviteMemberAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData {
+  """
+  The action name
+  """
+  action: String!
+
+  """
+  The user who initiated the action
+  """
+  actor: AuditEntryActor
+
+  """
+  The IP address of the actor
+  """
+  actorIp: String
+
+  """
+  A readable representation of the actor's location
+  """
+  actorLocation: ActorLocation
+
+  """
+  The username of the user who initiated the action
+  """
+  actorLogin: String
+
+  """
+  The HTTP path for the actor.
+  """
+  actorResourcePath: URI
+
+  """
+  The HTTP URL for the actor.
+  """
+  actorUrl: URI
+
+  """
+  The time the action was initiated
+  """
+  createdAt: PreciseDateTime!
+
+  """
+  The email address of the organization invitation.
+  """
+  email: String
+  id: ID!
+
+  """
+  The corresponding operation type for the action
+  """
+  operationType: OperationType
+
+  """
+  The Organization associated with the Audit Entry.
+  """
+  organization: Organization
+
+  """
+  The organization invitation.
+  """
+  organizationInvitation: OrganizationInvitation
+
+  """
+  The name of the Organization.
+  """
+  organizationName: String
+
+  """
+  The HTTP path for the organization
+  """
+  organizationResourcePath: URI
+
+  """
+  The HTTP URL for the organization
+  """
+  organizationUrl: URI
+
+  """
+  The user affected by the action
+  """
+  user: User
+
+  """
+  For actions involving two users, the actor is the initiator and the user is the affected user.
+  """
+  userLogin: String
+
+  """
+  The HTTP path for the user.
+  """
+  userResourcePath: URI
+
+  """
+  The HTTP URL for the user.
+  """
+  userUrl: URI
+}
+
+"""
+Audit log entry for a org.invite_to_business event.
+"""
+type OrgInviteToBusinessAuditEntry implements AuditEntry & EnterpriseAuditEntryData & Node & OrganizationAuditEntryData {
+  """
+  The action name
+  """
+  action: String!
+
+  """
+  The user who initiated the action
+  """
+  actor: AuditEntryActor
+
+  """
+  The IP address of the actor
+  """
+  actorIp: String
+
+  """
+  A readable representation of the actor's location
+  """
+  actorLocation: ActorLocation
+
+  """
+  The username of the user who initiated the action
+  """
+  actorLogin: String
+
+  """
+  The HTTP path for the actor.
+  """
+  actorResourcePath: URI
+
+  """
+  The HTTP URL for the actor.
+  """
+  actorUrl: URI
+
+  """
+  The time the action was initiated
+  """
+  createdAt: PreciseDateTime!
+
+  """
+  The HTTP path for this enterprise.
+  """
+  enterpriseResourcePath: URI
+
+  """
+  The slug of the enterprise.
+  """
+  enterpriseSlug: String
+
+  """
+  The HTTP URL for this enterprise.
+  """
+  enterpriseUrl: URI
+  id: ID!
+
+  """
+  The corresponding operation type for the action
+  """
+  operationType: OperationType
+
+  """
+  The Organization associated with the Audit Entry.
+  """
+  organization: Organization
+
+  """
+  The name of the Organization.
+  """
+  organizationName: String
+
+  """
+  The HTTP path for the organization
+  """
+  organizationResourcePath: URI
+
+  """
+  The HTTP URL for the organization
+  """
+  organizationUrl: URI
+
+  """
+  The user affected by the action
+  """
+  user: User
+
+  """
+  For actions involving two users, the actor is the initiator and the user is the affected user.
+  """
+  userLogin: String
+
+  """
+  The HTTP path for the user.
+  """
+  userResourcePath: URI
+
+  """
+  The HTTP URL for the user.
+  """
+  userUrl: URI
+}
+
+"""
+Audit log entry for a org.oauth_app_access_approved event.
+"""
+type OrgOauthAppAccessApprovedAuditEntry implements AuditEntry & Node & OauthApplicationAuditEntryData & OrganizationAuditEntryData {
+  """
+  The action name
+  """
+  action: String!
+
+  """
+  The user who initiated the action
+  """
+  actor: AuditEntryActor
+
+  """
+  The IP address of the actor
+  """
+  actorIp: String
+
+  """
+  A readable representation of the actor's location
+  """
+  actorLocation: ActorLocation
+
+  """
+  The username of the user who initiated the action
+  """
+  actorLogin: String
+
+  """
+  The HTTP path for the actor.
+  """
+  actorResourcePath: URI
+
+  """
+  The HTTP URL for the actor.
+  """
+  actorUrl: URI
+
+  """
+  The time the action was initiated
+  """
+  createdAt: PreciseDateTime!
+  id: ID!
+
+  """
+  The name of the OAuth Application.
+  """
+  oauthApplicationName: String
+
+  """
+  The HTTP path for the OAuth Application
+  """
+  oauthApplicationResourcePath: URI
+
+  """
+  The HTTP URL for the OAuth Application
+  """
+  oauthApplicationUrl: URI
+
+  """
+  The corresponding operation type for the action
+  """
+  operationType: OperationType
+
+  """
+  The Organization associated with the Audit Entry.
+  """
+  organization: Organization
+
+  """
+  The name of the Organization.
+  """
+  organizationName: String
+
+  """
+  The HTTP path for the organization
+  """
+  organizationResourcePath: URI
+
+  """
+  The HTTP URL for the organization
+  """
+  organizationUrl: URI
+
+  """
+  The user affected by the action
+  """
+  user: User
+
+  """
+  For actions involving two users, the actor is the initiator and the user is the affected user.
+  """
+  userLogin: String
+
+  """
+  The HTTP path for the user.
+  """
+  userResourcePath: URI
+
+  """
+  The HTTP URL for the user.
+  """
+  userUrl: URI
+}
+
+"""
+Audit log entry for a org.oauth_app_access_denied event.
+"""
+type OrgOauthAppAccessDeniedAuditEntry implements AuditEntry & Node & OauthApplicationAuditEntryData & OrganizationAuditEntryData {
+  """
+  The action name
+  """
+  action: String!
+
+  """
+  The user who initiated the action
+  """
+  actor: AuditEntryActor
+
+  """
+  The IP address of the actor
+  """
+  actorIp: String
+
+  """
+  A readable representation of the actor's location
+  """
+  actorLocation: ActorLocation
+
+  """
+  The username of the user who initiated the action
+  """
+  actorLogin: String
+
+  """
+  The HTTP path for the actor.
+  """
+  actorResourcePath: URI
+
+  """
+  The HTTP URL for the actor.
+  """
+  actorUrl: URI
+
+  """
+  The time the action was initiated
+  """
+  createdAt: PreciseDateTime!
+  id: ID!
+
+  """
+  The name of the OAuth Application.
+  """
+  oauthApplicationName: String
+
+  """
+  The HTTP path for the OAuth Application
+  """
+  oauthApplicationResourcePath: URI
+
+  """
+  The HTTP URL for the OAuth Application
+  """
+  oauthApplicationUrl: URI
+
+  """
+  The corresponding operation type for the action
+  """
+  operationType: OperationType
+
+  """
+  The Organization associated with the Audit Entry.
+  """
+  organization: Organization
+
+  """
+  The name of the Organization.
+  """
+  organizationName: String
+
+  """
+  The HTTP path for the organization
+  """
+  organizationResourcePath: URI
+
+  """
+  The HTTP URL for the organization
+  """
+  organizationUrl: URI
+
+  """
+  The user affected by the action
+  """
+  user: User
+
+  """
+  For actions involving two users, the actor is the initiator and the user is the affected user.
+  """
+  userLogin: String
+
+  """
+  The HTTP path for the user.
+  """
+  userResourcePath: URI
+
+  """
+  The HTTP URL for the user.
+  """
+  userUrl: URI
+}
+
+"""
+Audit log entry for a org.oauth_app_access_requested event.
+"""
+type OrgOauthAppAccessRequestedAuditEntry implements AuditEntry & Node & OauthApplicationAuditEntryData & OrganizationAuditEntryData {
+  """
+  The action name
+  """
+  action: String!
+
+  """
+  The user who initiated the action
+  """
+  actor: AuditEntryActor
+
+  """
+  The IP address of the actor
+  """
+  actorIp: String
+
+  """
+  A readable representation of the actor's location
+  """
+  actorLocation: ActorLocation
+
+  """
+  The username of the user who initiated the action
+  """
+  actorLogin: String
+
+  """
+  The HTTP path for the actor.
+  """
+  actorResourcePath: URI
+
+  """
+  The HTTP URL for the actor.
+  """
+  actorUrl: URI
+
+  """
+  The time the action was initiated
+  """
+  createdAt: PreciseDateTime!
+  id: ID!
+
+  """
+  The name of the OAuth Application.
+  """
+  oauthApplicationName: String
+
+  """
+  The HTTP path for the OAuth Application
+  """
+  oauthApplicationResourcePath: URI
+
+  """
+  The HTTP URL for the OAuth Application
+  """
+  oauthApplicationUrl: URI
+
+  """
+  The corresponding operation type for the action
+  """
+  operationType: OperationType
+
+  """
+  The Organization associated with the Audit Entry.
+  """
+  organization: Organization
+
+  """
+  The name of the Organization.
+  """
+  organizationName: String
+
+  """
+  The HTTP path for the organization
+  """
+  organizationResourcePath: URI
+
+  """
+  The HTTP URL for the organization
+  """
+  organizationUrl: URI
+
+  """
+  The user affected by the action
+  """
+  user: User
+
+  """
+  For actions involving two users, the actor is the initiator and the user is the affected user.
+  """
+  userLogin: String
+
+  """
+  The HTTP path for the user.
+  """
+  userResourcePath: URI
+
+  """
+  The HTTP URL for the user.
+  """
+  userUrl: URI
+}
+
+"""
+Audit log entry for a org.remove_billing_manager event.
+"""
+type OrgRemoveBillingManagerAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData {
+  """
+  The action name
+  """
+  action: String!
+
+  """
+  The user who initiated the action
+  """
+  actor: AuditEntryActor
+
+  """
+  The IP address of the actor
+  """
+  actorIp: String
+
+  """
+  A readable representation of the actor's location
+  """
+  actorLocation: ActorLocation
+
+  """
+  The username of the user who initiated the action
+  """
+  actorLogin: String
+
+  """
+  The HTTP path for the actor.
+  """
+  actorResourcePath: URI
+
+  """
+  The HTTP URL for the actor.
+  """
+  actorUrl: URI
+
+  """
+  The time the action was initiated
+  """
+  createdAt: PreciseDateTime!
+  id: ID!
+
+  """
+  The corresponding operation type for the action
+  """
+  operationType: OperationType
+
+  """
+  The Organization associated with the Audit Entry.
+  """
+  organization: Organization
+
+  """
+  The name of the Organization.
+  """
+  organizationName: String
+
+  """
+  The HTTP path for the organization
+  """
+  organizationResourcePath: URI
+
+  """
+  The HTTP URL for the organization
+  """
+  organizationUrl: URI
+
+  """
+  The reason for the billing manager being removed.
+  """
+  reason: OrgRemoveBillingManagerAuditEntryReason
+
+  """
+  The user affected by the action
+  """
+  user: User
+
+  """
+  For actions involving two users, the actor is the initiator and the user is the affected user.
+  """
+  userLogin: String
+
+  """
+  The HTTP path for the user.
+  """
+  userResourcePath: URI
+
+  """
+  The HTTP URL for the user.
+  """
+  userUrl: URI
+}
+
+"""
+The reason a billing manager was removed from an Organization.
+"""
+enum OrgRemoveBillingManagerAuditEntryReason {
+  """
+  SAML external identity missing
+  """
+  SAML_EXTERNAL_IDENTITY_MISSING
+
+  """
+  SAML SSO enforcement requires an external identity
+  """
+  SAML_SSO_ENFORCEMENT_REQUIRES_EXTERNAL_IDENTITY
+
+  """
+  The organization required 2FA of its billing managers and this user did not have 2FA enabled.
+  """
+  TWO_FACTOR_REQUIREMENT_NON_COMPLIANCE
+}
+
+"""
+Audit log entry for a org.remove_member event.
+"""
+type OrgRemoveMemberAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData {
+  """
+  The action name
+  """
+  action: String!
+
+  """
+  The user who initiated the action
+  """
+  actor: AuditEntryActor
+
+  """
+  The IP address of the actor
+  """
+  actorIp: String
+
+  """
+  A readable representation of the actor's location
+  """
+  actorLocation: ActorLocation
+
+  """
+  The username of the user who initiated the action
+  """
+  actorLogin: String
+
+  """
+  The HTTP path for the actor.
+  """
+  actorResourcePath: URI
+
+  """
+  The HTTP URL for the actor.
+  """
+  actorUrl: URI
+
+  """
+  The time the action was initiated
+  """
+  createdAt: PreciseDateTime!
+  id: ID!
+
+  """
+  The types of membership the member has with the organization.
+  """
+  membershipTypes: [OrgRemoveMemberAuditEntryMembershipType!]
+
+  """
+  The corresponding operation type for the action
+  """
+  operationType: OperationType
+
+  """
+  The Organization associated with the Audit Entry.
+  """
+  organization: Organization
+
+  """
+  The name of the Organization.
+  """
+  organizationName: String
+
+  """
+  The HTTP path for the organization
+  """
+  organizationResourcePath: URI
+
+  """
+  The HTTP URL for the organization
+  """
+  organizationUrl: URI
+
+  """
+  The reason for the member being removed.
+  """
+  reason: OrgRemoveMemberAuditEntryReason
+
+  """
+  The user affected by the action
+  """
+  user: User
+
+  """
+  For actions involving two users, the actor is the initiator and the user is the affected user.
+  """
+  userLogin: String
+
+  """
+  The HTTP path for the user.
+  """
+  userResourcePath: URI
+
+  """
+  The HTTP URL for the user.
+  """
+  userUrl: URI
+}
+
+"""
+The type of membership a user has with an Organization.
+"""
+enum OrgRemoveMemberAuditEntryMembershipType {
+  """
+  Organization administrators have full access and can change several settings,
+  including the names of repositories that belong to the Organization and Owners
+  team membership. In addition, organization admins can delete the organization
+  and all of its repositories.
+  """
+  ADMIN
+
+  """
+  A billing manager is a user who manages the billing settings for the Organization, such as updating payment information.
+  """
+  BILLING_MANAGER
+
+  """
+  A direct member is a user that is a member of the Organization.
+  """
+  DIRECT_MEMBER
+
+  """
+  An outside collaborator is a person who isn't explicitly a member of the
+  Organization, but who has Read, Write, or Admin permissions to one or more
+  repositories in the organization.
+  """
+  OUTSIDE_COLLABORATOR
+
+  """
+  An unaffiliated collaborator is a person who is not a member of the
+  Organization and does not have access to any repositories in the Organization.
+  """
+  UNAFFILIATED
+}
+
+"""
+The reason a member was removed from an Organization.
+"""
+enum OrgRemoveMemberAuditEntryReason {
+  """
+  SAML external identity missing
+  """
+  SAML_EXTERNAL_IDENTITY_MISSING
+
+  """
+  SAML SSO enforcement requires an external identity
+  """
+  SAML_SSO_ENFORCEMENT_REQUIRES_EXTERNAL_IDENTITY
+
+  """
+  User was removed from organization during account recovery
+  """
+  TWO_FACTOR_ACCOUNT_RECOVERY
+
+  """
+  The organization required 2FA of its billing managers and this user did not have 2FA enabled.
+  """
+  TWO_FACTOR_REQUIREMENT_NON_COMPLIANCE
+
+  """
+  User account has been deleted
+  """
+  USER_ACCOUNT_DELETED
+}
+
+"""
+Audit log entry for a org.remove_outside_collaborator event.
+"""
+type OrgRemoveOutsideCollaboratorAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData {
+  """
+  The action name
+  """
+  action: String!
+
+  """
+  The user who initiated the action
+  """
+  actor: AuditEntryActor
+
+  """
+  The IP address of the actor
+  """
+  actorIp: String
+
+  """
+  A readable representation of the actor's location
+  """
+  actorLocation: ActorLocation
+
+  """
+  The username of the user who initiated the action
+  """
+  actorLogin: String
+
+  """
+  The HTTP path for the actor.
+  """
+  actorResourcePath: URI
+
+  """
+  The HTTP URL for the actor.
+  """
+  actorUrl: URI
+
+  """
+  The time the action was initiated
+  """
+  createdAt: PreciseDateTime!
+  id: ID!
+
+  """
+  The types of membership the outside collaborator has with the organization.
+  """
+  membershipTypes: [OrgRemoveOutsideCollaboratorAuditEntryMembershipType!]
+
+  """
+  The corresponding operation type for the action
+  """
+  operationType: OperationType
+
+  """
+  The Organization associated with the Audit Entry.
+  """
+  organization: Organization
+
+  """
+  The name of the Organization.
+  """
+  organizationName: String
+
+  """
+  The HTTP path for the organization
+  """
+  organizationResourcePath: URI
+
+  """
+  The HTTP URL for the organization
+  """
+  organizationUrl: URI
+
+  """
+  The reason for the outside collaborator being removed from the Organization.
+  """
+  reason: OrgRemoveOutsideCollaboratorAuditEntryReason
+
+  """
+  The user affected by the action
+  """
+  user: User
+
+  """
+  For actions involving two users, the actor is the initiator and the user is the affected user.
+  """
+  userLogin: String
+
+  """
+  The HTTP path for the user.
+  """
+  userResourcePath: URI
+
+  """
+  The HTTP URL for the user.
+  """
+  userUrl: URI
+}
+
+"""
+The type of membership a user has with an Organization.
+"""
+enum OrgRemoveOutsideCollaboratorAuditEntryMembershipType {
+  """
+  A billing manager is a user who manages the billing settings for the Organization, such as updating payment information.
+  """
+  BILLING_MANAGER
+
+  """
+  An outside collaborator is a person who isn't explicitly a member of the
+  Organization, but who has Read, Write, or Admin permissions to one or more
+  repositories in the organization.
+  """
+  OUTSIDE_COLLABORATOR
+
+  """
+  An unaffiliated collaborator is a person who is not a member of the
+  Organization and does not have access to any repositories in the organization.
+  """
+  UNAFFILIATED
+}
+
+"""
+The reason an outside collaborator was removed from an Organization.
+"""
+enum OrgRemoveOutsideCollaboratorAuditEntryReason {
+  """
+  SAML external identity missing
+  """
+  SAML_EXTERNAL_IDENTITY_MISSING
+
+  """
+  The organization required 2FA of its billing managers and this user did not have 2FA enabled.
+  """
+  TWO_FACTOR_REQUIREMENT_NON_COMPLIANCE
+}
+
+"""
+Audit log entry for a org.restore_member event.
+"""
+type OrgRestoreMemberAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData {
+  """
+  The action name
+  """
+  action: String!
+
+  """
+  The user who initiated the action
+  """
+  actor: AuditEntryActor
+
+  """
+  The IP address of the actor
+  """
+  actorIp: String
+
+  """
+  A readable representation of the actor's location
+  """
+  actorLocation: ActorLocation
+
+  """
+  The username of the user who initiated the action
+  """
+  actorLogin: String
+
+  """
+  The HTTP path for the actor.
+  """
+  actorResourcePath: URI
+
+  """
+  The HTTP URL for the actor.
+  """
+  actorUrl: URI
+
+  """
+  The time the action was initiated
+  """
+  createdAt: PreciseDateTime!
+  id: ID!
+
+  """
+  The corresponding operation type for the action
+  """
+  operationType: OperationType
+
+  """
+  The Organization associated with the Audit Entry.
+  """
+  organization: Organization
+
+  """
+  The name of the Organization.
+  """
+  organizationName: String
+
+  """
+  The HTTP path for the organization
+  """
+  organizationResourcePath: URI
+
+  """
+  The HTTP URL for the organization
+  """
+  organizationUrl: URI
+
+  """
+  The number of custom email routings for the restored member.
+  """
+  restoredCustomEmailRoutingsCount: Int
+
+  """
+  The number of issue assignments for the restored member.
+  """
+  restoredIssueAssignmentsCount: Int
+
+  """
+  Restored organization membership objects.
+  """
+  restoredMemberships: [OrgRestoreMemberAuditEntryMembership!]
+
+  """
+  The number of restored memberships.
+  """
+  restoredMembershipsCount: Int
+
+  """
+  The number of repositories of the restored member.
+  """
+  restoredRepositoriesCount: Int
+
+  """
+  The number of starred repositories for the restored member.
+  """
+  restoredRepositoryStarsCount: Int
+
+  """
+  The number of watched repositories for the restored member.
+  """
+  restoredRepositoryWatchesCount: Int
+
+  """
+  The user affected by the action
+  """
+  user: User
+
+  """
+  For actions involving two users, the actor is the initiator and the user is the affected user.
+  """
+  userLogin: String
+
+  """
+  The HTTP path for the user.
+  """
+  userResourcePath: URI
+
+  """
+  The HTTP URL for the user.
+  """
+  userUrl: URI
+}
+
+"""
+Types of memberships that can be restored for an Organization member.
+"""
+union OrgRestoreMemberAuditEntryMembership = OrgRestoreMemberMembershipOrganizationAuditEntryData | OrgRestoreMemberMembershipRepositoryAuditEntryData | OrgRestoreMemberMembershipTeamAuditEntryData
+
+"""
+Metadata for an organization membership for org.restore_member actions
+"""
+type OrgRestoreMemberMembershipOrganizationAuditEntryData implements OrganizationAuditEntryData {
+  """
+  The Organization associated with the Audit Entry.
+  """
+  organization: Organization
+
+  """
+  The name of the Organization.
+  """
+  organizationName: String
+
+  """
+  The HTTP path for the organization
+  """
+  organizationResourcePath: URI
+
+  """
+  The HTTP URL for the organization
+  """
+  organizationUrl: URI
+}
+
+"""
+Metadata for a repository membership for org.restore_member actions
+"""
+type OrgRestoreMemberMembershipRepositoryAuditEntryData implements RepositoryAuditEntryData {
+  """
+  The repository associated with the action
+  """
+  repository: Repository
+
+  """
+  The name of the repository
+  """
+  repositoryName: String
+
+  """
+  The HTTP path for the repository
+  """
+  repositoryResourcePath: URI
+
+  """
+  The HTTP URL for the repository
+  """
+  repositoryUrl: URI
+}
+
+"""
+Metadata for a team membership for org.restore_member actions
+"""
+type OrgRestoreMemberMembershipTeamAuditEntryData implements TeamAuditEntryData {
+  """
+  The team associated with the action
+  """
+  team: Team
+
+  """
+  The name of the team
+  """
+  teamName: String
+
+  """
+  The HTTP path for this team
+  """
+  teamResourcePath: URI
+
+  """
+  The HTTP URL for this team
+  """
+  teamUrl: URI
+}
+
+"""
+Audit log entry for a org.unblock_user
+"""
+type OrgUnblockUserAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData {
+  """
+  The action name
+  """
+  action: String!
+
+  """
+  The user who initiated the action
+  """
+  actor: AuditEntryActor
+
+  """
+  The IP address of the actor
+  """
+  actorIp: String
+
+  """
+  A readable representation of the actor's location
+  """
+  actorLocation: ActorLocation
+
+  """
+  The username of the user who initiated the action
+  """
+  actorLogin: String
+
+  """
+  The HTTP path for the actor.
+  """
+  actorResourcePath: URI
+
+  """
+  The HTTP URL for the actor.
+  """
+  actorUrl: URI
+
+  """
+  The user being unblocked by the organization.
+  """
+  blockedUser: User
+
+  """
+  The username of the blocked user.
+  """
+  blockedUserName: String
+
+  """
+  The HTTP path for the blocked user.
+  """
+  blockedUserResourcePath: URI
+
+  """
+  The HTTP URL for the blocked user.
+  """
+  blockedUserUrl: URI
+
+  """
+  The time the action was initiated
+  """
+  createdAt: PreciseDateTime!
+  id: ID!
+
+  """
+  The corresponding operation type for the action
+  """
+  operationType: OperationType
+
+  """
+  The Organization associated with the Audit Entry.
+  """
+  organization: Organization
+
+  """
+  The name of the Organization.
+  """
+  organizationName: String
+
+  """
+  The HTTP path for the organization
+  """
+  organizationResourcePath: URI
+
+  """
+  The HTTP URL for the organization
+  """
+  organizationUrl: URI
+
+  """
+  The user affected by the action
+  """
+  user: User
+
+  """
+  For actions involving two users, the actor is the initiator and the user is the affected user.
+  """
+  userLogin: String
+
+  """
+  The HTTP path for the user.
+  """
+  userResourcePath: URI
+
+  """
+  The HTTP URL for the user.
+  """
+  userUrl: URI
+}
+
+"""
+Audit log entry for a org.update_default_repository_permission
+"""
+type OrgUpdateDefaultRepositoryPermissionAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData {
+  """
+  The action name
+  """
+  action: String!
+
+  """
+  The user who initiated the action
+  """
+  actor: AuditEntryActor
+
+  """
+  The IP address of the actor
+  """
+  actorIp: String
+
+  """
+  A readable representation of the actor's location
+  """
+  actorLocation: ActorLocation
+
+  """
+  The username of the user who initiated the action
+  """
+  actorLogin: String
+
+  """
+  The HTTP path for the actor.
+  """
+  actorResourcePath: URI
+
+  """
+  The HTTP URL for the actor.
+  """
+  actorUrl: URI
+
+  """
+  The time the action was initiated
+  """
+  createdAt: PreciseDateTime!
+  id: ID!
+
+  """
+  The corresponding operation type for the action
+  """
+  operationType: OperationType
+
+  """
+  The Organization associated with the Audit Entry.
+  """
+  organization: Organization
+
+  """
+  The name of the Organization.
+  """
+  organizationName: String
+
+  """
+  The HTTP path for the organization
+  """
+  organizationResourcePath: URI
+
+  """
+  The HTTP URL for the organization
+  """
+  organizationUrl: URI
+
+  """
+  The new default repository permission level for the organization.
+  """
+  permission: OrgUpdateDefaultRepositoryPermissionAuditEntryPermission
+
+  """
+  The former default repository permission level for the organization.
+  """
+  permissionWas: OrgUpdateDefaultRepositoryPermissionAuditEntryPermission
+
+  """
+  The user affected by the action
+  """
+  user: User
+
+  """
+  For actions involving two users, the actor is the initiator and the user is the affected user.
+  """
+  userLogin: String
+
+  """
+  The HTTP path for the user.
+  """
+  userResourcePath: URI
+
+  """
+  The HTTP URL for the user.
+  """
+  userUrl: URI
+}
+
+"""
+The default permission a repository can have in an Organization.
+"""
+enum OrgUpdateDefaultRepositoryPermissionAuditEntryPermission {
+  """
+  Can read, clone, push, and add collaborators to repositories.
+  """
+  ADMIN
+
+  """
+  No default permission value.
+  """
+  NONE
+
+  """
+  Can read and clone repositories.
+  """
+  READ
+
+  """
+  Can read, clone and push to repositories.
+  """
+  WRITE
+}
+
+"""
+Audit log entry for a org.update_member event.
+"""
+type OrgUpdateMemberAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData {
+  """
+  The action name
+  """
+  action: String!
+
+  """
+  The user who initiated the action
+  """
+  actor: AuditEntryActor
+
+  """
+  The IP address of the actor
+  """
+  actorIp: String
+
+  """
+  A readable representation of the actor's location
+  """
+  actorLocation: ActorLocation
+
+  """
+  The username of the user who initiated the action
+  """
+  actorLogin: String
+
+  """
+  The HTTP path for the actor.
+  """
+  actorResourcePath: URI
+
+  """
+  The HTTP URL for the actor.
+  """
+  actorUrl: URI
+
+  """
+  The time the action was initiated
+  """
+  createdAt: PreciseDateTime!
+  id: ID!
+
+  """
+  The corresponding operation type for the action
+  """
+  operationType: OperationType
+
+  """
+  The Organization associated with the Audit Entry.
+  """
+  organization: Organization
+
+  """
+  The name of the Organization.
+  """
+  organizationName: String
+
+  """
+  The HTTP path for the organization
+  """
+  organizationResourcePath: URI
+
+  """
+  The HTTP URL for the organization
+  """
+  organizationUrl: URI
+
+  """
+  The new member permission level for the organization.
+  """
+  permission: OrgUpdateMemberAuditEntryPermission
+
+  """
+  The former member permission level for the organization.
+  """
+  permissionWas: OrgUpdateMemberAuditEntryPermission
+
+  """
+  The user affected by the action
+  """
+  user: User
+
+  """
+  For actions involving two users, the actor is the initiator and the user is the affected user.
+  """
+  userLogin: String
+
+  """
+  The HTTP path for the user.
+  """
+  userResourcePath: URI
+
+  """
+  The HTTP URL for the user.
+  """
+  userUrl: URI
+}
+
+"""
+The permissions available to members on an Organization.
+"""
+enum OrgUpdateMemberAuditEntryPermission {
+  """
+  Can read, clone, push, and add collaborators to repositories.
+  """
+  ADMIN
+
+  """
+  Can read and clone repositories.
+  """
+  READ
+}
+
+"""
+Audit log entry for a org.update_member_repository_creation_permission event.
+"""
+type OrgUpdateMemberRepositoryCreationPermissionAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData {
+  """
+  The action name
+  """
+  action: String!
+
+  """
+  The user who initiated the action
+  """
+  actor: AuditEntryActor
+
+  """
+  The IP address of the actor
+  """
+  actorIp: String
+
+  """
+  A readable representation of the actor's location
+  """
+  actorLocation: ActorLocation
+
+  """
+  The username of the user who initiated the action
+  """
+  actorLogin: String
+
+  """
+  The HTTP path for the actor.
+  """
+  actorResourcePath: URI
+
+  """
+  The HTTP URL for the actor.
+  """
+  actorUrl: URI
+
+  """
+  Can members create repositories in the organization.
+  """
+  canCreateRepositories: Boolean
+
+  """
+  The time the action was initiated
+  """
+  createdAt: PreciseDateTime!
+  id: ID!
+
+  """
+  The corresponding operation type for the action
+  """
+  operationType: OperationType
+
+  """
+  The Organization associated with the Audit Entry.
+  """
+  organization: Organization
+
+  """
+  The name of the Organization.
+  """
+  organizationName: String
+
+  """
+  The HTTP path for the organization
+  """
+  organizationResourcePath: URI
+
+  """
+  The HTTP URL for the organization
+  """
+  organizationUrl: URI
+
+  """
+  The user affected by the action
+  """
+  user: User
+
+  """
+  For actions involving two users, the actor is the initiator and the user is the affected user.
+  """
+  userLogin: String
+
+  """
+  The HTTP path for the user.
+  """
+  userResourcePath: URI
+
+  """
+  The HTTP URL for the user.
+  """
+  userUrl: URI
+
+  """
+  The permission for visibility level of repositories for this organization.
+  """
+  visibility: OrgUpdateMemberRepositoryCreationPermissionAuditEntryVisibility
+}
+
+"""
+The permissions available for repository creation on an Organization.
+"""
+enum OrgUpdateMemberRepositoryCreationPermissionAuditEntryVisibility {
+  """
+  All organization members are restricted from creating any repositories.
+  """
+  ALL
+
+  """
+  All organization members are restricted from creating internal repositories.
+  """
+  INTERNAL
+
+  """
+  All organization members are allowed to create any repositories.
+  """
+  NONE
+
+  """
+  All organization members are restricted from creating private repositories.
+  """
+  PRIVATE
+
+  """
+  All organization members are restricted from creating private or internal repositories.
+  """
+  PRIVATE_INTERNAL
+
+  """
+  All organization members are restricted from creating public repositories.
+  """
+  PUBLIC
+
+  """
+  All organization members are restricted from creating public or internal repositories.
+  """
+  PUBLIC_INTERNAL
+
+  """
+  All organization members are restricted from creating public or private repositories.
+  """
+  PUBLIC_PRIVATE
+}
+
+"""
+Audit log entry for a org.update_member_repository_invitation_permission event.
+"""
+type OrgUpdateMemberRepositoryInvitationPermissionAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData {
+  """
+  The action name
+  """
+  action: String!
+
+  """
+  The user who initiated the action
+  """
+  actor: AuditEntryActor
+
+  """
+  The IP address of the actor
+  """
+  actorIp: String
+
+  """
+  A readable representation of the actor's location
+  """
+  actorLocation: ActorLocation
+
+  """
+  The username of the user who initiated the action
+  """
+  actorLogin: String
+
+  """
+  The HTTP path for the actor.
+  """
+  actorResourcePath: URI
+
+  """
+  The HTTP URL for the actor.
+  """
+  actorUrl: URI
+
+  """
+  Can outside collaborators be invited to repositories in the organization.
+  """
+  canInviteOutsideCollaboratorsToRepositories: Boolean
+
+  """
+  The time the action was initiated
+  """
+  createdAt: PreciseDateTime!
+  id: ID!
+
+  """
+  The corresponding operation type for the action
+  """
+  operationType: OperationType
+
+  """
+  The Organization associated with the Audit Entry.
+  """
+  organization: Organization
+
+  """
+  The name of the Organization.
+  """
+  organizationName: String
+
+  """
+  The HTTP path for the organization
+  """
+  organizationResourcePath: URI
+
+  """
+  The HTTP URL for the organization
+  """
+  organizationUrl: URI
+
+  """
+  The user affected by the action
+  """
+  user: User
+
+  """
+  For actions involving two users, the actor is the initiator and the user is the affected user.
+  """
+  userLogin: String
+
+  """
+  The HTTP path for the user.
+  """
+  userResourcePath: URI
+
+  """
+  The HTTP URL for the user.
+  """
+  userUrl: URI
+}
+
+"""
+An account on GitHub, with one or more owners, that has repositories, members and teams.
+"""
+type Organization implements Actor & MemberStatusable & Node & PackageOwner & ProfileOwner & ProjectOwner & RepositoryOwner & Sponsorable & UniformResourceLocatable {
+  """
+  Determine if this repository owner has any items that can be pinned to their profile.
+  """
+  anyPinnableItems(
+    """
+    Filter to only a particular kind of pinnable item.
+    """
+    type: PinnableItemType
+  ): Boolean!
+
+  """
+  Audit log entries of the organization
+  """
+  auditLog(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for the returned audit log entries.
+    """
+    orderBy: AuditLogOrder = {field: CREATED_AT, direction: DESC}
+
+    """
+    The query string to filter audit entries
+    """
+    query: String
+  ): OrganizationAuditEntryConnection!
+
+  """
+  A URL pointing to the organization's public avatar.
+  """
+  avatarUrl(
+    """
+    The size of the resulting square image.
+    """
+    size: Int
+  ): URI!
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+
+  """
+  Identifies the primary key from the database.
+  """
+  databaseId: Int
+
+  """
+  The organization's public profile description.
+  """
+  description: String
+
+  """
+  The organization's public profile description rendered to HTML.
+  """
+  descriptionHTML: String
+
+  """
+  A list of domains owned by the organization.
+  """
+  domains(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Filter by if the domain is verified.
+    """
+    isVerified: Boolean
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for verifiable domains returned.
+    """
+    orderBy: VerifiableDomainOrder = {field: DOMAIN, direction: ASC}
+  ): VerifiableDomainConnection
+
+  """
+  The organization's public email.
+  """
+  email: String
+
+  """
+  True if this user/organization has a GitHub Sponsors listing.
+  """
+  hasSponsorsListing: Boolean!
+  id: ID!
+
+  """
+  The interaction ability settings for this organization.
+  """
+  interactionAbility: RepositoryInteractionAbility
+
+  """
+  The setting value for whether the organization has an IP allow list enabled.
+  """
+  ipAllowListEnabledSetting: IpAllowListEnabledSettingValue!
+
+  """
+  The IP addresses that are allowed to access resources owned by the organization.
+  """
+  ipAllowListEntries(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for IP allow list entries returned.
+    """
+    orderBy: IpAllowListEntryOrder = {field: ALLOW_LIST_VALUE, direction: ASC}
+  ): IpAllowListEntryConnection!
+
+  """
+  Check if the given account is sponsoring this user/organization.
+  """
+  isSponsoredBy(
+    """
+    The target account's login.
+    """
+    accountLogin: String!
+  ): Boolean!
+
+  """
+  True if the viewer is sponsored by this user/organization.
+  """
+  isSponsoringViewer: Boolean!
+
+  """
+  Whether the organization has verified its profile email and website, always false on Enterprise.
+  """
+  isVerified: Boolean!
+
+  """
+  Showcases a selection of repositories and gists that the profile owner has
+  either curated or that have been selected automatically based on popularity.
+  """
+  itemShowcase: ProfileItemShowcase!
+
+  """
+  The organization's public profile location.
+  """
+  location: String
+
+  """
+  The organization's login name.
+  """
+  login: String!
+
+  """
+  Get the status messages members of this entity have set that are either public or visible only to the organization.
+  """
+  memberStatuses(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for user statuses returned from the connection.
+    """
+    orderBy: UserStatusOrder = {field: UPDATED_AT, direction: DESC}
+  ): UserStatusConnection!
+
+  """
+  A list of users who are members of this organization.
+  """
+  membersWithRole(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+  ): OrganizationMemberConnection!
+
+  """
+  The organization's public profile name.
+  """
+  name: String
+
+  """
+  The HTTP path creating a new team
+  """
+  newTeamResourcePath: URI!
+
+  """
+  The HTTP URL creating a new team
+  """
+  newTeamUrl: URI!
+
+  """
+  Indicates if email notification delivery for this organization is restricted to verified domains.
+  """
+  notificationDeliveryRestrictionEnabledSetting: NotificationRestrictionSettingValue!
+
+  """
+  The billing email for the organization.
+  """
+  organizationBillingEmail: String
+
+  """
+  A list of packages under the owner.
+  """
+  packages(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Find packages by their names.
+    """
+    names: [String]
+
+    """
+    Ordering of the returned packages.
+    """
+    orderBy: PackageOrder = {field: CREATED_AT, direction: DESC}
+
+    """
+    Filter registry package by type.
+    """
+    packageType: PackageType
+
+    """
+    Find packages in a repository by ID.
+    """
+    repositoryId: ID
+  ): PackageConnection!
+
+  """
+  A list of users who have been invited to join this organization.
+  """
+  pendingMembers(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+  ): UserConnection!
+
+  """
+  A list of repositories and gists this profile owner can pin to their profile.
+  """
+  pinnableItems(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Filter the types of pinnable items that are returned.
+    """
+    types: [PinnableItemType!]
+  ): PinnableItemConnection!
+
+  """
+  A list of repositories and gists this profile owner has pinned to their profile
+  """
+  pinnedItems(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Filter the types of pinned items that are returned.
+    """
+    types: [PinnableItemType!]
+  ): PinnableItemConnection!
+
+  """
+  Returns how many more items this profile owner can pin to their profile.
+  """
+  pinnedItemsRemaining: Int!
+
+  """
+  Find project by number.
+  """
+  project(
+    """
+    The project number to find.
+    """
+    number: Int!
+  ): Project
+
+  """
+  A list of projects under the owner.
+  """
+  projects(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for projects returned from the connection
+    """
+    orderBy: ProjectOrder
+
+    """
+    Query to search projects by, currently only searching by name.
+    """
+    search: String
+
+    """
+    A list of states to filter the projects by.
+    """
+    states: [ProjectState!]
+  ): ProjectConnection!
+
+  """
+  The HTTP path listing organization's projects
+  """
+  projectsResourcePath: URI!
+
+  """
+  The HTTP URL listing organization's projects
+  """
+  projectsUrl: URI!
+
+  """
+  A list of repositories that the user owns.
+  """
+  repositories(
+    """
+    Array of viewer's affiliation options for repositories returned from the
+    connection. For example, OWNER will include only repositories that the
+    current viewer owns.
+    """
+    affiliations: [RepositoryAffiliation]
+
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    If non-null, filters repositories according to whether they are forks of another repository
+    """
+    isFork: Boolean
+
+    """
+    If non-null, filters repositories according to whether they have been locked
+    """
+    isLocked: Boolean
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for repositories returned from the connection
+    """
+    orderBy: RepositoryOrder
+
+    """
+    Array of owner's affiliation options for repositories returned from the
+    connection. For example, OWNER will include only repositories that the
+    organization or user being viewed owns.
+    """
+    ownerAffiliations: [RepositoryAffiliation] = [OWNER, COLLABORATOR]
+
+    """
+    If non-null, filters repositories according to privacy
+    """
+    privacy: RepositoryPrivacy
+  ): RepositoryConnection!
+
+  """
+  Find Repository.
+  """
+  repository(
+    """
+    Name of Repository to find.
+    """
+    name: String!
+  ): Repository
+
+  """
+  When true the organization requires all members, billing managers, and outside
+  collaborators to enable two-factor authentication.
+  """
+  requiresTwoFactorAuthentication: Boolean
+
+  """
+  The HTTP path for this organization.
+  """
+  resourcePath: URI!
+
+  """
+  The Organization's SAML identity providers
+  """
+  samlIdentityProvider: OrganizationIdentityProvider
+
+  """
+  The GitHub Sponsors listing for this user or organization.
+  """
+  sponsorsListing: SponsorsListing
+
+  """
+  The viewer's sponsorship of this entity.
+  """
+  sponsorshipForViewerAsSponsor: Sponsorship
+
+  """
+  This object's sponsorships as the maintainer.
+  """
+  sponsorshipsAsMaintainer(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Whether or not to include private sponsorships in the result set
+    """
+    includePrivate: Boolean = false
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for sponsorships returned from this connection. If left
+    blank, the sponsorships will be ordered based on relevancy to the viewer.
+    """
+    orderBy: SponsorshipOrder
+  ): SponsorshipConnection!
+
+  """
+  This object's sponsorships as the sponsor.
+  """
+  sponsorshipsAsSponsor(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for sponsorships returned from this connection. If left
+    blank, the sponsorships will be ordered based on relevancy to the viewer.
+    """
+    orderBy: SponsorshipOrder
+  ): SponsorshipConnection!
+
+  """
+  Find an organization's team by its slug.
+  """
+  team(
+    """
+    The name or slug of the team to find.
+    """
+    slug: String!
+  ): Team
+
+  """
+  A list of teams in this organization.
+  """
+  teams(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    If true, filters teams that are mapped to an LDAP Group (Enterprise only)
+    """
+    ldapMapped: Boolean
+
+    """
+    Ordering options for teams returned from the connection
+    """
+    orderBy: TeamOrder
+
+    """
+    If non-null, filters teams according to privacy
+    """
+    privacy: TeamPrivacy
+
+    """
+    If non-null, filters teams with query on team name and team slug
+    """
+    query: String
+
+    """
+    If non-null, filters teams according to whether the viewer is an admin or member on team
+    """
+    role: TeamRole
+
+    """
+    If true, restrict to only root teams
+    """
+    rootTeamsOnly: Boolean = false
+
+    """
+    User logins to filter by
+    """
+    userLogins: [String!]
+  ): TeamConnection!
+
+  """
+  The HTTP path listing organization's teams
+  """
+  teamsResourcePath: URI!
+
+  """
+  The HTTP URL listing organization's teams
+  """
+  teamsUrl: URI!
+
+  """
+  The organization's Twitter username.
+  """
+  twitterUsername: String
+
+  """
+  Identifies the date and time when the object was last updated.
+  """
+  updatedAt: DateTime!
+
+  """
+  The HTTP URL for this organization.
+  """
+  url: URI!
+
+  """
+  Organization is adminable by the viewer.
+  """
+  viewerCanAdminister: Boolean!
+
+  """
+  Can the viewer pin repositories and gists to the profile?
+  """
+  viewerCanChangePinnedItems: Boolean!
+
+  """
+  Can the current viewer create new projects on this owner.
+  """
+  viewerCanCreateProjects: Boolean!
+
+  """
+  Viewer can create repositories on this organization
+  """
+  viewerCanCreateRepositories: Boolean!
+
+  """
+  Viewer can create teams on this organization.
+  """
+  viewerCanCreateTeams: Boolean!
+
+  """
+  Whether or not the viewer is able to sponsor this user/organization.
+  """
+  viewerCanSponsor: Boolean!
+
+  """
+  Viewer is an active member of this organization.
+  """
+  viewerIsAMember: Boolean!
+
+  """
+  True if the viewer is sponsoring this user/organization.
+  """
+  viewerIsSponsoring: Boolean!
+
+  """
+  The organization's public profile URL.
+  """
+  websiteUrl: URI
+}
+
+"""
+An audit entry in an organization audit log.
+"""
+union OrganizationAuditEntry = MembersCanDeleteReposClearAuditEntry | MembersCanDeleteReposDisableAuditEntry | MembersCanDeleteReposEnableAuditEntry | OauthApplicationCreateAuditEntry | OrgAddBillingManagerAuditEntry | OrgAddMemberAuditEntry | OrgBlockUserAuditEntry | OrgConfigDisableCollaboratorsOnlyAuditEntry | OrgConfigEnableCollaboratorsOnlyAuditEntry | OrgCreateAuditEntry | OrgDisableOauthAppRestrictionsAuditEntry | OrgDisableSamlAuditEntry | OrgDisableTwoFactorRequirementAuditEntry | OrgEnableOauthAppRestrictionsAuditEntry | OrgEnableSamlAuditEntry | OrgEnableTwoFactorRequirementAuditEntry | OrgInviteMemberAuditEntry | OrgInviteToBusinessAuditEntry | OrgOauthAppAccessApprovedAuditEntry | OrgOauthAppAccessDeniedAuditEntry | OrgOauthAppAccessRequestedAuditEntry | OrgRemoveBillingManagerAuditEntry | OrgRemoveMemberAuditEntry | OrgRemoveOutsideCollaboratorAuditEntry | OrgRestoreMemberAuditEntry | OrgUnblockUserAuditEntry | OrgUpdateDefaultRepositoryPermissionAuditEntry | OrgUpdateMemberAuditEntry | OrgUpdateMemberRepositoryCreationPermissionAuditEntry | OrgUpdateMemberRepositoryInvitationPermissionAuditEntry | PrivateRepositoryForkingDisableAuditEntry | PrivateRepositoryForkingEnableAuditEntry | RepoAccessAuditEntry | RepoAddMemberAuditEntry | RepoAddTopicAuditEntry | RepoArchivedAuditEntry | RepoChangeMergeSettingAuditEntry | RepoConfigDisableAnonymousGitAccessAuditEntry | RepoConfigDisableCollaboratorsOnlyAuditEntry | RepoConfigDisableContributorsOnlyAuditEntry | RepoConfigDisableSockpuppetDisallowedAuditEntry | RepoConfigEnableAnonymousGitAccessAuditEntry | RepoConfigEnableCollaboratorsOnlyAuditEntry | RepoConfigEnableContributorsOnlyAuditEntry | RepoConfigEnableSockpuppetDisallowedAuditEntry | RepoConfigLockAnonymousGitAccessAuditEntry | RepoConfigUnlockAnonymousGitAccessAuditEntry | RepoCreateAuditEntry | RepoDestroyAuditEntry | RepoRemoveMemberAuditEntry | RepoRemoveTopicAuditEntry | RepositoryVisibilityChangeDisableAuditEntry | RepositoryVisibilityChangeEnableAuditEntry | TeamAddMemberAuditEntry | TeamAddRepositoryAuditEntry | TeamChangeParentTeamAuditEntry | TeamRemoveMemberAuditEntry | TeamRemoveRepositoryAuditEntry
+
+"""
+The connection type for OrganizationAuditEntry.
+"""
+type OrganizationAuditEntryConnection {
+  """
+  A list of edges.
+  """
+  edges: [OrganizationAuditEntryEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [OrganizationAuditEntry]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+Metadata for an audit entry with action org.*
+"""
+interface OrganizationAuditEntryData {
+  """
+  The Organization associated with the Audit Entry.
+  """
+  organization: Organization
+
+  """
+  The name of the Organization.
+  """
+  organizationName: String
+
+  """
+  The HTTP path for the organization
+  """
+  organizationResourcePath: URI
+
+  """
+  The HTTP URL for the organization
+  """
+  organizationUrl: URI
+}
+
+"""
+An edge in a connection.
+"""
+type OrganizationAuditEntryEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: OrganizationAuditEntry
+}
+
+"""
+The connection type for Organization.
+"""
+type OrganizationConnection {
+  """
+  A list of edges.
+  """
+  edges: [OrganizationEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [Organization]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+An edge in a connection.
+"""
+type OrganizationEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: Organization
+}
+
+"""
+An Identity Provider configured to provision SAML and SCIM identities for Organizations
+"""
+type OrganizationIdentityProvider implements Node {
+  """
+  The digest algorithm used to sign SAML requests for the Identity Provider.
+  """
+  digestMethod: URI
+
+  """
+  External Identities provisioned by this Identity Provider
+  """
+  externalIdentities(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+  ): ExternalIdentityConnection!
+  id: ID!
+
+  """
+  The x509 certificate used by the Identity Provider to sign assertions and responses.
+  """
+  idpCertificate: X509Certificate
+
+  """
+  The Issuer Entity ID for the SAML Identity Provider
+  """
+  issuer: String
+
+  """
+  Organization this Identity Provider belongs to
+  """
+  organization: Organization
+
+  """
+  The signature algorithm used to sign SAML requests for the Identity Provider.
+  """
+  signatureMethod: URI
+
+  """
+  The URL endpoint for the Identity Provider's SAML SSO.
+  """
+  ssoUrl: URI
+}
+
+"""
+An Invitation for a user to an organization.
+"""
+type OrganizationInvitation implements Node {
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+
+  """
+  The email address of the user invited to the organization.
+  """
+  email: String
+  id: ID!
+
+  """
+  The type of invitation that was sent (e.g. email, user).
+  """
+  invitationType: OrganizationInvitationType!
+
+  """
+  The user who was invited to the organization.
+  """
+  invitee: User
+
+  """
+  The user who created the invitation.
+  """
+  inviter: User!
+
+  """
+  The organization the invite is for
+  """
+  organization: Organization!
+
+  """
+  The user's pending role in the organization (e.g. member, owner).
+  """
+  role: OrganizationInvitationRole!
+}
+
+"""
+The connection type for OrganizationInvitation.
+"""
+type OrganizationInvitationConnection {
+  """
+  A list of edges.
+  """
+  edges: [OrganizationInvitationEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [OrganizationInvitation]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+An edge in a connection.
+"""
+type OrganizationInvitationEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: OrganizationInvitation
+}
+
+"""
+The possible organization invitation roles.
+"""
+enum OrganizationInvitationRole {
+  """
+  The user is invited to be an admin of the organization.
+  """
+  ADMIN
+
+  """
+  The user is invited to be a billing manager of the organization.
+  """
+  BILLING_MANAGER
+
+  """
+  The user is invited to be a direct member of the organization.
+  """
+  DIRECT_MEMBER
+
+  """
+  The user's previous role will be reinstated.
+  """
+  REINSTATE
+}
+
+"""
+The possible organization invitation types.
+"""
+enum OrganizationInvitationType {
+  """
+  The invitation was to an email address.
+  """
+  EMAIL
+
+  """
+  The invitation was to an existing user.
+  """
+  USER
+}
+
+"""
+The connection type for User.
+"""
+type OrganizationMemberConnection {
+  """
+  A list of edges.
+  """
+  edges: [OrganizationMemberEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [User]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+Represents a user within an organization.
+"""
+type OrganizationMemberEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  Whether the organization member has two factor enabled or not. Returns null if information is not available to viewer.
+  """
+  hasTwoFactorEnabled: Boolean
+
+  """
+  The item at the end of the edge.
+  """
+  node: User
+
+  """
+  The role this user has in the organization.
+  """
+  role: OrganizationMemberRole
+}
+
+"""
+The possible roles within an organization for its members.
+"""
+enum OrganizationMemberRole {
+  """
+  The user is an administrator of the organization.
+  """
+  ADMIN
+
+  """
+  The user is a member of the organization.
+  """
+  MEMBER
+}
+
+"""
+The possible values for the members can create repositories setting on an organization.
+"""
+enum OrganizationMembersCanCreateRepositoriesSettingValue {
+  """
+  Members will be able to create public and private repositories.
+  """
+  ALL
+
+  """
+  Members will not be able to create public or private repositories.
+  """
+  DISABLED
+
+  """
+  Members will be able to create only private repositories.
+  """
+  PRIVATE
+}
+
+"""
+Ordering options for organization connections.
+"""
+input OrganizationOrder {
+  """
+  The ordering direction.
+  """
+  direction: OrderDirection!
+
+  """
+  The field to order organizations by.
+  """
+  field: OrganizationOrderField!
+}
+
+"""
+Properties by which organization connections can be ordered.
+"""
+enum OrganizationOrderField {
+  """
+  Order organizations by creation time
+  """
+  CREATED_AT
+
+  """
+  Order organizations by login
+  """
+  LOGIN
+}
+
+"""
+An organization teams hovercard context
+"""
+type OrganizationTeamsHovercardContext implements HovercardContext {
+  """
+  A string describing this context
+  """
+  message: String!
+
+  """
+  An octicon to accompany this context
+  """
+  octicon: String!
+
+  """
+  Teams in this organization the user is a member of that are relevant
+  """
+  relevantTeams(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+  ): TeamConnection!
+
+  """
+  The path for the full team list for this user
+  """
+  teamsResourcePath: URI!
+
+  """
+  The URL for the full team list for this user
+  """
+  teamsUrl: URI!
+
+  """
+  The total number of teams the user is on in the organization
+  """
+  totalTeamCount: Int!
+}
+
+"""
+An organization list hovercard context
+"""
+type OrganizationsHovercardContext implements HovercardContext {
+  """
+  A string describing this context
+  """
+  message: String!
+
+  """
+  An octicon to accompany this context
+  """
+  octicon: String!
+
+  """
+  Organizations this user is a member of that are relevant
+  """
+  relevantOrganizations(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+  ): OrganizationConnection!
+
+  """
+  The total number of organizations this user is in
+  """
+  totalOrganizationCount: Int!
+}
+
+"""
+Information for an uploaded package.
+"""
+type Package implements Node {
+  id: ID!
+
+  """
+  Find the latest version for the package.
+  """
+  latestVersion: PackageVersion
+
+  """
+  Identifies the name of the package.
+  """
+  name: String!
+
+  """
+  Identifies the type of the package.
+  """
+  packageType: PackageType!
+
+  """
+  The repository this package belongs to.
+  """
+  repository: Repository
+
+  """
+  Statistics about package activity.
+  """
+  statistics: PackageStatistics
+
+  """
+  Find package version by version string.
+  """
+  version(
+    """
+    The package version.
+    """
+    version: String!
+  ): PackageVersion
+
+  """
+  list of versions for this package
+  """
+  versions(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering of the returned packages.
+    """
+    orderBy: PackageVersionOrder = {field: CREATED_AT, direction: DESC}
+  ): PackageVersionConnection!
+}
+
+"""
+The connection type for Package.
+"""
+type PackageConnection {
+  """
+  A list of edges.
+  """
+  edges: [PackageEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [Package]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+An edge in a connection.
+"""
+type PackageEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: Package
+}
+
+"""
+A file in a package version.
+"""
+type PackageFile implements Node {
+  id: ID!
+
+  """
+  MD5 hash of the file.
+  """
+  md5: String
+
+  """
+  Name of the file.
+  """
+  name: String!
+
+  """
+  The package version this file belongs to.
+  """
+  packageVersion: PackageVersion
+
+  """
+  SHA1 hash of the file.
+  """
+  sha1: String
+
+  """
+  SHA256 hash of the file.
+  """
+  sha256: String
+
+  """
+  Size of the file in bytes.
+  """
+  size: Int
+
+  """
+  Identifies the date and time when the object was last updated.
+  """
+  updatedAt: DateTime!
+
+  """
+  URL to download the asset.
+  """
+  url: URI
+}
+
+"""
+The connection type for PackageFile.
+"""
+type PackageFileConnection {
+  """
+  A list of edges.
+  """
+  edges: [PackageFileEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [PackageFile]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+An edge in a connection.
+"""
+type PackageFileEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: PackageFile
+}
+
+"""
+Ways in which lists of package files can be ordered upon return.
+"""
+input PackageFileOrder {
+  """
+  The direction in which to order package files by the specified field.
+  """
+  direction: OrderDirection
+
+  """
+  The field in which to order package files by.
+  """
+  field: PackageFileOrderField
+}
+
+"""
+Properties by which package file connections can be ordered.
+"""
+enum PackageFileOrderField {
+  """
+  Order package files by creation time
+  """
+  CREATED_AT
+}
+
+"""
+Ways in which lists of packages can be ordered upon return.
+"""
+input PackageOrder {
+  """
+  The direction in which to order packages by the specified field.
+  """
+  direction: OrderDirection
+
+  """
+  The field in which to order packages by.
+  """
+  field: PackageOrderField
+}
+
+"""
+Properties by which package connections can be ordered.
+"""
+enum PackageOrderField {
+  """
+  Order packages by creation time
+  """
+  CREATED_AT
+}
+
+"""
+Represents an owner of a package.
+"""
+interface PackageOwner {
+  id: ID!
+
+  """
+  A list of packages under the owner.
+  """
+  packages(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Find packages by their names.
+    """
+    names: [String]
+
+    """
+    Ordering of the returned packages.
+    """
+    orderBy: PackageOrder = {field: CREATED_AT, direction: DESC}
+
+    """
+    Filter registry package by type.
+    """
+    packageType: PackageType
+
+    """
+    Find packages in a repository by ID.
+    """
+    repositoryId: ID
+  ): PackageConnection!
+}
+
+"""
+Represents a object that contains package activity statistics such as downloads.
+"""
+type PackageStatistics {
+  """
+  Number of times the package was downloaded since it was created.
+  """
+  downloadsTotalCount: Int!
+}
+
+"""
+A version tag contains the mapping between a tag name and a version.
+"""
+type PackageTag implements Node {
+  id: ID!
+
+  """
+  Identifies the tag name of the version.
+  """
+  name: String!
+
+  """
+  Version that the tag is associated with.
+  """
+  version: PackageVersion
+}
+
+"""
+The possible types of a package.
+"""
+enum PackageType {
+  """
+  A debian package.
+  """
+  DEBIAN
+
+  """
+  A docker image.
+  """
+  DOCKER
+
+  """
+  A maven package.
+  """
+  MAVEN
+
+  """
+  An npm package.
+  """
+  NPM
+
+  """
+  A nuget package.
+  """
+  NUGET
+
+  """
+  A python package.
+  """
+  PYPI
+
+  """
+  A rubygems package.
+  """
+  RUBYGEMS
+}
+
+"""
+Information about a specific package version.
+"""
+type PackageVersion implements Node {
+  """
+  List of files associated with this package version
+  """
+  files(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering of the returned package files.
+    """
+    orderBy: PackageFileOrder = {field: CREATED_AT, direction: ASC}
+  ): PackageFileConnection!
+  id: ID!
+
+  """
+  The package associated with this version.
+  """
+  package: Package
+
+  """
+  The platform this version was built for.
+  """
+  platform: String
+
+  """
+  Whether or not this version is a pre-release.
+  """
+  preRelease: Boolean!
+
+  """
+  The README of this package version.
+  """
+  readme: String
+
+  """
+  The release associated with this package version.
+  """
+  release: Release
+
+  """
+  Statistics about package activity.
+  """
+  statistics: PackageVersionStatistics
+
+  """
+  The package version summary.
+  """
+  summary: String
+
+  """
+  The version string.
+  """
+  version: String!
+}
+
+"""
+The connection type for PackageVersion.
+"""
+type PackageVersionConnection {
+  """
+  A list of edges.
+  """
+  edges: [PackageVersionEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [PackageVersion]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+An edge in a connection.
+"""
+type PackageVersionEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: PackageVersion
+}
+
+"""
+Ways in which lists of package versions can be ordered upon return.
+"""
+input PackageVersionOrder {
+  """
+  The direction in which to order package versions by the specified field.
+  """
+  direction: OrderDirection
+
+  """
+  The field in which to order package versions by.
+  """
+  field: PackageVersionOrderField
+}
+
+"""
+Properties by which package version connections can be ordered.
+"""
+enum PackageVersionOrderField {
+  """
+  Order package versions by creation time
+  """
+  CREATED_AT
+}
+
+"""
+Represents a object that contains package version activity statistics such as downloads.
+"""
+type PackageVersionStatistics {
+  """
+  Number of times the package was downloaded since it was created.
+  """
+  downloadsTotalCount: Int!
+}
+
+"""
+Information about pagination in a connection.
+"""
+type PageInfo {
+  """
+  When paginating forwards, the cursor to continue.
+  """
+  endCursor: String
+
+  """
+  When paginating forwards, are there more items?
+  """
+  hasNextPage: Boolean!
+
+  """
+  When paginating backwards, are there more items?
+  """
+  hasPreviousPage: Boolean!
+
+  """
+  When paginating backwards, the cursor to continue.
+  """
+  startCursor: String
+}
+
+"""
+Types that can grant permissions on a repository to a user
+"""
+union PermissionGranter = Organization | Repository | Team
+
+"""
+A level of permission and source for a user's access to a repository.
+"""
+type PermissionSource {
+  """
+  The organization the repository belongs to.
+  """
+  organization: Organization!
+
+  """
+  The level of access this source has granted to the user.
+  """
+  permission: DefaultRepositoryPermissionField!
+
+  """
+  The source of this permission.
+  """
+  source: PermissionGranter!
+}
+
+"""
+Types that can be pinned to a profile page.
+"""
+union PinnableItem = Gist | Repository
+
+"""
+The connection type for PinnableItem.
+"""
+type PinnableItemConnection {
+  """
+  A list of edges.
+  """
+  edges: [PinnableItemEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [PinnableItem]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+An edge in a connection.
+"""
+type PinnableItemEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: PinnableItem
+}
+
+"""
+Represents items that can be pinned to a profile page or dashboard.
+"""
+enum PinnableItemType {
+  """
+  A gist.
+  """
+  GIST
+
+  """
+  An issue.
+  """
+  ISSUE
+
+  """
+  An organization.
+  """
+  ORGANIZATION
+
+  """
+  A project.
+  """
+  PROJECT
+
+  """
+  A pull request.
+  """
+  PULL_REQUEST
+
+  """
+  A repository.
+  """
+  REPOSITORY
+
+  """
+  A team.
+  """
+  TEAM
+
+  """
+  A user.
+  """
+  USER
+}
+
+"""
+Represents a 'pinned' event on a given issue or pull request.
+"""
+type PinnedEvent implements Node {
+  """
+  Identifies the actor who performed the event.
+  """
+  actor: Actor
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+  id: ID!
+
+  """
+  Identifies the issue associated with the event.
+  """
+  issue: Issue!
+}
+
+"""
+An ISO-8601 encoded UTC date string with millisecond precision.
+"""
+scalar PreciseDateTime
+
+"""
+Audit log entry for a private_repository_forking.disable event.
+"""
+type PrivateRepositoryForkingDisableAuditEntry implements AuditEntry & EnterpriseAuditEntryData & Node & OrganizationAuditEntryData & RepositoryAuditEntryData {
+  """
+  The action name
+  """
+  action: String!
+
+  """
+  The user who initiated the action
+  """
+  actor: AuditEntryActor
+
+  """
+  The IP address of the actor
+  """
+  actorIp: String
+
+  """
+  A readable representation of the actor's location
+  """
+  actorLocation: ActorLocation
+
+  """
+  The username of the user who initiated the action
+  """
+  actorLogin: String
+
+  """
+  The HTTP path for the actor.
+  """
+  actorResourcePath: URI
+
+  """
+  The HTTP URL for the actor.
+  """
+  actorUrl: URI
+
+  """
+  The time the action was initiated
+  """
+  createdAt: PreciseDateTime!
+
+  """
+  The HTTP path for this enterprise.
+  """
+  enterpriseResourcePath: URI
+
+  """
+  The slug of the enterprise.
+  """
+  enterpriseSlug: String
+
+  """
+  The HTTP URL for this enterprise.
+  """
+  enterpriseUrl: URI
+  id: ID!
+
+  """
+  The corresponding operation type for the action
+  """
+  operationType: OperationType
+
+  """
+  The Organization associated with the Audit Entry.
+  """
+  organization: Organization
+
+  """
+  The name of the Organization.
+  """
+  organizationName: String
+
+  """
+  The HTTP path for the organization
+  """
+  organizationResourcePath: URI
+
+  """
+  The HTTP URL for the organization
+  """
+  organizationUrl: URI
+
+  """
+  The repository associated with the action
+  """
+  repository: Repository
+
+  """
+  The name of the repository
+  """
+  repositoryName: String
+
+  """
+  The HTTP path for the repository
+  """
+  repositoryResourcePath: URI
+
+  """
+  The HTTP URL for the repository
+  """
+  repositoryUrl: URI
+
+  """
+  The user affected by the action
+  """
+  user: User
+
+  """
+  For actions involving two users, the actor is the initiator and the user is the affected user.
+  """
+  userLogin: String
+
+  """
+  The HTTP path for the user.
+  """
+  userResourcePath: URI
+
+  """
+  The HTTP URL for the user.
+  """
+  userUrl: URI
+}
+
+"""
+Audit log entry for a private_repository_forking.enable event.
+"""
+type PrivateRepositoryForkingEnableAuditEntry implements AuditEntry & EnterpriseAuditEntryData & Node & OrganizationAuditEntryData & RepositoryAuditEntryData {
+  """
+  The action name
+  """
+  action: String!
+
+  """
+  The user who initiated the action
+  """
+  actor: AuditEntryActor
+
+  """
+  The IP address of the actor
+  """
+  actorIp: String
+
+  """
+  A readable representation of the actor's location
+  """
+  actorLocation: ActorLocation
+
+  """
+  The username of the user who initiated the action
+  """
+  actorLogin: String
+
+  """
+  The HTTP path for the actor.
+  """
+  actorResourcePath: URI
+
+  """
+  The HTTP URL for the actor.
+  """
+  actorUrl: URI
+
+  """
+  The time the action was initiated
+  """
+  createdAt: PreciseDateTime!
+
+  """
+  The HTTP path for this enterprise.
+  """
+  enterpriseResourcePath: URI
+
+  """
+  The slug of the enterprise.
+  """
+  enterpriseSlug: String
+
+  """
+  The HTTP URL for this enterprise.
+  """
+  enterpriseUrl: URI
+  id: ID!
+
+  """
+  The corresponding operation type for the action
+  """
+  operationType: OperationType
+
+  """
+  The Organization associated with the Audit Entry.
+  """
+  organization: Organization
+
+  """
+  The name of the Organization.
+  """
+  organizationName: String
+
+  """
+  The HTTP path for the organization
+  """
+  organizationResourcePath: URI
+
+  """
+  The HTTP URL for the organization
+  """
+  organizationUrl: URI
+
+  """
+  The repository associated with the action
+  """
+  repository: Repository
+
+  """
+  The name of the repository
+  """
+  repositoryName: String
+
+  """
+  The HTTP path for the repository
+  """
+  repositoryResourcePath: URI
+
+  """
+  The HTTP URL for the repository
+  """
+  repositoryUrl: URI
+
+  """
+  The user affected by the action
+  """
+  user: User
+
+  """
+  For actions involving two users, the actor is the initiator and the user is the affected user.
+  """
+  userLogin: String
+
+  """
+  The HTTP path for the user.
+  """
+  userResourcePath: URI
+
+  """
+  The HTTP URL for the user.
+  """
+  userUrl: URI
+}
+
+"""
+A curatable list of repositories relating to a repository owner, which defaults
+to showing the most popular repositories they own.
+"""
+type ProfileItemShowcase {
+  """
+  Whether or not the owner has pinned any repositories or gists.
+  """
+  hasPinnedItems: Boolean!
+
+  """
+  The repositories and gists in the showcase. If the profile owner has any
+  pinned items, those will be returned. Otherwise, the profile owner's popular
+  repositories will be returned.
+  """
+  items(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+  ): PinnableItemConnection!
+}
+
+"""
+Represents any entity on GitHub that has a profile page.
+"""
+interface ProfileOwner {
+  """
+  Determine if this repository owner has any items that can be pinned to their profile.
+  """
+  anyPinnableItems(
+    """
+    Filter to only a particular kind of pinnable item.
+    """
+    type: PinnableItemType
+  ): Boolean!
+
+  """
+  The public profile email.
+  """
+  email: String
+  id: ID!
+
+  """
+  Showcases a selection of repositories and gists that the profile owner has
+  either curated or that have been selected automatically based on popularity.
+  """
+  itemShowcase: ProfileItemShowcase!
+
+  """
+  The public profile location.
+  """
+  location: String
+
+  """
+  The username used to login.
+  """
+  login: String!
+
+  """
+  The public profile name.
+  """
+  name: String
+
+  """
+  A list of repositories and gists this profile owner can pin to their profile.
+  """
+  pinnableItems(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Filter the types of pinnable items that are returned.
+    """
+    types: [PinnableItemType!]
+  ): PinnableItemConnection!
+
+  """
+  A list of repositories and gists this profile owner has pinned to their profile
+  """
+  pinnedItems(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Filter the types of pinned items that are returned.
+    """
+    types: [PinnableItemType!]
+  ): PinnableItemConnection!
+
+  """
+  Returns how many more items this profile owner can pin to their profile.
+  """
+  pinnedItemsRemaining: Int!
+
+  """
+  Can the viewer pin repositories and gists to the profile?
+  """
+  viewerCanChangePinnedItems: Boolean!
+
+  """
+  The public profile website URL.
+  """
+  websiteUrl: URI
+}
+
+"""
+Projects manage issues, pull requests and notes within a project owner.
+"""
+type Project implements Closable & Node & Updatable {
+  """
+  The project's description body.
+  """
+  body: String
+
+  """
+  The projects description body rendered to HTML.
+  """
+  bodyHTML: HTML!
+
+  """
+  `true` if the object is closed (definition of closed may depend on type)
+  """
+  closed: Boolean!
+
+  """
+  Identifies the date and time when the object was closed.
+  """
+  closedAt: DateTime
+
+  """
+  List of columns in the project
+  """
+  columns(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+  ): ProjectColumnConnection!
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+
+  """
+  The actor who originally created the project.
+  """
+  creator: Actor
+
+  """
+  Identifies the primary key from the database.
+  """
+  databaseId: Int
+  id: ID!
+
+  """
+  The project's name.
+  """
+  name: String!
+
+  """
+  The project's number.
+  """
+  number: Int!
+
+  """
+  The project's owner. Currently limited to repositories, organizations, and users.
+  """
+  owner: ProjectOwner!
+
+  """
+  List of pending cards in this project
+  """
+  pendingCards(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    A list of archived states to filter the cards by
+    """
+    archivedStates: [ProjectCardArchivedState] = [ARCHIVED, NOT_ARCHIVED]
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+  ): ProjectCardConnection!
+
+  """
+  Project progress details.
+  """
+  progress: ProjectProgress!
+
+  """
+  The HTTP path for this project
+  """
+  resourcePath: URI!
+
+  """
+  Whether the project is open or closed.
+  """
+  state: ProjectState!
+
+  """
+  Identifies the date and time when the object was last updated.
+  """
+  updatedAt: DateTime!
+
+  """
+  The HTTP URL for this project
+  """
+  url: URI!
+
+  """
+  Check if the current viewer can update this object.
+  """
+  viewerCanUpdate: Boolean!
+}
+
+"""
+A card in a project.
+"""
+type ProjectCard implements Node {
+  """
+  The project column this card is associated under. A card may only belong to one
+  project column at a time. The column field will be null if the card is created
+  in a pending state and has yet to be associated with a column. Once cards are
+  associated with a column, they will not become pending in the future.
+  """
+  column: ProjectColumn
+
+  """
+  The card content item
+  """
+  content: ProjectCardItem
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+
+  """
+  The actor who created this card
+  """
+  creator: Actor
+
+  """
+  Identifies the primary key from the database.
+  """
+  databaseId: Int
+  id: ID!
+
+  """
+  Whether the card is archived
+  """
+  isArchived: Boolean!
+
+  """
+  The card note
+  """
+  note: String
+
+  """
+  The project that contains this card.
+  """
+  project: Project!
+
+  """
+  The HTTP path for this card
+  """
+  resourcePath: URI!
+
+  """
+  The state of ProjectCard
+  """
+  state: ProjectCardState
+
+  """
+  Identifies the date and time when the object was last updated.
+  """
+  updatedAt: DateTime!
+
+  """
+  The HTTP URL for this card
+  """
+  url: URI!
+}
+
+"""
+The possible archived states of a project card.
+"""
+enum ProjectCardArchivedState {
+  """
+  A project card that is archived
+  """
+  ARCHIVED
+
+  """
+  A project card that is not archived
+  """
+  NOT_ARCHIVED
+}
+
+"""
+The connection type for ProjectCard.
+"""
+type ProjectCardConnection {
+  """
+  A list of edges.
+  """
+  edges: [ProjectCardEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [ProjectCard]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+An edge in a connection.
+"""
+type ProjectCardEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: ProjectCard
+}
+
+"""
+Types that can be inside Project Cards.
+"""
+union ProjectCardItem = Issue | PullRequest
+
+"""
+Various content states of a ProjectCard
+"""
+enum ProjectCardState {
+  """
+  The card has content only.
+  """
+  CONTENT_ONLY
+
+  """
+  The card has a note only.
+  """
+  NOTE_ONLY
+
+  """
+  The card is redacted.
+  """
+  REDACTED
+}
+
+"""
+A column inside a project.
+"""
+type ProjectColumn implements Node {
+  """
+  List of cards in the column
+  """
+  cards(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    A list of archived states to filter the cards by
+    """
+    archivedStates: [ProjectCardArchivedState] = [ARCHIVED, NOT_ARCHIVED]
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+  ): ProjectCardConnection!
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+
+  """
+  Identifies the primary key from the database.
+  """
+  databaseId: Int
+  id: ID!
+
+  """
+  The project column's name.
+  """
+  name: String!
+
+  """
+  The project that contains this column.
+  """
+  project: Project!
+
+  """
+  The semantic purpose of the column
+  """
+  purpose: ProjectColumnPurpose
+
+  """
+  The HTTP path for this project column
+  """
+  resourcePath: URI!
+
+  """
+  Identifies the date and time when the object was last updated.
+  """
+  updatedAt: DateTime!
+
+  """
+  The HTTP URL for this project column
+  """
+  url: URI!
+}
+
+"""
+The connection type for ProjectColumn.
+"""
+type ProjectColumnConnection {
+  """
+  A list of edges.
+  """
+  edges: [ProjectColumnEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [ProjectColumn]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+An edge in a connection.
+"""
+type ProjectColumnEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: ProjectColumn
+}
+
+"""
+The semantic purpose of the column - todo, in progress, or done.
+"""
+enum ProjectColumnPurpose {
+  """
+  The column contains cards which are complete
+  """
+  DONE
+
+  """
+  The column contains cards which are currently being worked on
+  """
+  IN_PROGRESS
+
+  """
+  The column contains cards still to be worked on
+  """
+  TODO
+}
+
+"""
+A list of projects associated with the owner.
+"""
+type ProjectConnection {
+  """
+  A list of edges.
+  """
+  edges: [ProjectEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [Project]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+An edge in a connection.
+"""
+type ProjectEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: Project
+}
+
+"""
+Ways in which lists of projects can be ordered upon return.
+"""
+input ProjectOrder {
+  """
+  The direction in which to order projects by the specified field.
+  """
+  direction: OrderDirection!
+
+  """
+  The field in which to order projects by.
+  """
+  field: ProjectOrderField!
+}
+
+"""
+Properties by which project connections can be ordered.
+"""
+enum ProjectOrderField {
+  """
+  Order projects by creation time
+  """
+  CREATED_AT
+
+  """
+  Order projects by name
+  """
+  NAME
+
+  """
+  Order projects by update time
+  """
+  UPDATED_AT
+}
+
+"""
+Represents an owner of a Project.
+"""
+interface ProjectOwner {
+  id: ID!
+
+  """
+  Find project by number.
+  """
+  project(
+    """
+    The project number to find.
+    """
+    number: Int!
+  ): Project
+
+  """
+  A list of projects under the owner.
+  """
+  projects(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for projects returned from the connection
+    """
+    orderBy: ProjectOrder
+
+    """
+    Query to search projects by, currently only searching by name.
+    """
+    search: String
+
+    """
+    A list of states to filter the projects by.
+    """
+    states: [ProjectState!]
+  ): ProjectConnection!
+
+  """
+  The HTTP path listing owners projects
+  """
+  projectsResourcePath: URI!
+
+  """
+  The HTTP URL listing owners projects
+  """
+  projectsUrl: URI!
+
+  """
+  Can the current viewer create new projects on this owner.
+  """
+  viewerCanCreateProjects: Boolean!
+}
+
+"""
+Project progress stats.
+"""
+type ProjectProgress {
+  """
+  The number of done cards.
+  """
+  doneCount: Int!
+
+  """
+  The percentage of done cards.
+  """
+  donePercentage: Float!
+
+  """
+  Whether progress tracking is enabled and cards with purpose exist for this project
+  """
+  enabled: Boolean!
+
+  """
+  The number of in-progress cards.
+  """
+  inProgressCount: Int!
+
+  """
+  The percentage of in-progress cards.
+  """
+  inProgressPercentage: Float!
+
+  """
+  The number of to do cards.
+  """
+  todoCount: Int!
+
+  """
+  The percentage of to do cards.
+  """
+  todoPercentage: Float!
+}
+
+"""
+State of the project; either 'open' or 'closed'
+"""
+enum ProjectState {
+  """
+  The project is closed.
+  """
+  CLOSED
+
+  """
+  The project is open.
+  """
+  OPEN
+}
+
+"""
+GitHub-provided templates for Projects
+"""
+enum ProjectTemplate {
+  """
+  Create a board with v2 triggers to automatically move cards across To do, In progress and Done columns.
+  """
+  AUTOMATED_KANBAN_V2
+
+  """
+  Create a board with triggers to automatically move cards across columns with review automation.
+  """
+  AUTOMATED_REVIEWS_KANBAN
+
+  """
+  Create a board with columns for To do, In progress and Done.
+  """
+  BASIC_KANBAN
+
+  """
+  Create a board to triage and prioritize bugs with To do, priority, and Done columns.
+  """
+  BUG_TRIAGE
+}
+
+"""
+A user's public key.
+"""
+type PublicKey implements Node {
+  """
+  The last time this authorization was used to perform an action. Values will be null for keys not owned by the user.
+  """
+  accessedAt: DateTime
+
+  """
+  Identifies the date and time when the key was created. Keys created before
+  March 5th, 2014 have inaccurate values. Values will be null for keys not owned by the user.
+  """
+  createdAt: DateTime
+
+  """
+  The fingerprint for this PublicKey.
+  """
+  fingerprint: String!
+  id: ID!
+
+  """
+  Whether this PublicKey is read-only or not. Values will be null for keys not owned by the user.
+  """
+  isReadOnly: Boolean
+
+  """
+  The public key string.
+  """
+  key: String!
+
+  """
+  Identifies the date and time when the key was updated. Keys created before
+  March 5th, 2014 may have inaccurate values. Values will be null for keys not
+  owned by the user.
+  """
+  updatedAt: DateTime
+}
+
+"""
+The connection type for PublicKey.
+"""
+type PublicKeyConnection {
+  """
+  A list of edges.
+  """
+  edges: [PublicKeyEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [PublicKey]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+An edge in a connection.
+"""
+type PublicKeyEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: PublicKey
+}
+
+"""
+A repository pull request.
+"""
+type PullRequest implements Assignable & Closable & Comment & Labelable & Lockable & Node & Reactable & RepositoryNode & Subscribable & UniformResourceLocatable & Updatable & UpdatableComment {
+  """
+  Reason that the conversation was locked.
+  """
+  activeLockReason: LockReason
+
+  """
+  The number of additions in this pull request.
+  """
+  additions: Int!
+
+  """
+  A list of Users assigned to this object.
+  """
+  assignees(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+  ): UserConnection!
+
+  """
+  The actor who authored the comment.
+  """
+  author: Actor
+
+  """
+  Author's association with the subject of the comment.
+  """
+  authorAssociation: CommentAuthorAssociation!
+
+  """
+  Returns the auto-merge request object if one exists for this pull request.
+  """
+  autoMergeRequest: AutoMergeRequest
+
+  """
+  Identifies the base Ref associated with the pull request.
+  """
+  baseRef: Ref
+
+  """
+  Identifies the name of the base Ref associated with the pull request, even if the ref has been deleted.
+  """
+  baseRefName: String!
+
+  """
+  Identifies the oid of the base ref associated with the pull request, even if the ref has been deleted.
+  """
+  baseRefOid: GitObjectID!
+
+  """
+  The repository associated with this pull request's base Ref.
+  """
+  baseRepository: Repository
+
+  """
+  The body as Markdown.
+  """
+  body: String!
+
+  """
+  The body rendered to HTML.
+  """
+  bodyHTML: HTML!
+
+  """
+  The body rendered to text.
+  """
+  bodyText: String!
+
+  """
+  The number of changed files in this pull request.
+  """
+  changedFiles: Int!
+
+  """
+  The HTTP path for the checks of this pull request.
+  """
+  checksResourcePath: URI!
+
+  """
+  The HTTP URL for the checks of this pull request.
+  """
+  checksUrl: URI!
+
+  """
+  `true` if the pull request is closed
+  """
+  closed: Boolean!
+
+  """
+  Identifies the date and time when the object was closed.
+  """
+  closedAt: DateTime
+
+  """
+  A list of comments associated with the pull request.
+  """
+  comments(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for issue comments returned from the connection.
+    """
+    orderBy: IssueCommentOrder
+  ): IssueCommentConnection!
+
+  """
+  A list of commits present in this pull request's head branch not present in the base branch.
+  """
+  commits(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+  ): PullRequestCommitConnection!
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+
+  """
+  Check if this comment was created via an email reply.
+  """
+  createdViaEmail: Boolean!
+
+  """
+  Identifies the primary key from the database.
+  """
+  databaseId: Int
+
+  """
+  The number of deletions in this pull request.
+  """
+  deletions: Int!
+
+  """
+  The actor who edited this pull request's body.
+  """
+  editor: Actor
+
+  """
+  Lists the files changed within this pull request.
+  """
+  files(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+  ): PullRequestChangedFileConnection
+
+  """
+  Identifies the head Ref associated with the pull request.
+  """
+  headRef: Ref
+
+  """
+  Identifies the name of the head Ref associated with the pull request, even if the ref has been deleted.
+  """
+  headRefName: String!
+
+  """
+  Identifies the oid of the head ref associated with the pull request, even if the ref has been deleted.
+  """
+  headRefOid: GitObjectID!
+
+  """
+  The repository associated with this pull request's head Ref.
+  """
+  headRepository: Repository
+
+  """
+  The owner of the repository associated with this pull request's head Ref.
+  """
+  headRepositoryOwner: RepositoryOwner
+
+  """
+  The hovercard information for this issue
+  """
+  hovercard(
+    """
+    Whether or not to include notification contexts
+    """
+    includeNotificationContexts: Boolean = true
+  ): Hovercard!
+  id: ID!
+
+  """
+  Check if this comment was edited and includes an edit with the creation data
+  """
+  includesCreatedEdit: Boolean!
+
+  """
+  The head and base repositories are different.
+  """
+  isCrossRepository: Boolean!
+
+  """
+  Identifies if the pull request is a draft.
+  """
+  isDraft: Boolean!
+
+  """
+  Is this pull request read by the viewer
+  """
+  isReadByViewer: Boolean
+
+  """
+  A list of labels associated with the object.
+  """
+  labels(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for labels returned from the connection.
+    """
+    orderBy: LabelOrder = {field: CREATED_AT, direction: ASC}
+  ): LabelConnection
+
+  """
+  The moment the editor made the last edit
+  """
+  lastEditedAt: DateTime
+
+  """
+  A list of latest reviews per user associated with the pull request.
+  """
+  latestOpinionatedReviews(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Only return reviews from user who have write access to the repository
+    """
+    writersOnly: Boolean = false
+  ): PullRequestReviewConnection
+
+  """
+  A list of latest reviews per user associated with the pull request that are not also pending review.
+  """
+  latestReviews(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+  ): PullRequestReviewConnection
+
+  """
+  `true` if the pull request is locked
+  """
+  locked: Boolean!
+
+  """
+  Indicates whether maintainers can modify the pull request.
+  """
+  maintainerCanModify: Boolean!
+
+  """
+  The commit that was created when this pull request was merged.
+  """
+  mergeCommit: Commit
+
+  """
+  Whether or not the pull request can be merged based on the existence of merge conflicts.
+  """
+  mergeable: MergeableState!
+
+  """
+  Whether or not the pull request was merged.
+  """
+  merged: Boolean!
+
+  """
+  The date and time that the pull request was merged.
+  """
+  mergedAt: DateTime
+
+  """
+  The actor who merged the pull request.
+  """
+  mergedBy: Actor
+
+  """
+  Identifies the milestone associated with the pull request.
+  """
+  milestone: Milestone
+
+  """
+  Identifies the pull request number.
+  """
+  number: Int!
+
+  """
+  A list of Users that are participating in the Pull Request conversation.
+  """
+  participants(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+  ): UserConnection!
+
+  """
+  The permalink to the pull request.
+  """
+  permalink: URI!
+
+  """
+  The commit that GitHub automatically generated to test if this pull request
+  could be merged. This field will not return a value if the pull request is
+  merged, or if the test merge commit is still being generated. See the
+  `mergeable` field for more details on the mergeability of the pull request.
+  """
+  potentialMergeCommit: Commit
+
+  """
+  List of project cards associated with this pull request.
+  """
+  projectCards(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    A list of archived states to filter the cards by
+    """
+    archivedStates: [ProjectCardArchivedState] = [ARCHIVED, NOT_ARCHIVED]
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+  ): ProjectCardConnection!
+
+  """
+  Identifies when the comment was published at.
+  """
+  publishedAt: DateTime
+
+  """
+  A list of reactions grouped by content left on the subject.
+  """
+  reactionGroups: [ReactionGroup!]
+
+  """
+  A list of Reactions left on the Issue.
+  """
+  reactions(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Allows filtering Reactions by emoji.
+    """
+    content: ReactionContent
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Allows specifying the order in which reactions are returned.
+    """
+    orderBy: ReactionOrder
+  ): ReactionConnection!
+
+  """
+  The repository associated with this node.
+  """
+  repository: Repository!
+
+  """
+  The HTTP path for this pull request.
+  """
+  resourcePath: URI!
+
+  """
+  The HTTP path for reverting this pull request.
+  """
+  revertResourcePath: URI!
+
+  """
+  The HTTP URL for reverting this pull request.
+  """
+  revertUrl: URI!
+
+  """
+  The current status of this pull request with respect to code review.
+  """
+  reviewDecision: PullRequestReviewDecision
+
+  """
+  A list of review requests associated with the pull request.
+  """
+  reviewRequests(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+  ): ReviewRequestConnection
+
+  """
+  The list of all review threads for this pull request.
+  """
+  reviewThreads(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+  ): PullRequestReviewThreadConnection!
+
+  """
+  A list of reviews associated with the pull request.
+  """
+  reviews(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Filter by author of the review.
+    """
+    author: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    A list of states to filter the reviews.
+    """
+    states: [PullRequestReviewState!]
+  ): PullRequestReviewConnection
+
+  """
+  Identifies the state of the pull request.
+  """
+  state: PullRequestState!
+
+  """
+  A list of reviewer suggestions based on commit history and past review comments.
+  """
+  suggestedReviewers: [SuggestedReviewer]!
+
+  """
+  A list of events, comments, commits, etc. associated with the pull request.
+  """
+  timeline(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Allows filtering timeline events by a `since` timestamp.
+    """
+    since: DateTime
+  ): PullRequestTimelineConnection! @deprecated(reason: "`timeline` will be removed Use PullRequest.timelineItems instead. Removal on 2020-10-01 UTC.")
+
+  """
+  A list of events, comments, commits, etc. associated with the pull request.
+  """
+  timelineItems(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Filter timeline items by type.
+    """
+    itemTypes: [PullRequestTimelineItemsItemType!]
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Filter timeline items by a `since` timestamp.
+    """
+    since: DateTime
+
+    """
+    Skips the first _n_ elements in the list.
+    """
+    skip: Int
+  ): PullRequestTimelineItemsConnection!
+
+  """
+  Identifies the pull request title.
+  """
+  title: String!
+
+  """
+  Identifies the date and time when the object was last updated.
+  """
+  updatedAt: DateTime!
+
+  """
+  The HTTP URL for this pull request.
+  """
+  url: URI!
+
+  """
+  A list of edits to this content.
+  """
+  userContentEdits(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+  ): UserContentEditConnection
+
+  """
+  Whether or not the viewer can apply suggestion.
+  """
+  viewerCanApplySuggestion: Boolean!
+
+  """
+  Check if the viewer can restore the deleted head ref.
+  """
+  viewerCanDeleteHeadRef: Boolean!
+
+  """
+  Whether or not the viewer can disable auto-merge
+  """
+  viewerCanDisableAutoMerge: Boolean!
+
+  """
+  Whether or not the viewer can enable auto-merge
+  """
+  viewerCanEnableAutoMerge: Boolean!
+
+  """
+  Can user react to this subject
+  """
+  viewerCanReact: Boolean!
+
+  """
+  Check if the viewer is able to change their subscription status for the repository.
+  """
+  viewerCanSubscribe: Boolean!
+
+  """
+  Check if the current viewer can update this object.
+  """
+  viewerCanUpdate: Boolean!
+
+  """
+  Reasons why the current viewer can not update this comment.
+  """
+  viewerCannotUpdateReasons: [CommentCannotUpdateReason!]!
+
+  """
+  Did the viewer author this comment.
+  """
+  viewerDidAuthor: Boolean!
+
+  """
+  The merge body text for the viewer and method.
+  """
+  viewerMergeBodyText(
+    """
+    The merge method for the message.
+    """
+    mergeType: PullRequestMergeMethod
+  ): String!
+
+  """
+  The merge headline text for the viewer and method.
+  """
+  viewerMergeHeadlineText(
+    """
+    The merge method for the message.
+    """
+    mergeType: PullRequestMergeMethod
+  ): String!
+
+  """
+  Identifies if the viewer is watching, not watching, or ignoring the subscribable entity.
+  """
+  viewerSubscription: SubscriptionState
+}
+
+"""
+A file changed in a pull request.
+"""
+type PullRequestChangedFile {
+  """
+  The number of additions to the file.
+  """
+  additions: Int!
+
+  """
+  The number of deletions to the file.
+  """
+  deletions: Int!
+
+  """
+  The path of the file.
+  """
+  path: String!
+
+  """
+  The state of the file for the viewer.
+  """
+  viewerViewedState: FileViewedState!
+}
+
+"""
+The connection type for PullRequestChangedFile.
+"""
+type PullRequestChangedFileConnection {
+  """
+  A list of edges.
+  """
+  edges: [PullRequestChangedFileEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [PullRequestChangedFile]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+An edge in a connection.
+"""
+type PullRequestChangedFileEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: PullRequestChangedFile
+}
+
+"""
+Represents a Git commit part of a pull request.
+"""
+type PullRequestCommit implements Node & UniformResourceLocatable {
+  """
+  The Git commit object
+  """
+  commit: Commit!
+  id: ID!
+
+  """
+  The pull request this commit belongs to
+  """
+  pullRequest: PullRequest!
+
+  """
+  The HTTP path for this pull request commit
+  """
+  resourcePath: URI!
+
+  """
+  The HTTP URL for this pull request commit
+  """
+  url: URI!
+}
+
+"""
+Represents a commit comment thread part of a pull request.
+"""
+type PullRequestCommitCommentThread implements Node & RepositoryNode {
+  """
+  The comments that exist in this thread.
+  """
+  comments(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+  ): CommitCommentConnection!
+
+  """
+  The commit the comments were made on.
+  """
+  commit: Commit!
+  id: ID!
+
+  """
+  The file the comments were made on.
+  """
+  path: String
+
+  """
+  The position in the diff for the commit that the comment was made on.
+  """
+  position: Int
+
+  """
+  The pull request this commit comment thread belongs to
+  """
+  pullRequest: PullRequest!
+
+  """
+  The repository associated with this node.
+  """
+  repository: Repository!
+}
+
+"""
+The connection type for PullRequestCommit.
+"""
+type PullRequestCommitConnection {
+  """
+  A list of edges.
+  """
+  edges: [PullRequestCommitEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [PullRequestCommit]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+An edge in a connection.
+"""
+type PullRequestCommitEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: PullRequestCommit
+}
+
+"""
+The connection type for PullRequest.
+"""
+type PullRequestConnection {
+  """
+  A list of edges.
+  """
+  edges: [PullRequestEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [PullRequest]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+This aggregates pull requests opened by a user within one repository.
+"""
+type PullRequestContributionsByRepository {
+  """
+  The pull request contributions.
+  """
+  contributions(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for contributions returned from the connection.
+    """
+    orderBy: ContributionOrder = {direction: DESC}
+  ): CreatedPullRequestContributionConnection!
+
+  """
+  The repository in which the pull requests were opened.
+  """
+  repository: Repository!
+}
+
+"""
+An edge in a connection.
+"""
+type PullRequestEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: PullRequest
+}
+
+"""
+Represents available types of methods to use when merging a pull request.
+"""
+enum PullRequestMergeMethod {
+  """
+  Add all commits from the head branch to the base branch with a merge commit.
+  """
+  MERGE
+
+  """
+  Add all commits from the head branch onto the base branch individually.
+  """
+  REBASE
+
+  """
+  Combine all commits from the head branch into a single commit in the base branch.
+  """
+  SQUASH
+}
+
+"""
+Ways in which lists of issues can be ordered upon return.
+"""
+input PullRequestOrder {
+  """
+  The direction in which to order pull requests by the specified field.
+  """
+  direction: OrderDirection!
+
+  """
+  The field in which to order pull requests by.
+  """
+  field: PullRequestOrderField!
+}
+
+"""
+Properties by which pull_requests connections can be ordered.
+"""
+enum PullRequestOrderField {
+  """
+  Order pull_requests by creation time
+  """
+  CREATED_AT
+
+  """
+  Order pull_requests by update time
+  """
+  UPDATED_AT
+}
+
+"""
+A review object for a given pull request.
+"""
+type PullRequestReview implements Comment & Deletable & Node & Reactable & RepositoryNode & Updatable & UpdatableComment {
+  """
+  The actor who authored the comment.
+  """
+  author: Actor
+
+  """
+  Author's association with the subject of the comment.
+  """
+  authorAssociation: CommentAuthorAssociation!
+
+  """
+  Indicates whether the author of this review has push access to the repository.
+  """
+  authorCanPushToRepository: Boolean!
+
+  """
+  Identifies the pull request review body.
+  """
+  body: String!
+
+  """
+  The body rendered to HTML.
+  """
+  bodyHTML: HTML!
+
+  """
+  The body of this review rendered as plain text.
+  """
+  bodyText: String!
+
+  """
+  A list of review comments for the current pull request review.
+  """
+  comments(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+  ): PullRequestReviewCommentConnection!
+
+  """
+  Identifies the commit associated with this pull request review.
+  """
+  commit: Commit
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+
+  """
+  Check if this comment was created via an email reply.
+  """
+  createdViaEmail: Boolean!
+
+  """
+  Identifies the primary key from the database.
+  """
+  databaseId: Int
+
+  """
+  The actor who edited the comment.
+  """
+  editor: Actor
+  id: ID!
+
+  """
+  Check if this comment was edited and includes an edit with the creation data
+  """
+  includesCreatedEdit: Boolean!
+
+  """
+  The moment the editor made the last edit
+  """
+  lastEditedAt: DateTime
+
+  """
+  A list of teams that this review was made on behalf of.
+  """
+  onBehalfOf(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+  ): TeamConnection!
+
+  """
+  Identifies when the comment was published at.
+  """
+  publishedAt: DateTime
+
+  """
+  Identifies the pull request associated with this pull request review.
+  """
+  pullRequest: PullRequest!
+
+  """
+  A list of reactions grouped by content left on the subject.
+  """
+  reactionGroups: [ReactionGroup!]
+
+  """
+  A list of Reactions left on the Issue.
+  """
+  reactions(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Allows filtering Reactions by emoji.
+    """
+    content: ReactionContent
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Allows specifying the order in which reactions are returned.
+    """
+    orderBy: ReactionOrder
+  ): ReactionConnection!
+
+  """
+  The repository associated with this node.
+  """
+  repository: Repository!
+
+  """
+  The HTTP path permalink for this PullRequestReview.
+  """
+  resourcePath: URI!
+
+  """
+  Identifies the current state of the pull request review.
+  """
+  state: PullRequestReviewState!
+
+  """
+  Identifies when the Pull Request Review was submitted
+  """
+  submittedAt: DateTime
+
+  """
+  Identifies the date and time when the object was last updated.
+  """
+  updatedAt: DateTime!
+
+  """
+  The HTTP URL permalink for this PullRequestReview.
+  """
+  url: URI!
+
+  """
+  A list of edits to this content.
+  """
+  userContentEdits(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+  ): UserContentEditConnection
+
+  """
+  Check if the current viewer can delete this object.
+  """
+  viewerCanDelete: Boolean!
+
+  """
+  Can user react to this subject
+  """
+  viewerCanReact: Boolean!
+
+  """
+  Check if the current viewer can update this object.
+  """
+  viewerCanUpdate: Boolean!
+
+  """
+  Reasons why the current viewer can not update this comment.
+  """
+  viewerCannotUpdateReasons: [CommentCannotUpdateReason!]!
+
+  """
+  Did the viewer author this comment.
+  """
+  viewerDidAuthor: Boolean!
+}
+
+"""
+A review comment associated with a given repository pull request.
+"""
+type PullRequestReviewComment implements Comment & Deletable & Minimizable & Node & Reactable & RepositoryNode & Updatable & UpdatableComment {
+  """
+  The actor who authored the comment.
+  """
+  author: Actor
+
+  """
+  Author's association with the subject of the comment.
+  """
+  authorAssociation: CommentAuthorAssociation!
+
+  """
+  The comment body of this review comment.
+  """
+  body: String!
+
+  """
+  The body rendered to HTML.
+  """
+  bodyHTML: HTML!
+
+  """
+  The comment body of this review comment rendered as plain text.
+  """
+  bodyText: String!
+
+  """
+  Identifies the commit associated with the comment.
+  """
+  commit: Commit
+
+  """
+  Identifies when the comment was created.
+  """
+  createdAt: DateTime!
+
+  """
+  Check if this comment was created via an email reply.
+  """
+  createdViaEmail: Boolean!
+
+  """
+  Identifies the primary key from the database.
+  """
+  databaseId: Int
+
+  """
+  The diff hunk to which the comment applies.
+  """
+  diffHunk: String!
+
+  """
+  Identifies when the comment was created in a draft state.
+  """
+  draftedAt: DateTime!
+
+  """
+  The actor who edited the comment.
+  """
+  editor: Actor
+  id: ID!
+
+  """
+  Check if this comment was edited and includes an edit with the creation data
+  """
+  includesCreatedEdit: Boolean!
+
+  """
+  Returns whether or not a comment has been minimized.
+  """
+  isMinimized: Boolean!
+
+  """
+  The moment the editor made the last edit
+  """
+  lastEditedAt: DateTime
+
+  """
+  Returns why the comment was minimized.
+  """
+  minimizedReason: String
+
+  """
+  Identifies the original commit associated with the comment.
+  """
+  originalCommit: Commit
+
+  """
+  The original line index in the diff to which the comment applies.
+  """
+  originalPosition: Int!
+
+  """
+  Identifies when the comment body is outdated
+  """
+  outdated: Boolean!
+
+  """
+  The path to which the comment applies.
+  """
+  path: String!
+
+  """
+  The line index in the diff to which the comment applies.
+  """
+  position: Int
+
+  """
+  Identifies when the comment was published at.
+  """
+  publishedAt: DateTime
+
+  """
+  The pull request associated with this review comment.
+  """
+  pullRequest: PullRequest!
+
+  """
+  The pull request review associated with this review comment.
+  """
+  pullRequestReview: PullRequestReview
+
+  """
+  A list of reactions grouped by content left on the subject.
+  """
+  reactionGroups: [ReactionGroup!]
+
+  """
+  A list of Reactions left on the Issue.
+  """
+  reactions(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Allows filtering Reactions by emoji.
+    """
+    content: ReactionContent
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Allows specifying the order in which reactions are returned.
+    """
+    orderBy: ReactionOrder
+  ): ReactionConnection!
+
+  """
+  The comment this is a reply to.
+  """
+  replyTo: PullRequestReviewComment
+
+  """
+  The repository associated with this node.
+  """
+  repository: Repository!
+
+  """
+  The HTTP path permalink for this review comment.
+  """
+  resourcePath: URI!
+
+  """
+  Identifies the state of the comment.
+  """
+  state: PullRequestReviewCommentState!
+
+  """
+  Identifies when the comment was last updated.
+  """
+  updatedAt: DateTime!
+
+  """
+  The HTTP URL permalink for this review comment.
+  """
+  url: URI!
+
+  """
+  A list of edits to this content.
+  """
+  userContentEdits(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+  ): UserContentEditConnection
+
+  """
+  Check if the current viewer can delete this object.
+  """
+  viewerCanDelete: Boolean!
+
+  """
+  Check if the current viewer can minimize this object.
+  """
+  viewerCanMinimize: Boolean!
+
+  """
+  Can user react to this subject
+  """
+  viewerCanReact: Boolean!
+
+  """
+  Check if the current viewer can update this object.
+  """
+  viewerCanUpdate: Boolean!
+
+  """
+  Reasons why the current viewer can not update this comment.
+  """
+  viewerCannotUpdateReasons: [CommentCannotUpdateReason!]!
+
+  """
+  Did the viewer author this comment.
+  """
+  viewerDidAuthor: Boolean!
+}
+
+"""
+The connection type for PullRequestReviewComment.
+"""
+type PullRequestReviewCommentConnection {
+  """
+  A list of edges.
+  """
+  edges: [PullRequestReviewCommentEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [PullRequestReviewComment]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+An edge in a connection.
+"""
+type PullRequestReviewCommentEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: PullRequestReviewComment
+}
+
+"""
+The possible states of a pull request review comment.
+"""
+enum PullRequestReviewCommentState {
+  """
+  A comment that is part of a pending review
+  """
+  PENDING
+
+  """
+  A comment that is part of a submitted review
+  """
+  SUBMITTED
+}
+
+"""
+The connection type for PullRequestReview.
+"""
+type PullRequestReviewConnection {
+  """
+  A list of edges.
+  """
+  edges: [PullRequestReviewEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [PullRequestReview]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+This aggregates pull request reviews made by a user within one repository.
+"""
+type PullRequestReviewContributionsByRepository {
+  """
+  The pull request review contributions.
+  """
+  contributions(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for contributions returned from the connection.
+    """
+    orderBy: ContributionOrder = {direction: DESC}
+  ): CreatedPullRequestReviewContributionConnection!
+
+  """
+  The repository in which the pull request reviews were made.
+  """
+  repository: Repository!
+}
+
+"""
+The review status of a pull request.
+"""
+enum PullRequestReviewDecision {
+  """
+  The pull request has received an approving review.
+  """
+  APPROVED
+
+  """
+  Changes have been requested on the pull request.
+  """
+  CHANGES_REQUESTED
+
+  """
+  A review is required before the pull request can be merged.
+  """
+  REVIEW_REQUIRED
+}
+
+"""
+An edge in a connection.
+"""
+type PullRequestReviewEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: PullRequestReview
+}
+
+"""
+The possible events to perform on a pull request review.
+"""
+enum PullRequestReviewEvent {
+  """
+  Submit feedback and approve merging these changes.
+  """
+  APPROVE
+
+  """
+  Submit general feedback without explicit approval.
+  """
+  COMMENT
+
+  """
+  Dismiss review so it now longer effects merging.
+  """
+  DISMISS
+
+  """
+  Submit feedback that must be addressed before merging.
+  """
+  REQUEST_CHANGES
+}
+
+"""
+The possible states of a pull request review.
+"""
+enum PullRequestReviewState {
+  """
+  A review allowing the pull request to merge.
+  """
+  APPROVED
+
+  """
+  A review blocking the pull request from merging.
+  """
+  CHANGES_REQUESTED
+
+  """
+  An informational review.
+  """
+  COMMENTED
+
+  """
+  A review that has been dismissed.
+  """
+  DISMISSED
+
+  """
+  A review that has not yet been submitted.
+  """
+  PENDING
+}
+
+"""
+A threaded list of comments for a given pull request.
+"""
+type PullRequestReviewThread implements Node {
+  """
+  A list of pull request comments associated with the thread.
+  """
+  comments(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Skips the first _n_ elements in the list.
+    """
+    skip: Int
+  ): PullRequestReviewCommentConnection!
+
+  """
+  The side of the diff on which this thread was placed.
+  """
+  diffSide: DiffSide!
+  id: ID!
+
+  """
+  Whether or not the thread has been collapsed (outdated or resolved)
+  """
+  isCollapsed: Boolean!
+
+  """
+  Indicates whether this thread was outdated by newer changes.
+  """
+  isOutdated: Boolean!
+
+  """
+  Whether this thread has been resolved
+  """
+  isResolved: Boolean!
+
+  """
+  The line in the file to which this thread refers
+  """
+  line: Int
+
+  """
+  The original line in the file to which this thread refers.
+  """
+  originalLine: Int
+
+  """
+  The original start line in the file to which this thread refers (multi-line only).
+  """
+  originalStartLine: Int
+
+  """
+  Identifies the file path of this thread.
+  """
+  path: String!
+
+  """
+  Identifies the pull request associated with this thread.
+  """
+  pullRequest: PullRequest!
+
+  """
+  Identifies the repository associated with this thread.
+  """
+  repository: Repository!
+
+  """
+  The user who resolved this thread
+  """
+  resolvedBy: User
+
+  """
+  The side of the diff that the first line of the thread starts on (multi-line only)
+  """
+  startDiffSide: DiffSide
+
+  """
+  The start line in the file to which this thread refers (multi-line only)
+  """
+  startLine: Int
+
+  """
+  Indicates whether the current viewer can reply to this thread.
+  """
+  viewerCanReply: Boolean!
+
+  """
+  Whether or not the viewer can resolve this thread
+  """
+  viewerCanResolve: Boolean!
+
+  """
+  Whether or not the viewer can unresolve this thread
+  """
+  viewerCanUnresolve: Boolean!
+}
+
+"""
+Review comment threads for a pull request review.
+"""
+type PullRequestReviewThreadConnection {
+  """
+  A list of edges.
+  """
+  edges: [PullRequestReviewThreadEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [PullRequestReviewThread]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+An edge in a connection.
+"""
+type PullRequestReviewThreadEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: PullRequestReviewThread
+}
+
+"""
+Represents the latest point in the pull request timeline for which the viewer has seen the pull request's commits.
+"""
+type PullRequestRevisionMarker {
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+
+  """
+  The last commit the viewer has seen.
+  """
+  lastSeenCommit: Commit!
+
+  """
+  The pull request to which the marker belongs.
+  """
+  pullRequest: PullRequest!
+}
+
+"""
+The possible states of a pull request.
+"""
+enum PullRequestState {
+  """
+  A pull request that has been closed without being merged.
+  """
+  CLOSED
+
+  """
+  A pull request that has been closed by being merged.
+  """
+  MERGED
+
+  """
+  A pull request that is still open.
+  """
+  OPEN
+}
+
+"""
+The connection type for PullRequestTimelineItem.
+"""
+type PullRequestTimelineConnection {
+  """
+  A list of edges.
+  """
+  edges: [PullRequestTimelineItemEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [PullRequestTimelineItem]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+An item in a pull request timeline
+"""
+union PullRequestTimelineItem = AssignedEvent | BaseRefDeletedEvent | BaseRefForcePushedEvent | ClosedEvent | Commit | CommitCommentThread | CrossReferencedEvent | DemilestonedEvent | DeployedEvent | DeploymentEnvironmentChangedEvent | HeadRefDeletedEvent | HeadRefForcePushedEvent | HeadRefRestoredEvent | IssueComment | LabeledEvent | LockedEvent | MergedEvent | MilestonedEvent | PullRequestReview | PullRequestReviewComment | PullRequestReviewThread | ReferencedEvent | RenamedTitleEvent | ReopenedEvent | ReviewDismissedEvent | ReviewRequestRemovedEvent | ReviewRequestedEvent | SubscribedEvent | UnassignedEvent | UnlabeledEvent | UnlockedEvent | UnsubscribedEvent | UserBlockedEvent
+
+"""
+An edge in a connection.
+"""
+type PullRequestTimelineItemEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: PullRequestTimelineItem
+}
+
+"""
+An item in a pull request timeline
+"""
+union PullRequestTimelineItems = AddedToProjectEvent | AssignedEvent | AutoMergeDisabledEvent | AutoMergeEnabledEvent | AutoRebaseEnabledEvent | AutoSquashEnabledEvent | AutomaticBaseChangeFailedEvent | AutomaticBaseChangeSucceededEvent | BaseRefChangedEvent | BaseRefDeletedEvent | BaseRefForcePushedEvent | ClosedEvent | CommentDeletedEvent | ConnectedEvent | ConvertToDraftEvent | ConvertedNoteToIssueEvent | CrossReferencedEvent | DemilestonedEvent | DeployedEvent | DeploymentEnvironmentChangedEvent | DisconnectedEvent | HeadRefDeletedEvent | HeadRefForcePushedEvent | HeadRefRestoredEvent | IssueComment | LabeledEvent | LockedEvent | MarkedAsDuplicateEvent | MentionedEvent | MergedEvent | MilestonedEvent | MovedColumnsInProjectEvent | PinnedEvent | PullRequestCommit | PullRequestCommitCommentThread | PullRequestReview | PullRequestReviewThread | PullRequestRevisionMarker | ReadyForReviewEvent | ReferencedEvent | RemovedFromProjectEvent | RenamedTitleEvent | ReopenedEvent | ReviewDismissedEvent | ReviewRequestRemovedEvent | ReviewRequestedEvent | SubscribedEvent | TransferredEvent | UnassignedEvent | UnlabeledEvent | UnlockedEvent | UnmarkedAsDuplicateEvent | UnpinnedEvent | UnsubscribedEvent | UserBlockedEvent
+
+"""
+The connection type for PullRequestTimelineItems.
+"""
+type PullRequestTimelineItemsConnection {
+  """
+  A list of edges.
+  """
+  edges: [PullRequestTimelineItemsEdge]
+
+  """
+  Identifies the count of items after applying `before` and `after` filters.
+  """
+  filteredCount: Int!
+
+  """
+  A list of nodes.
+  """
+  nodes: [PullRequestTimelineItems]
+
+  """
+  Identifies the count of items after applying `before`/`after` filters and `first`/`last`/`skip` slicing.
+  """
+  pageCount: Int!
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+
+  """
+  Identifies the date and time when the timeline was last updated.
+  """
+  updatedAt: DateTime!
+}
+
+"""
+An edge in a connection.
+"""
+type PullRequestTimelineItemsEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: PullRequestTimelineItems
+}
+
+"""
+The possible item types found in a timeline.
+"""
+enum PullRequestTimelineItemsItemType {
+  """
+  Represents a 'added_to_project' event on a given issue or pull request.
+  """
+  ADDED_TO_PROJECT_EVENT
+
+  """
+  Represents an 'assigned' event on any assignable object.
+  """
+  ASSIGNED_EVENT
+
+  """
+  Represents a 'automatic_base_change_failed' event on a given pull request.
+  """
+  AUTOMATIC_BASE_CHANGE_FAILED_EVENT
+
+  """
+  Represents a 'automatic_base_change_succeeded' event on a given pull request.
+  """
+  AUTOMATIC_BASE_CHANGE_SUCCEEDED_EVENT
+
+  """
+  Represents a 'auto_merge_disabled' event on a given pull request.
+  """
+  AUTO_MERGE_DISABLED_EVENT
+
+  """
+  Represents a 'auto_merge_enabled' event on a given pull request.
+  """
+  AUTO_MERGE_ENABLED_EVENT
+
+  """
+  Represents a 'auto_rebase_enabled' event on a given pull request.
+  """
+  AUTO_REBASE_ENABLED_EVENT
+
+  """
+  Represents a 'auto_squash_enabled' event on a given pull request.
+  """
+  AUTO_SQUASH_ENABLED_EVENT
+
+  """
+  Represents a 'base_ref_changed' event on a given issue or pull request.
+  """
+  BASE_REF_CHANGED_EVENT
+
+  """
+  Represents a 'base_ref_deleted' event on a given pull request.
+  """
+  BASE_REF_DELETED_EVENT
+
+  """
+  Represents a 'base_ref_force_pushed' event on a given pull request.
+  """
+  BASE_REF_FORCE_PUSHED_EVENT
+
+  """
+  Represents a 'closed' event on any `Closable`.
+  """
+  CLOSED_EVENT
+
+  """
+  Represents a 'comment_deleted' event on a given issue or pull request.
+  """
+  COMMENT_DELETED_EVENT
+
+  """
+  Represents a 'connected' event on a given issue or pull request.
+  """
+  CONNECTED_EVENT
+
+  """
+  Represents a 'converted_note_to_issue' event on a given issue or pull request.
+  """
+  CONVERTED_NOTE_TO_ISSUE_EVENT
+
+  """
+  Represents a 'convert_to_draft' event on a given pull request.
+  """
+  CONVERT_TO_DRAFT_EVENT
+
+  """
+  Represents a mention made by one issue or pull request to another.
+  """
+  CROSS_REFERENCED_EVENT
+
+  """
+  Represents a 'demilestoned' event on a given issue or pull request.
+  """
+  DEMILESTONED_EVENT
+
+  """
+  Represents a 'deployed' event on a given pull request.
+  """
+  DEPLOYED_EVENT
+
+  """
+  Represents a 'deployment_environment_changed' event on a given pull request.
+  """
+  DEPLOYMENT_ENVIRONMENT_CHANGED_EVENT
+
+  """
+  Represents a 'disconnected' event on a given issue or pull request.
+  """
+  DISCONNECTED_EVENT
+
+  """
+  Represents a 'head_ref_deleted' event on a given pull request.
+  """
+  HEAD_REF_DELETED_EVENT
+
+  """
+  Represents a 'head_ref_force_pushed' event on a given pull request.
+  """
+  HEAD_REF_FORCE_PUSHED_EVENT
+
+  """
+  Represents a 'head_ref_restored' event on a given pull request.
+  """
+  HEAD_REF_RESTORED_EVENT
+
+  """
+  Represents a comment on an Issue.
+  """
+  ISSUE_COMMENT
+
+  """
+  Represents a 'labeled' event on a given issue or pull request.
+  """
+  LABELED_EVENT
+
+  """
+  Represents a 'locked' event on a given issue or pull request.
+  """
+  LOCKED_EVENT
+
+  """
+  Represents a 'marked_as_duplicate' event on a given issue or pull request.
+  """
+  MARKED_AS_DUPLICATE_EVENT
+
+  """
+  Represents a 'mentioned' event on a given issue or pull request.
+  """
+  MENTIONED_EVENT
+
+  """
+  Represents a 'merged' event on a given pull request.
+  """
+  MERGED_EVENT
+
+  """
+  Represents a 'milestoned' event on a given issue or pull request.
+  """
+  MILESTONED_EVENT
+
+  """
+  Represents a 'moved_columns_in_project' event on a given issue or pull request.
+  """
+  MOVED_COLUMNS_IN_PROJECT_EVENT
+
+  """
+  Represents a 'pinned' event on a given issue or pull request.
+  """
+  PINNED_EVENT
+
+  """
+  Represents a Git commit part of a pull request.
+  """
+  PULL_REQUEST_COMMIT
+
+  """
+  Represents a commit comment thread part of a pull request.
+  """
+  PULL_REQUEST_COMMIT_COMMENT_THREAD
+
+  """
+  A review object for a given pull request.
+  """
+  PULL_REQUEST_REVIEW
+
+  """
+  A threaded list of comments for a given pull request.
+  """
+  PULL_REQUEST_REVIEW_THREAD
+
+  """
+  Represents the latest point in the pull request timeline for which the viewer has seen the pull request's commits.
+  """
+  PULL_REQUEST_REVISION_MARKER
+
+  """
+  Represents a 'ready_for_review' event on a given pull request.
+  """
+  READY_FOR_REVIEW_EVENT
+
+  """
+  Represents a 'referenced' event on a given `ReferencedSubject`.
+  """
+  REFERENCED_EVENT
+
+  """
+  Represents a 'removed_from_project' event on a given issue or pull request.
+  """
+  REMOVED_FROM_PROJECT_EVENT
+
+  """
+  Represents a 'renamed' event on a given issue or pull request
+  """
+  RENAMED_TITLE_EVENT
+
+  """
+  Represents a 'reopened' event on any `Closable`.
+  """
+  REOPENED_EVENT
+
+  """
+  Represents a 'review_dismissed' event on a given issue or pull request.
+  """
+  REVIEW_DISMISSED_EVENT
+
+  """
+  Represents an 'review_requested' event on a given pull request.
+  """
+  REVIEW_REQUESTED_EVENT
+
+  """
+  Represents an 'review_request_removed' event on a given pull request.
+  """
+  REVIEW_REQUEST_REMOVED_EVENT
+
+  """
+  Represents a 'subscribed' event on a given `Subscribable`.
+  """
+  SUBSCRIBED_EVENT
+
+  """
+  Represents a 'transferred' event on a given issue or pull request.
+  """
+  TRANSFERRED_EVENT
+
+  """
+  Represents an 'unassigned' event on any assignable object.
+  """
+  UNASSIGNED_EVENT
+
+  """
+  Represents an 'unlabeled' event on a given issue or pull request.
+  """
+  UNLABELED_EVENT
+
+  """
+  Represents an 'unlocked' event on a given issue or pull request.
+  """
+  UNLOCKED_EVENT
+
+  """
+  Represents an 'unmarked_as_duplicate' event on a given issue or pull request.
+  """
+  UNMARKED_AS_DUPLICATE_EVENT
+
+  """
+  Represents an 'unpinned' event on a given issue or pull request.
+  """
+  UNPINNED_EVENT
+
+  """
+  Represents an 'unsubscribed' event on a given `Subscribable`.
+  """
+  UNSUBSCRIBED_EVENT
+
+  """
+  Represents a 'user_blocked' event on a given user.
+  """
+  USER_BLOCKED_EVENT
+}
+
+"""
+The possible target states when updating a pull request.
+"""
+enum PullRequestUpdateState {
+  """
+  A pull request that has been closed without being merged.
+  """
+  CLOSED
+
+  """
+  A pull request that is still open.
+  """
+  OPEN
+}
+
+"""
+A Git push.
+"""
+type Push implements Node {
+  id: ID!
+
+  """
+  The SHA after the push
+  """
+  nextSha: GitObjectID
+
+  """
+  The permalink for this push.
+  """
+  permalink: URI!
+
+  """
+  The SHA before the push
+  """
+  previousSha: GitObjectID
+
+  """
+  The user who pushed
+  """
+  pusher: User!
+
+  """
+  The repository that was pushed to
+  """
+  repository: Repository!
+}
+
+"""
+A team, user or app who has the ability to push to a protected branch.
+"""
+type PushAllowance implements Node {
+  """
+  The actor that can push.
+  """
+  actor: PushAllowanceActor
+
+  """
+  Identifies the branch protection rule associated with the allowed user or team.
+  """
+  branchProtectionRule: BranchProtectionRule
+  id: ID!
+}
+
+"""
+Types that can be an actor.
+"""
+union PushAllowanceActor = App | Team | User
+
+"""
+The connection type for PushAllowance.
+"""
+type PushAllowanceConnection {
+  """
+  A list of edges.
+  """
+  edges: [PushAllowanceEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [PushAllowance]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+An edge in a connection.
+"""
+type PushAllowanceEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: PushAllowance
+}
+
+"""
+The query root of GitHub's GraphQL interface.
+"""
+type Query {
+  """
+  Look up a code of conduct by its key
+  """
+  codeOfConduct(
+    """
+    The code of conduct's key
+    """
+    key: String!
+  ): CodeOfConduct
+
+  """
+  Look up a code of conduct by its key
+  """
+  codesOfConduct: [CodeOfConduct]
+
+  """
+  Look up an enterprise by URL slug.
+  """
+  enterprise(
+    """
+    The enterprise invitation token.
+    """
+    invitationToken: String
+
+    """
+    The enterprise URL slug.
+    """
+    slug: String!
+  ): Enterprise
+
+  """
+  Look up a pending enterprise administrator invitation by invitee, enterprise and role.
+  """
+  enterpriseAdministratorInvitation(
+    """
+    The slug of the enterprise the user was invited to join.
+    """
+    enterpriseSlug: String!
+
+    """
+    The role for the business member invitation.
+    """
+    role: EnterpriseAdministratorRole!
+
+    """
+    The login of the user invited to join the business.
+    """
+    userLogin: String!
+  ): EnterpriseAdministratorInvitation
+
+  """
+  Look up a pending enterprise administrator invitation by invitation token.
+  """
+  enterpriseAdministratorInvitationByToken(
+    """
+    The invitation token sent with the invitation email.
+    """
+    invitationToken: String!
+  ): EnterpriseAdministratorInvitation
+
+  """
+  Look up an open source license by its key
+  """
+  license(
+    """
+    The license's downcased SPDX ID
+    """
+    key: String!
+  ): License
+
+  """
+  Return a list of known open source licenses
+  """
+  licenses: [License]!
+
+  """
+  Get alphabetically sorted list of Marketplace categories
+  """
+  marketplaceCategories(
+    """
+    Exclude categories with no listings.
+    """
+    excludeEmpty: Boolean
+
+    """
+    Returns top level categories only, excluding any subcategories.
+    """
+    excludeSubcategories: Boolean
+
+    """
+    Return only the specified categories.
+    """
+    includeCategories: [String!]
+  ): [MarketplaceCategory!]!
+
+  """
+  Look up a Marketplace category by its slug.
+  """
+  marketplaceCategory(
+    """
+    The URL slug of the category.
+    """
+    slug: String!
+
+    """
+    Also check topic aliases for the category slug
+    """
+    useTopicAliases: Boolean
+  ): MarketplaceCategory
+
+  """
+  Look up a single Marketplace listing
+  """
+  marketplaceListing(
+    """
+    Select the listing that matches this slug. It's the short name of the listing used in its URL.
+    """
+    slug: String!
+  ): MarketplaceListing
+
+  """
+  Look up Marketplace listings
+  """
+  marketplaceListings(
+    """
+    Select listings that can be administered by the specified user.
+    """
+    adminId: ID
+
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Select listings visible to the viewer even if they are not approved. If omitted or
+    false, only approved listings will be returned.
+    """
+    allStates: Boolean
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Select only listings with the given category.
+    """
+    categorySlug: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Select listings for products owned by the specified organization.
+    """
+    organizationId: ID
+
+    """
+    Select only listings where the primary category matches the given category slug.
+    """
+    primaryCategoryOnly: Boolean = false
+
+    """
+    Select the listings with these slugs, if they are visible to the viewer.
+    """
+    slugs: [String]
+
+    """
+    Also check topic aliases for the category slug
+    """
+    useTopicAliases: Boolean
+
+    """
+    Select listings to which user has admin access. If omitted, listings visible to the
+    viewer are returned.
+    """
+    viewerCanAdmin: Boolean
+
+    """
+    Select only listings that offer a free trial.
+    """
+    withFreeTrialsOnly: Boolean = false
+  ): MarketplaceListingConnection!
+
+  """
+  Return information about the GitHub instance
+  """
+  meta: GitHubMetadata!
+
+  """
+  Fetches an object given its ID.
+  """
+  node(
+    """
+    ID of the object.
+    """
+    id: ID!
+  ): Node
+
+  """
+  Lookup nodes by a list of IDs.
+  """
+  nodes(
+    """
+    The list of node IDs.
+    """
+    ids: [ID!]!
+  ): [Node]!
+
+  """
+  Lookup a organization by login.
+  """
+  organization(
+    """
+    The organization's login.
+    """
+    login: String!
+  ): Organization
+
+  """
+  The client's rate limit information.
+  """
+  rateLimit(
+    """
+    If true, calculate the cost for the query without evaluating it
+    """
+    dryRun: Boolean = false
+  ): RateLimit
+
+  """
+  Hack to workaround https://github.com/facebook/relay/issues/112 re-exposing the root query object
+  """
+  relay: Query!
+
+  """
+  Lookup a given repository by the owner and repository name.
+  """
+  repository(
+    """
+    The name of the repository
+    """
+    name: String!
+
+    """
+    The login field of a user or organization
+    """
+    owner: String!
+  ): Repository
+
+  """
+  Lookup a repository owner (ie. either a User or an Organization) by login.
+  """
+  repositoryOwner(
+    """
+    The username to lookup the owner by.
+    """
+    login: String!
+  ): RepositoryOwner
+
+  """
+  Lookup resource by a URL.
+  """
+  resource(
+    """
+    The URL.
+    """
+    url: URI!
+  ): UniformResourceLocatable
+
+  """
+  Perform a search across resources.
+  """
+  search(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    The search string to look for.
+    """
+    query: String!
+
+    """
+    The types of search items to search within.
+    """
+    type: SearchType!
+  ): SearchResultItemConnection!
+
+  """
+  GitHub Security Advisories
+  """
+  securityAdvisories(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Filter advisories by identifier, e.g. GHSA or CVE.
+    """
+    identifier: SecurityAdvisoryIdentifierFilter
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for the returned topics.
+    """
+    orderBy: SecurityAdvisoryOrder = {field: UPDATED_AT, direction: DESC}
+
+    """
+    Filter advisories to those published since a time in the past.
+    """
+    publishedSince: DateTime
+
+    """
+    Filter advisories to those updated since a time in the past.
+    """
+    updatedSince: DateTime
+  ): SecurityAdvisoryConnection!
+
+  """
+  Fetch a Security Advisory by its GHSA ID
+  """
+  securityAdvisory(
+    """
+    GitHub Security Advisory ID.
+    """
+    ghsaId: String!
+  ): SecurityAdvisory
+
+  """
+  Software Vulnerabilities documented by GitHub Security Advisories
+  """
+  securityVulnerabilities(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    An ecosystem to filter vulnerabilities by.
+    """
+    ecosystem: SecurityAdvisoryEcosystem
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for the returned topics.
+    """
+    orderBy: SecurityVulnerabilityOrder = {field: UPDATED_AT, direction: DESC}
+
+    """
+    A package name to filter vulnerabilities by.
+    """
+    package: String
+
+    """
+    A list of severities to filter vulnerabilities by.
+    """
+    severities: [SecurityAdvisorySeverity!]
+  ): SecurityVulnerabilityConnection!
+
+  """
+  Users and organizations who can be sponsored via GitHub Sponsors.
+  """
+  sponsorables(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Optional filter for which dependencies should be checked for sponsorable
+    owners. Only sponsorable owners of dependencies in this ecosystem will be
+    included. Used when onlyDependencies = true.
+    """
+    dependencyEcosystem: SecurityAdvisoryEcosystem
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Whether only sponsorables who own the viewer's dependencies will be
+    returned. Must be authenticated to use. Can check an organization instead
+    for their dependencies owned by sponsorables by passing
+    orgLoginForDependencies.
+    """
+    onlyDependencies: Boolean = false
+
+    """
+    Ordering options for users and organizations returned from the connection.
+    """
+    orderBy: SponsorableOrder = {field: LOGIN, direction: ASC}
+
+    """
+    Optional organization username for whose dependencies should be checked.
+    Used when onlyDependencies = true. Omit to check your own dependencies. If
+    you are not an administrator of the organization, only dependencies from its
+    public repositories will be considered.
+    """
+    orgLoginForDependencies: String
+  ): SponsorableItemConnection!
+
+  """
+  Look up a single Sponsors Listing
+  """
+  sponsorsListing(
+    """
+    Select the Sponsors listing which matches this slug
+    """
+    slug: String!
+  ): SponsorsListing @deprecated(reason: "`Query.sponsorsListing` will be removed. Use `Sponsorable.sponsorsListing` instead. Removal on 2020-04-01 UTC.")
+
+  """
+  Look up a topic by name.
+  """
+  topic(
+    """
+    The topic's name.
+    """
+    name: String!
+  ): Topic
+
+  """
+  Lookup a user by login.
+  """
+  user(
+    """
+    The user's login.
+    """
+    login: String!
+  ): User
+
+  """
+  The currently authenticated user.
+  """
+  viewer: User!
+}
+
+"""
+Represents the client's rate limit.
+"""
+type RateLimit {
+  """
+  The point cost for the current query counting against the rate limit.
+  """
+  cost: Int!
+
+  """
+  The maximum number of points the client is permitted to consume in a 60 minute window.
+  """
+  limit: Int!
+
+  """
+  The maximum number of nodes this query may return
+  """
+  nodeCount: Int!
+
+  """
+  The number of points remaining in the current rate limit window.
+  """
+  remaining: Int!
+
+  """
+  The time at which the current rate limit window resets in UTC epoch seconds.
+  """
+  resetAt: DateTime!
+
+  """
+  The number of points used in the current rate limit window.
+  """
+  used: Int!
+}
+
+"""
+Represents a subject that can be reacted on.
+"""
+interface Reactable {
+  """
+  Identifies the primary key from the database.
+  """
+  databaseId: Int
+  id: ID!
+
+  """
+  A list of reactions grouped by content left on the subject.
+  """
+  reactionGroups: [ReactionGroup!]
+
+  """
+  A list of Reactions left on the Issue.
+  """
+  reactions(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Allows filtering Reactions by emoji.
+    """
+    content: ReactionContent
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Allows specifying the order in which reactions are returned.
+    """
+    orderBy: ReactionOrder
+  ): ReactionConnection!
+
+  """
+  Can user react to this subject
+  """
+  viewerCanReact: Boolean!
+}
+
+"""
+The connection type for User.
+"""
+type ReactingUserConnection {
+  """
+  A list of edges.
+  """
+  edges: [ReactingUserEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [User]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+Represents a user that's made a reaction.
+"""
+type ReactingUserEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+  node: User!
+
+  """
+  The moment when the user made the reaction.
+  """
+  reactedAt: DateTime!
+}
+
+"""
+An emoji reaction to a particular piece of content.
+"""
+type Reaction implements Node {
+  """
+  Identifies the emoji reaction.
+  """
+  content: ReactionContent!
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+
+  """
+  Identifies the primary key from the database.
+  """
+  databaseId: Int
+  id: ID!
+
+  """
+  The reactable piece of content
+  """
+  reactable: Reactable!
+
+  """
+  Identifies the user who created this reaction.
+  """
+  user: User
+}
+
+"""
+A list of reactions that have been left on the subject.
+"""
+type ReactionConnection {
+  """
+  A list of edges.
+  """
+  edges: [ReactionEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [Reaction]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+
+  """
+  Whether or not the authenticated user has left a reaction on the subject.
+  """
+  viewerHasReacted: Boolean!
+}
+
+"""
+Emojis that can be attached to Issues, Pull Requests and Comments.
+"""
+enum ReactionContent {
+  """
+  Represents the `:confused:` emoji.
+  """
+  CONFUSED
+
+  """
+  Represents the `:eyes:` emoji.
+  """
+  EYES
+
+  """
+  Represents the `:heart:` emoji.
+  """
+  HEART
+
+  """
+  Represents the `:hooray:` emoji.
+  """
+  HOORAY
+
+  """
+  Represents the `:laugh:` emoji.
+  """
+  LAUGH
+
+  """
+  Represents the `:rocket:` emoji.
+  """
+  ROCKET
+
+  """
+  Represents the `:-1:` emoji.
+  """
+  THUMBS_DOWN
+
+  """
+  Represents the `:+1:` emoji.
+  """
+  THUMBS_UP
+}
+
+"""
+An edge in a connection.
+"""
+type ReactionEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: Reaction
+}
+
+"""
+A group of emoji reactions to a particular piece of content.
+"""
+type ReactionGroup {
+  """
+  Identifies the emoji reaction.
+  """
+  content: ReactionContent!
+
+  """
+  Identifies when the reaction was created.
+  """
+  createdAt: DateTime
+
+  """
+  The subject that was reacted to.
+  """
+  subject: Reactable!
+
+  """
+  Users who have reacted to the reaction subject with the emotion represented by this reaction group
+  """
+  users(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+  ): ReactingUserConnection!
+
+  """
+  Whether or not the authenticated user has left a reaction on the subject.
+  """
+  viewerHasReacted: Boolean!
+}
+
+"""
+Ways in which lists of reactions can be ordered upon return.
+"""
+input ReactionOrder {
+  """
+  The direction in which to order reactions by the specified field.
+  """
+  direction: OrderDirection!
+
+  """
+  The field in which to order reactions by.
+  """
+  field: ReactionOrderField!
+}
+
+"""
+A list of fields that reactions can be ordered by.
+"""
+enum ReactionOrderField {
+  """
+  Allows ordering a list of reactions by when they were created.
+  """
+  CREATED_AT
+}
+
+"""
+Represents a 'ready_for_review' event on a given pull request.
+"""
+type ReadyForReviewEvent implements Node & UniformResourceLocatable {
+  """
+  Identifies the actor who performed the event.
+  """
+  actor: Actor
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+  id: ID!
+
+  """
+  PullRequest referenced by event.
+  """
+  pullRequest: PullRequest!
+
+  """
+  The HTTP path for this ready for review event.
+  """
+  resourcePath: URI!
+
+  """
+  The HTTP URL for this ready for review event.
+  """
+  url: URI!
+}
+
+"""
+Represents a Git reference.
+"""
+type Ref implements Node {
+  """
+  A list of pull requests with this ref as the head ref.
+  """
+  associatedPullRequests(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    The base ref name to filter the pull requests by.
+    """
+    baseRefName: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    The head ref name to filter the pull requests by.
+    """
+    headRefName: String
+
+    """
+    A list of label names to filter the pull requests by.
+    """
+    labels: [String!]
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for pull requests returned from the connection.
+    """
+    orderBy: IssueOrder
+
+    """
+    A list of states to filter the pull requests by.
+    """
+    states: [PullRequestState!]
+  ): PullRequestConnection!
+
+  """
+  Branch protection rules for this ref
+  """
+  branchProtectionRule: BranchProtectionRule
+  id: ID!
+
+  """
+  The ref name.
+  """
+  name: String!
+
+  """
+  The ref's prefix, such as `refs/heads/` or `refs/tags/`.
+  """
+  prefix: String!
+
+  """
+  Branch protection rules that are viewable by non-admins
+  """
+  refUpdateRule: RefUpdateRule
+
+  """
+  The repository the ref belongs to.
+  """
+  repository: Repository!
+
+  """
+  The object the ref points to. Returns null when object does not exist.
+  """
+  target: GitObject
+}
+
+"""
+The connection type for Ref.
+"""
+type RefConnection {
+  """
+  A list of edges.
+  """
+  edges: [RefEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [Ref]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+An edge in a connection.
+"""
+type RefEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: Ref
+}
+
+"""
+Ways in which lists of git refs can be ordered upon return.
+"""
+input RefOrder {
+  """
+  The direction in which to order refs by the specified field.
+  """
+  direction: OrderDirection!
+
+  """
+  The field in which to order refs by.
+  """
+  field: RefOrderField!
+}
+
+"""
+Properties by which ref connections can be ordered.
+"""
+enum RefOrderField {
+  """
+  Order refs by their alphanumeric name
+  """
+  ALPHABETICAL
+
+  """
+  Order refs by underlying commit date if the ref prefix is refs/tags/
+  """
+  TAG_COMMIT_DATE
+}
+
+"""
+A ref update rules for a viewer.
+"""
+type RefUpdateRule {
+  """
+  Can this branch be deleted.
+  """
+  allowsDeletions: Boolean!
+
+  """
+  Are force pushes allowed on this branch.
+  """
+  allowsForcePushes: Boolean!
+
+  """
+  Identifies the protection rule pattern.
+  """
+  pattern: String!
+
+  """
+  Number of approving reviews required to update matching branches.
+  """
+  requiredApprovingReviewCount: Int
+
+  """
+  List of required status check contexts that must pass for commits to be accepted to matching branches.
+  """
+  requiredStatusCheckContexts: [String]
+
+  """
+  Are merge commits prohibited from being pushed to this branch.
+  """
+  requiresLinearHistory: Boolean!
+
+  """
+  Are commits required to be signed.
+  """
+  requiresSignatures: Boolean!
+
+  """
+  Can the viewer push to the branch
+  """
+  viewerCanPush: Boolean!
+}
+
+"""
+Represents a 'referenced' event on a given `ReferencedSubject`.
+"""
+type ReferencedEvent implements Node {
+  """
+  Identifies the actor who performed the event.
+  """
+  actor: Actor
+
+  """
+  Identifies the commit associated with the 'referenced' event.
+  """
+  commit: Commit
+
+  """
+  Identifies the repository associated with the 'referenced' event.
+  """
+  commitRepository: Repository!
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+  id: ID!
+
+  """
+  Reference originated in a different repository.
+  """
+  isCrossRepository: Boolean!
+
+  """
+  Checks if the commit message itself references the subject. Can be false in the case of a commit comment reference.
+  """
+  isDirectReference: Boolean!
+
+  """
+  Object referenced by event.
+  """
+  subject: ReferencedSubject!
+}
+
+"""
+Any referencable object
+"""
+union ReferencedSubject = Issue | PullRequest
+
+"""
+Autogenerated input type of RegenerateEnterpriseIdentityProviderRecoveryCodes
+"""
+input RegenerateEnterpriseIdentityProviderRecoveryCodesInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The ID of the enterprise on which to set an identity provider.
+  """
+  enterpriseId: ID!
+}
+
+"""
+Autogenerated return type of RegenerateEnterpriseIdentityProviderRecoveryCodes
+"""
+type RegenerateEnterpriseIdentityProviderRecoveryCodesPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The identity provider for the enterprise.
+  """
+  identityProvider: EnterpriseIdentityProvider
+}
+
+"""
+Autogenerated input type of RegenerateVerifiableDomainToken
+"""
+input RegenerateVerifiableDomainTokenInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The ID of the verifiable domain to regenerate the verification token of.
+  """
+  id: ID!
+}
+
+"""
+Autogenerated return type of RegenerateVerifiableDomainToken
+"""
+type RegenerateVerifiableDomainTokenPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The verification token that was generated.
+  """
+  verificationToken: String
+}
+
+"""
+A release contains the content for a release.
+"""
+type Release implements Node & UniformResourceLocatable {
+  """
+  The author of the release
+  """
+  author: User
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+
+  """
+  The description of the release.
+  """
+  description: String
+
+  """
+  The description of this release rendered to HTML.
+  """
+  descriptionHTML: HTML
+  id: ID!
+
+  """
+  Whether or not the release is a draft
+  """
+  isDraft: Boolean!
+
+  """
+  Whether or not the release is the latest releast
+  """
+  isLatest: Boolean!
+
+  """
+  Whether or not the release is a prerelease
+  """
+  isPrerelease: Boolean!
+
+  """
+  The title of the release.
+  """
+  name: String
+
+  """
+  Identifies the date and time when the release was created.
+  """
+  publishedAt: DateTime
+
+  """
+  List of releases assets which are dependent on this release.
+  """
+  releaseAssets(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    A list of names to filter the assets by.
+    """
+    name: String
+  ): ReleaseAssetConnection!
+
+  """
+  The repository that the release belongs to.
+  """
+  repository: Repository!
+
+  """
+  The HTTP path for this issue
+  """
+  resourcePath: URI!
+
+  """
+  A description of the release, rendered to HTML without any links in it.
+  """
+  shortDescriptionHTML(
+    """
+    How many characters to return.
+    """
+    limit: Int = 200
+  ): HTML
+
+  """
+  The Git tag the release points to
+  """
+  tag: Ref
+
+  """
+  The name of the release's Git tag
+  """
+  tagName: String!
+
+  """
+  Identifies the date and time when the object was last updated.
+  """
+  updatedAt: DateTime!
+
+  """
+  The HTTP URL for this issue
+  """
+  url: URI!
+}
+
+"""
+A release asset contains the content for a release asset.
+"""
+type ReleaseAsset implements Node {
+  """
+  The asset's content-type
+  """
+  contentType: String!
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+
+  """
+  The number of times this asset was downloaded
+  """
+  downloadCount: Int!
+
+  """
+  Identifies the URL where you can download the release asset via the browser.
+  """
+  downloadUrl: URI!
+  id: ID!
+
+  """
+  Identifies the title of the release asset.
+  """
+  name: String!
+
+  """
+  Release that the asset is associated with
+  """
+  release: Release
+
+  """
+  The size (in bytes) of the asset
+  """
+  size: Int!
+
+  """
+  Identifies the date and time when the object was last updated.
+  """
+  updatedAt: DateTime!
+
+  """
+  The user that performed the upload
+  """
+  uploadedBy: User!
+
+  """
+  Identifies the URL of the release asset.
+  """
+  url: URI!
+}
+
+"""
+The connection type for ReleaseAsset.
+"""
+type ReleaseAssetConnection {
+  """
+  A list of edges.
+  """
+  edges: [ReleaseAssetEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [ReleaseAsset]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+An edge in a connection.
+"""
+type ReleaseAssetEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: ReleaseAsset
+}
+
+"""
+The connection type for Release.
+"""
+type ReleaseConnection {
+  """
+  A list of edges.
+  """
+  edges: [ReleaseEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [Release]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+An edge in a connection.
+"""
+type ReleaseEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: Release
+}
+
+"""
+Ways in which lists of releases can be ordered upon return.
+"""
+input ReleaseOrder {
+  """
+  The direction in which to order releases by the specified field.
+  """
+  direction: OrderDirection!
+
+  """
+  The field in which to order releases by.
+  """
+  field: ReleaseOrderField!
+}
+
+"""
+Properties by which release connections can be ordered.
+"""
+enum ReleaseOrderField {
+  """
+  Order releases by creation time
+  """
+  CREATED_AT
+
+  """
+  Order releases alphabetically by name
+  """
+  NAME
+}
+
+"""
+Autogenerated input type of RemoveAssigneesFromAssignable
+"""
+input RemoveAssigneesFromAssignableInput {
+  """
+  The id of the assignable object to remove assignees from.
+  """
+  assignableId: ID!
+
+  """
+  The id of users to remove as assignees.
+  """
+  assigneeIds: [ID!]!
+
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+}
+
+"""
+Autogenerated return type of RemoveAssigneesFromAssignable
+"""
+type RemoveAssigneesFromAssignablePayload {
+  """
+  The item that was unassigned.
+  """
+  assignable: Assignable
+
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+}
+
+"""
+Autogenerated input type of RemoveEnterpriseAdmin
+"""
+input RemoveEnterpriseAdminInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The Enterprise ID from which to remove the administrator.
+  """
+  enterpriseId: ID!
+
+  """
+  The login of the user to remove as an administrator.
+  """
+  login: String!
+}
+
+"""
+Autogenerated return type of RemoveEnterpriseAdmin
+"""
+type RemoveEnterpriseAdminPayload {
+  """
+  The user who was removed as an administrator.
+  """
+  admin: User
+
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The updated enterprise.
+  """
+  enterprise: Enterprise
+
+  """
+  A message confirming the result of removing an administrator.
+  """
+  message: String
+
+  """
+  The viewer performing the mutation.
+  """
+  viewer: User
+}
+
+"""
+Autogenerated input type of RemoveEnterpriseIdentityProvider
+"""
+input RemoveEnterpriseIdentityProviderInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The ID of the enterprise from which to remove the identity provider.
+  """
+  enterpriseId: ID!
+}
+
+"""
+Autogenerated return type of RemoveEnterpriseIdentityProvider
+"""
+type RemoveEnterpriseIdentityProviderPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The identity provider that was removed from the enterprise.
+  """
+  identityProvider: EnterpriseIdentityProvider
+}
+
+"""
+Autogenerated input type of RemoveEnterpriseOrganization
+"""
+input RemoveEnterpriseOrganizationInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The ID of the enterprise from which the organization should be removed.
+  """
+  enterpriseId: ID!
+
+  """
+  The ID of the organization to remove from the enterprise.
+  """
+  organizationId: ID!
+}
+
+"""
+Autogenerated return type of RemoveEnterpriseOrganization
+"""
+type RemoveEnterpriseOrganizationPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The updated enterprise.
+  """
+  enterprise: Enterprise
+
+  """
+  The organization that was removed from the enterprise.
+  """
+  organization: Organization
+
+  """
+  The viewer performing the mutation.
+  """
+  viewer: User
+}
+
+"""
+Autogenerated input type of RemoveEnterpriseSupportEntitlement
+"""
+input RemoveEnterpriseSupportEntitlementInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The ID of the Enterprise which the admin belongs to.
+  """
+  enterpriseId: ID!
+
+  """
+  The login of a member who will lose the support entitlement.
+  """
+  login: String!
+}
+
+"""
+Autogenerated return type of RemoveEnterpriseSupportEntitlement
+"""
+type RemoveEnterpriseSupportEntitlementPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  A message confirming the result of removing the support entitlement.
+  """
+  message: String
+}
+
+"""
+Autogenerated input type of RemoveLabelsFromLabelable
+"""
+input RemoveLabelsFromLabelableInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The ids of labels to remove.
+  """
+  labelIds: [ID!]!
+
+  """
+  The id of the Labelable to remove labels from.
+  """
+  labelableId: ID!
+}
+
+"""
+Autogenerated return type of RemoveLabelsFromLabelable
+"""
+type RemoveLabelsFromLabelablePayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The Labelable the labels were removed from.
+  """
+  labelable: Labelable
+}
+
+"""
+Autogenerated input type of RemoveOutsideCollaborator
+"""
+input RemoveOutsideCollaboratorInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The ID of the organization to remove the outside collaborator from.
+  """
+  organizationId: ID!
+
+  """
+  The ID of the outside collaborator to remove.
+  """
+  userId: ID!
+}
+
+"""
+Autogenerated return type of RemoveOutsideCollaborator
+"""
+type RemoveOutsideCollaboratorPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The user that was removed as an outside collaborator.
+  """
+  removedUser: User
+}
+
+"""
+Autogenerated input type of RemoveReaction
+"""
+input RemoveReactionInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The name of the emoji reaction to remove.
+  """
+  content: ReactionContent!
+
+  """
+  The Node ID of the subject to modify.
+  """
+  subjectId: ID!
+}
+
+"""
+Autogenerated return type of RemoveReaction
+"""
+type RemoveReactionPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The reaction object.
+  """
+  reaction: Reaction
+
+  """
+  The reactable subject.
+  """
+  subject: Reactable
+}
+
+"""
+Autogenerated input type of RemoveStar
+"""
+input RemoveStarInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The Starrable ID to unstar.
+  """
+  starrableId: ID!
+}
+
+"""
+Autogenerated return type of RemoveStar
+"""
+type RemoveStarPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The starrable.
+  """
+  starrable: Starrable
+}
+
+"""
+Represents a 'removed_from_project' event on a given issue or pull request.
+"""
+type RemovedFromProjectEvent implements Node {
+  """
+  Identifies the actor who performed the event.
+  """
+  actor: Actor
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+
+  """
+  Identifies the primary key from the database.
+  """
+  databaseId: Int
+  id: ID!
+}
+
+"""
+Represents a 'renamed' event on a given issue or pull request
+"""
+type RenamedTitleEvent implements Node {
+  """
+  Identifies the actor who performed the event.
+  """
+  actor: Actor
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+
+  """
+  Identifies the current title of the issue or pull request.
+  """
+  currentTitle: String!
+  id: ID!
+
+  """
+  Identifies the previous title of the issue or pull request.
+  """
+  previousTitle: String!
+
+  """
+  Subject that was renamed.
+  """
+  subject: RenamedTitleSubject!
+}
+
+"""
+An object which has a renamable title
+"""
+union RenamedTitleSubject = Issue | PullRequest
+
+"""
+Autogenerated input type of ReopenIssue
+"""
+input ReopenIssueInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  ID of the issue to be opened.
+  """
+  issueId: ID!
+}
+
+"""
+Autogenerated return type of ReopenIssue
+"""
+type ReopenIssuePayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The issue that was opened.
+  """
+  issue: Issue
+}
+
+"""
+Autogenerated input type of ReopenPullRequest
+"""
+input ReopenPullRequestInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  ID of the pull request to be reopened.
+  """
+  pullRequestId: ID!
+}
+
+"""
+Autogenerated return type of ReopenPullRequest
+"""
+type ReopenPullRequestPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The pull request that was reopened.
+  """
+  pullRequest: PullRequest
+}
+
+"""
+Represents a 'reopened' event on any `Closable`.
+"""
+type ReopenedEvent implements Node {
+  """
+  Identifies the actor who performed the event.
+  """
+  actor: Actor
+
+  """
+  Object that was reopened.
+  """
+  closable: Closable!
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+  id: ID!
+}
+
+"""
+Audit log entry for a repo.access event.
+"""
+type RepoAccessAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData {
+  """
+  The action name
+  """
+  action: String!
+
+  """
+  The user who initiated the action
+  """
+  actor: AuditEntryActor
+
+  """
+  The IP address of the actor
+  """
+  actorIp: String
+
+  """
+  A readable representation of the actor's location
+  """
+  actorLocation: ActorLocation
+
+  """
+  The username of the user who initiated the action
+  """
+  actorLogin: String
+
+  """
+  The HTTP path for the actor.
+  """
+  actorResourcePath: URI
+
+  """
+  The HTTP URL for the actor.
+  """
+  actorUrl: URI
+
+  """
+  The time the action was initiated
+  """
+  createdAt: PreciseDateTime!
+  id: ID!
+
+  """
+  The corresponding operation type for the action
+  """
+  operationType: OperationType
+
+  """
+  The Organization associated with the Audit Entry.
+  """
+  organization: Organization
+
+  """
+  The name of the Organization.
+  """
+  organizationName: String
+
+  """
+  The HTTP path for the organization
+  """
+  organizationResourcePath: URI
+
+  """
+  The HTTP URL for the organization
+  """
+  organizationUrl: URI
+
+  """
+  The repository associated with the action
+  """
+  repository: Repository
+
+  """
+  The name of the repository
+  """
+  repositoryName: String
+
+  """
+  The HTTP path for the repository
+  """
+  repositoryResourcePath: URI
+
+  """
+  The HTTP URL for the repository
+  """
+  repositoryUrl: URI
+
+  """
+  The user affected by the action
+  """
+  user: User
+
+  """
+  For actions involving two users, the actor is the initiator and the user is the affected user.
+  """
+  userLogin: String
+
+  """
+  The HTTP path for the user.
+  """
+  userResourcePath: URI
+
+  """
+  The HTTP URL for the user.
+  """
+  userUrl: URI
+
+  """
+  The visibility of the repository
+  """
+  visibility: RepoAccessAuditEntryVisibility
+}
+
+"""
+The privacy of a repository
+"""
+enum RepoAccessAuditEntryVisibility {
+  """
+  The repository is visible only to users in the same business.
+  """
+  INTERNAL
+
+  """
+  The repository is visible only to those with explicit access.
+  """
+  PRIVATE
+
+  """
+  The repository is visible to everyone.
+  """
+  PUBLIC
+}
+
+"""
+Audit log entry for a repo.add_member event.
+"""
+type RepoAddMemberAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData {
+  """
+  The action name
+  """
+  action: String!
+
+  """
+  The user who initiated the action
+  """
+  actor: AuditEntryActor
+
+  """
+  The IP address of the actor
+  """
+  actorIp: String
+
+  """
+  A readable representation of the actor's location
+  """
+  actorLocation: ActorLocation
+
+  """
+  The username of the user who initiated the action
+  """
+  actorLogin: String
+
+  """
+  The HTTP path for the actor.
+  """
+  actorResourcePath: URI
+
+  """
+  The HTTP URL for the actor.
+  """
+  actorUrl: URI
+
+  """
+  The time the action was initiated
+  """
+  createdAt: PreciseDateTime!
+  id: ID!
+
+  """
+  The corresponding operation type for the action
+  """
+  operationType: OperationType
+
+  """
+  The Organization associated with the Audit Entry.
+  """
+  organization: Organization
+
+  """
+  The name of the Organization.
+  """
+  organizationName: String
+
+  """
+  The HTTP path for the organization
+  """
+  organizationResourcePath: URI
+
+  """
+  The HTTP URL for the organization
+  """
+  organizationUrl: URI
+
+  """
+  The repository associated with the action
+  """
+  repository: Repository
+
+  """
+  The name of the repository
+  """
+  repositoryName: String
+
+  """
+  The HTTP path for the repository
+  """
+  repositoryResourcePath: URI
+
+  """
+  The HTTP URL for the repository
+  """
+  repositoryUrl: URI
+
+  """
+  The user affected by the action
+  """
+  user: User
+
+  """
+  For actions involving two users, the actor is the initiator and the user is the affected user.
+  """
+  userLogin: String
+
+  """
+  The HTTP path for the user.
+  """
+  userResourcePath: URI
+
+  """
+  The HTTP URL for the user.
+  """
+  userUrl: URI
+
+  """
+  The visibility of the repository
+  """
+  visibility: RepoAddMemberAuditEntryVisibility
+}
+
+"""
+The privacy of a repository
+"""
+enum RepoAddMemberAuditEntryVisibility {
+  """
+  The repository is visible only to users in the same business.
+  """
+  INTERNAL
+
+  """
+  The repository is visible only to those with explicit access.
+  """
+  PRIVATE
+
+  """
+  The repository is visible to everyone.
+  """
+  PUBLIC
+}
+
+"""
+Audit log entry for a repo.add_topic event.
+"""
+type RepoAddTopicAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData & TopicAuditEntryData {
+  """
+  The action name
+  """
+  action: String!
+
+  """
+  The user who initiated the action
+  """
+  actor: AuditEntryActor
+
+  """
+  The IP address of the actor
+  """
+  actorIp: String
+
+  """
+  A readable representation of the actor's location
+  """
+  actorLocation: ActorLocation
+
+  """
+  The username of the user who initiated the action
+  """
+  actorLogin: String
+
+  """
+  The HTTP path for the actor.
+  """
+  actorResourcePath: URI
+
+  """
+  The HTTP URL for the actor.
+  """
+  actorUrl: URI
+
+  """
+  The time the action was initiated
+  """
+  createdAt: PreciseDateTime!
+  id: ID!
+
+  """
+  The corresponding operation type for the action
+  """
+  operationType: OperationType
+
+  """
+  The Organization associated with the Audit Entry.
+  """
+  organization: Organization
+
+  """
+  The name of the Organization.
+  """
+  organizationName: String
+
+  """
+  The HTTP path for the organization
+  """
+  organizationResourcePath: URI
+
+  """
+  The HTTP URL for the organization
+  """
+  organizationUrl: URI
+
+  """
+  The repository associated with the action
+  """
+  repository: Repository
+
+  """
+  The name of the repository
+  """
+  repositoryName: String
+
+  """
+  The HTTP path for the repository
+  """
+  repositoryResourcePath: URI
+
+  """
+  The HTTP URL for the repository
+  """
+  repositoryUrl: URI
+
+  """
+  The name of the topic added to the repository
+  """
+  topic: Topic
+
+  """
+  The name of the topic added to the repository
+  """
+  topicName: String
+
+  """
+  The user affected by the action
+  """
+  user: User
+
+  """
+  For actions involving two users, the actor is the initiator and the user is the affected user.
+  """
+  userLogin: String
+
+  """
+  The HTTP path for the user.
+  """
+  userResourcePath: URI
+
+  """
+  The HTTP URL for the user.
+  """
+  userUrl: URI
+}
+
+"""
+Audit log entry for a repo.archived event.
+"""
+type RepoArchivedAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData {
+  """
+  The action name
+  """
+  action: String!
+
+  """
+  The user who initiated the action
+  """
+  actor: AuditEntryActor
+
+  """
+  The IP address of the actor
+  """
+  actorIp: String
+
+  """
+  A readable representation of the actor's location
+  """
+  actorLocation: ActorLocation
+
+  """
+  The username of the user who initiated the action
+  """
+  actorLogin: String
+
+  """
+  The HTTP path for the actor.
+  """
+  actorResourcePath: URI
+
+  """
+  The HTTP URL for the actor.
+  """
+  actorUrl: URI
+
+  """
+  The time the action was initiated
+  """
+  createdAt: PreciseDateTime!
+  id: ID!
+
+  """
+  The corresponding operation type for the action
+  """
+  operationType: OperationType
+
+  """
+  The Organization associated with the Audit Entry.
+  """
+  organization: Organization
+
+  """
+  The name of the Organization.
+  """
+  organizationName: String
+
+  """
+  The HTTP path for the organization
+  """
+  organizationResourcePath: URI
+
+  """
+  The HTTP URL for the organization
+  """
+  organizationUrl: URI
+
+  """
+  The repository associated with the action
+  """
+  repository: Repository
+
+  """
+  The name of the repository
+  """
+  repositoryName: String
+
+  """
+  The HTTP path for the repository
+  """
+  repositoryResourcePath: URI
+
+  """
+  The HTTP URL for the repository
+  """
+  repositoryUrl: URI
+
+  """
+  The user affected by the action
+  """
+  user: User
+
+  """
+  For actions involving two users, the actor is the initiator and the user is the affected user.
+  """
+  userLogin: String
+
+  """
+  The HTTP path for the user.
+  """
+  userResourcePath: URI
+
+  """
+  The HTTP URL for the user.
+  """
+  userUrl: URI
+
+  """
+  The visibility of the repository
+  """
+  visibility: RepoArchivedAuditEntryVisibility
+}
+
+"""
+The privacy of a repository
+"""
+enum RepoArchivedAuditEntryVisibility {
+  """
+  The repository is visible only to users in the same business.
+  """
+  INTERNAL
+
+  """
+  The repository is visible only to those with explicit access.
+  """
+  PRIVATE
+
+  """
+  The repository is visible to everyone.
+  """
+  PUBLIC
+}
+
+"""
+Audit log entry for a repo.change_merge_setting event.
+"""
+type RepoChangeMergeSettingAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData {
+  """
+  The action name
+  """
+  action: String!
+
+  """
+  The user who initiated the action
+  """
+  actor: AuditEntryActor
+
+  """
+  The IP address of the actor
+  """
+  actorIp: String
+
+  """
+  A readable representation of the actor's location
+  """
+  actorLocation: ActorLocation
+
+  """
+  The username of the user who initiated the action
+  """
+  actorLogin: String
+
+  """
+  The HTTP path for the actor.
+  """
+  actorResourcePath: URI
+
+  """
+  The HTTP URL for the actor.
+  """
+  actorUrl: URI
+
+  """
+  The time the action was initiated
+  """
+  createdAt: PreciseDateTime!
+  id: ID!
+
+  """
+  Whether the change was to enable (true) or disable (false) the merge type
+  """
+  isEnabled: Boolean
+
+  """
+  The merge method affected by the change
+  """
+  mergeType: RepoChangeMergeSettingAuditEntryMergeType
+
+  """
+  The corresponding operation type for the action
+  """
+  operationType: OperationType
+
+  """
+  The Organization associated with the Audit Entry.
+  """
+  organization: Organization
+
+  """
+  The name of the Organization.
+  """
+  organizationName: String
+
+  """
+  The HTTP path for the organization
+  """
+  organizationResourcePath: URI
+
+  """
+  The HTTP URL for the organization
+  """
+  organizationUrl: URI
+
+  """
+  The repository associated with the action
+  """
+  repository: Repository
+
+  """
+  The name of the repository
+  """
+  repositoryName: String
+
+  """
+  The HTTP path for the repository
+  """
+  repositoryResourcePath: URI
+
+  """
+  The HTTP URL for the repository
+  """
+  repositoryUrl: URI
+
+  """
+  The user affected by the action
+  """
+  user: User
+
+  """
+  For actions involving two users, the actor is the initiator and the user is the affected user.
+  """
+  userLogin: String
+
+  """
+  The HTTP path for the user.
+  """
+  userResourcePath: URI
+
+  """
+  The HTTP URL for the user.
+  """
+  userUrl: URI
+}
+
+"""
+The merge options available for pull requests to this repository.
+"""
+enum RepoChangeMergeSettingAuditEntryMergeType {
+  """
+  The pull request is added to the base branch in a merge commit.
+  """
+  MERGE
+
+  """
+  Commits from the pull request are added onto the base branch individually without a merge commit.
+  """
+  REBASE
+
+  """
+  The pull request's commits are squashed into a single commit before they are merged to the base branch.
+  """
+  SQUASH
+}
+
+"""
+Audit log entry for a repo.config.disable_anonymous_git_access event.
+"""
+type RepoConfigDisableAnonymousGitAccessAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData {
+  """
+  The action name
+  """
+  action: String!
+
+  """
+  The user who initiated the action
+  """
+  actor: AuditEntryActor
+
+  """
+  The IP address of the actor
+  """
+  actorIp: String
+
+  """
+  A readable representation of the actor's location
+  """
+  actorLocation: ActorLocation
+
+  """
+  The username of the user who initiated the action
+  """
+  actorLogin: String
+
+  """
+  The HTTP path for the actor.
+  """
+  actorResourcePath: URI
+
+  """
+  The HTTP URL for the actor.
+  """
+  actorUrl: URI
+
+  """
+  The time the action was initiated
+  """
+  createdAt: PreciseDateTime!
+  id: ID!
+
+  """
+  The corresponding operation type for the action
+  """
+  operationType: OperationType
+
+  """
+  The Organization associated with the Audit Entry.
+  """
+  organization: Organization
+
+  """
+  The name of the Organization.
+  """
+  organizationName: String
+
+  """
+  The HTTP path for the organization
+  """
+  organizationResourcePath: URI
+
+  """
+  The HTTP URL for the organization
+  """
+  organizationUrl: URI
+
+  """
+  The repository associated with the action
+  """
+  repository: Repository
+
+  """
+  The name of the repository
+  """
+  repositoryName: String
+
+  """
+  The HTTP path for the repository
+  """
+  repositoryResourcePath: URI
+
+  """
+  The HTTP URL for the repository
+  """
+  repositoryUrl: URI
+
+  """
+  The user affected by the action
+  """
+  user: User
+
+  """
+  For actions involving two users, the actor is the initiator and the user is the affected user.
+  """
+  userLogin: String
+
+  """
+  The HTTP path for the user.
+  """
+  userResourcePath: URI
+
+  """
+  The HTTP URL for the user.
+  """
+  userUrl: URI
+}
+
+"""
+Audit log entry for a repo.config.disable_collaborators_only event.
+"""
+type RepoConfigDisableCollaboratorsOnlyAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData {
+  """
+  The action name
+  """
+  action: String!
+
+  """
+  The user who initiated the action
+  """
+  actor: AuditEntryActor
+
+  """
+  The IP address of the actor
+  """
+  actorIp: String
+
+  """
+  A readable representation of the actor's location
+  """
+  actorLocation: ActorLocation
+
+  """
+  The username of the user who initiated the action
+  """
+  actorLogin: String
+
+  """
+  The HTTP path for the actor.
+  """
+  actorResourcePath: URI
+
+  """
+  The HTTP URL for the actor.
+  """
+  actorUrl: URI
+
+  """
+  The time the action was initiated
+  """
+  createdAt: PreciseDateTime!
+  id: ID!
+
+  """
+  The corresponding operation type for the action
+  """
+  operationType: OperationType
+
+  """
+  The Organization associated with the Audit Entry.
+  """
+  organization: Organization
+
+  """
+  The name of the Organization.
+  """
+  organizationName: String
+
+  """
+  The HTTP path for the organization
+  """
+  organizationResourcePath: URI
+
+  """
+  The HTTP URL for the organization
+  """
+  organizationUrl: URI
+
+  """
+  The repository associated with the action
+  """
+  repository: Repository
+
+  """
+  The name of the repository
+  """
+  repositoryName: String
+
+  """
+  The HTTP path for the repository
+  """
+  repositoryResourcePath: URI
+
+  """
+  The HTTP URL for the repository
+  """
+  repositoryUrl: URI
+
+  """
+  The user affected by the action
+  """
+  user: User
+
+  """
+  For actions involving two users, the actor is the initiator and the user is the affected user.
+  """
+  userLogin: String
+
+  """
+  The HTTP path for the user.
+  """
+  userResourcePath: URI
+
+  """
+  The HTTP URL for the user.
+  """
+  userUrl: URI
+}
+
+"""
+Audit log entry for a repo.config.disable_contributors_only event.
+"""
+type RepoConfigDisableContributorsOnlyAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData {
+  """
+  The action name
+  """
+  action: String!
+
+  """
+  The user who initiated the action
+  """
+  actor: AuditEntryActor
+
+  """
+  The IP address of the actor
+  """
+  actorIp: String
+
+  """
+  A readable representation of the actor's location
+  """
+  actorLocation: ActorLocation
+
+  """
+  The username of the user who initiated the action
+  """
+  actorLogin: String
+
+  """
+  The HTTP path for the actor.
+  """
+  actorResourcePath: URI
+
+  """
+  The HTTP URL for the actor.
+  """
+  actorUrl: URI
+
+  """
+  The time the action was initiated
+  """
+  createdAt: PreciseDateTime!
+  id: ID!
+
+  """
+  The corresponding operation type for the action
+  """
+  operationType: OperationType
+
+  """
+  The Organization associated with the Audit Entry.
+  """
+  organization: Organization
+
+  """
+  The name of the Organization.
+  """
+  organizationName: String
+
+  """
+  The HTTP path for the organization
+  """
+  organizationResourcePath: URI
+
+  """
+  The HTTP URL for the organization
+  """
+  organizationUrl: URI
+
+  """
+  The repository associated with the action
+  """
+  repository: Repository
+
+  """
+  The name of the repository
+  """
+  repositoryName: String
+
+  """
+  The HTTP path for the repository
+  """
+  repositoryResourcePath: URI
+
+  """
+  The HTTP URL for the repository
+  """
+  repositoryUrl: URI
+
+  """
+  The user affected by the action
+  """
+  user: User
+
+  """
+  For actions involving two users, the actor is the initiator and the user is the affected user.
+  """
+  userLogin: String
+
+  """
+  The HTTP path for the user.
+  """
+  userResourcePath: URI
+
+  """
+  The HTTP URL for the user.
+  """
+  userUrl: URI
+}
+
+"""
+Audit log entry for a repo.config.disable_sockpuppet_disallowed event.
+"""
+type RepoConfigDisableSockpuppetDisallowedAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData {
+  """
+  The action name
+  """
+  action: String!
+
+  """
+  The user who initiated the action
+  """
+  actor: AuditEntryActor
+
+  """
+  The IP address of the actor
+  """
+  actorIp: String
+
+  """
+  A readable representation of the actor's location
+  """
+  actorLocation: ActorLocation
+
+  """
+  The username of the user who initiated the action
+  """
+  actorLogin: String
+
+  """
+  The HTTP path for the actor.
+  """
+  actorResourcePath: URI
+
+  """
+  The HTTP URL for the actor.
+  """
+  actorUrl: URI
+
+  """
+  The time the action was initiated
+  """
+  createdAt: PreciseDateTime!
+  id: ID!
+
+  """
+  The corresponding operation type for the action
+  """
+  operationType: OperationType
+
+  """
+  The Organization associated with the Audit Entry.
+  """
+  organization: Organization
+
+  """
+  The name of the Organization.
+  """
+  organizationName: String
+
+  """
+  The HTTP path for the organization
+  """
+  organizationResourcePath: URI
+
+  """
+  The HTTP URL for the organization
+  """
+  organizationUrl: URI
+
+  """
+  The repository associated with the action
+  """
+  repository: Repository
+
+  """
+  The name of the repository
+  """
+  repositoryName: String
+
+  """
+  The HTTP path for the repository
+  """
+  repositoryResourcePath: URI
+
+  """
+  The HTTP URL for the repository
+  """
+  repositoryUrl: URI
+
+  """
+  The user affected by the action
+  """
+  user: User
+
+  """
+  For actions involving two users, the actor is the initiator and the user is the affected user.
+  """
+  userLogin: String
+
+  """
+  The HTTP path for the user.
+  """
+  userResourcePath: URI
+
+  """
+  The HTTP URL for the user.
+  """
+  userUrl: URI
+}
+
+"""
+Audit log entry for a repo.config.enable_anonymous_git_access event.
+"""
+type RepoConfigEnableAnonymousGitAccessAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData {
+  """
+  The action name
+  """
+  action: String!
+
+  """
+  The user who initiated the action
+  """
+  actor: AuditEntryActor
+
+  """
+  The IP address of the actor
+  """
+  actorIp: String
+
+  """
+  A readable representation of the actor's location
+  """
+  actorLocation: ActorLocation
+
+  """
+  The username of the user who initiated the action
+  """
+  actorLogin: String
+
+  """
+  The HTTP path for the actor.
+  """
+  actorResourcePath: URI
+
+  """
+  The HTTP URL for the actor.
+  """
+  actorUrl: URI
+
+  """
+  The time the action was initiated
+  """
+  createdAt: PreciseDateTime!
+  id: ID!
+
+  """
+  The corresponding operation type for the action
+  """
+  operationType: OperationType
+
+  """
+  The Organization associated with the Audit Entry.
+  """
+  organization: Organization
+
+  """
+  The name of the Organization.
+  """
+  organizationName: String
+
+  """
+  The HTTP path for the organization
+  """
+  organizationResourcePath: URI
+
+  """
+  The HTTP URL for the organization
+  """
+  organizationUrl: URI
+
+  """
+  The repository associated with the action
+  """
+  repository: Repository
+
+  """
+  The name of the repository
+  """
+  repositoryName: String
+
+  """
+  The HTTP path for the repository
+  """
+  repositoryResourcePath: URI
+
+  """
+  The HTTP URL for the repository
+  """
+  repositoryUrl: URI
+
+  """
+  The user affected by the action
+  """
+  user: User
+
+  """
+  For actions involving two users, the actor is the initiator and the user is the affected user.
+  """
+  userLogin: String
+
+  """
+  The HTTP path for the user.
+  """
+  userResourcePath: URI
+
+  """
+  The HTTP URL for the user.
+  """
+  userUrl: URI
+}
+
+"""
+Audit log entry for a repo.config.enable_collaborators_only event.
+"""
+type RepoConfigEnableCollaboratorsOnlyAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData {
+  """
+  The action name
+  """
+  action: String!
+
+  """
+  The user who initiated the action
+  """
+  actor: AuditEntryActor
+
+  """
+  The IP address of the actor
+  """
+  actorIp: String
+
+  """
+  A readable representation of the actor's location
+  """
+  actorLocation: ActorLocation
+
+  """
+  The username of the user who initiated the action
+  """
+  actorLogin: String
+
+  """
+  The HTTP path for the actor.
+  """
+  actorResourcePath: URI
+
+  """
+  The HTTP URL for the actor.
+  """
+  actorUrl: URI
+
+  """
+  The time the action was initiated
+  """
+  createdAt: PreciseDateTime!
+  id: ID!
+
+  """
+  The corresponding operation type for the action
+  """
+  operationType: OperationType
+
+  """
+  The Organization associated with the Audit Entry.
+  """
+  organization: Organization
+
+  """
+  The name of the Organization.
+  """
+  organizationName: String
+
+  """
+  The HTTP path for the organization
+  """
+  organizationResourcePath: URI
+
+  """
+  The HTTP URL for the organization
+  """
+  organizationUrl: URI
+
+  """
+  The repository associated with the action
+  """
+  repository: Repository
+
+  """
+  The name of the repository
+  """
+  repositoryName: String
+
+  """
+  The HTTP path for the repository
+  """
+  repositoryResourcePath: URI
+
+  """
+  The HTTP URL for the repository
+  """
+  repositoryUrl: URI
+
+  """
+  The user affected by the action
+  """
+  user: User
+
+  """
+  For actions involving two users, the actor is the initiator and the user is the affected user.
+  """
+  userLogin: String
+
+  """
+  The HTTP path for the user.
+  """
+  userResourcePath: URI
+
+  """
+  The HTTP URL for the user.
+  """
+  userUrl: URI
+}
+
+"""
+Audit log entry for a repo.config.enable_contributors_only event.
+"""
+type RepoConfigEnableContributorsOnlyAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData {
+  """
+  The action name
+  """
+  action: String!
+
+  """
+  The user who initiated the action
+  """
+  actor: AuditEntryActor
+
+  """
+  The IP address of the actor
+  """
+  actorIp: String
+
+  """
+  A readable representation of the actor's location
+  """
+  actorLocation: ActorLocation
+
+  """
+  The username of the user who initiated the action
+  """
+  actorLogin: String
+
+  """
+  The HTTP path for the actor.
+  """
+  actorResourcePath: URI
+
+  """
+  The HTTP URL for the actor.
+  """
+  actorUrl: URI
+
+  """
+  The time the action was initiated
+  """
+  createdAt: PreciseDateTime!
+  id: ID!
+
+  """
+  The corresponding operation type for the action
+  """
+  operationType: OperationType
+
+  """
+  The Organization associated with the Audit Entry.
+  """
+  organization: Organization
+
+  """
+  The name of the Organization.
+  """
+  organizationName: String
+
+  """
+  The HTTP path for the organization
+  """
+  organizationResourcePath: URI
+
+  """
+  The HTTP URL for the organization
+  """
+  organizationUrl: URI
+
+  """
+  The repository associated with the action
+  """
+  repository: Repository
+
+  """
+  The name of the repository
+  """
+  repositoryName: String
+
+  """
+  The HTTP path for the repository
+  """
+  repositoryResourcePath: URI
+
+  """
+  The HTTP URL for the repository
+  """
+  repositoryUrl: URI
+
+  """
+  The user affected by the action
+  """
+  user: User
+
+  """
+  For actions involving two users, the actor is the initiator and the user is the affected user.
+  """
+  userLogin: String
+
+  """
+  The HTTP path for the user.
+  """
+  userResourcePath: URI
+
+  """
+  The HTTP URL for the user.
+  """
+  userUrl: URI
+}
+
+"""
+Audit log entry for a repo.config.enable_sockpuppet_disallowed event.
+"""
+type RepoConfigEnableSockpuppetDisallowedAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData {
+  """
+  The action name
+  """
+  action: String!
+
+  """
+  The user who initiated the action
+  """
+  actor: AuditEntryActor
+
+  """
+  The IP address of the actor
+  """
+  actorIp: String
+
+  """
+  A readable representation of the actor's location
+  """
+  actorLocation: ActorLocation
+
+  """
+  The username of the user who initiated the action
+  """
+  actorLogin: String
+
+  """
+  The HTTP path for the actor.
+  """
+  actorResourcePath: URI
+
+  """
+  The HTTP URL for the actor.
+  """
+  actorUrl: URI
+
+  """
+  The time the action was initiated
+  """
+  createdAt: PreciseDateTime!
+  id: ID!
+
+  """
+  The corresponding operation type for the action
+  """
+  operationType: OperationType
+
+  """
+  The Organization associated with the Audit Entry.
+  """
+  organization: Organization
+
+  """
+  The name of the Organization.
+  """
+  organizationName: String
+
+  """
+  The HTTP path for the organization
+  """
+  organizationResourcePath: URI
+
+  """
+  The HTTP URL for the organization
+  """
+  organizationUrl: URI
+
+  """
+  The repository associated with the action
+  """
+  repository: Repository
+
+  """
+  The name of the repository
+  """
+  repositoryName: String
+
+  """
+  The HTTP path for the repository
+  """
+  repositoryResourcePath: URI
+
+  """
+  The HTTP URL for the repository
+  """
+  repositoryUrl: URI
+
+  """
+  The user affected by the action
+  """
+  user: User
+
+  """
+  For actions involving two users, the actor is the initiator and the user is the affected user.
+  """
+  userLogin: String
+
+  """
+  The HTTP path for the user.
+  """
+  userResourcePath: URI
+
+  """
+  The HTTP URL for the user.
+  """
+  userUrl: URI
+}
+
+"""
+Audit log entry for a repo.config.lock_anonymous_git_access event.
+"""
+type RepoConfigLockAnonymousGitAccessAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData {
+  """
+  The action name
+  """
+  action: String!
+
+  """
+  The user who initiated the action
+  """
+  actor: AuditEntryActor
+
+  """
+  The IP address of the actor
+  """
+  actorIp: String
+
+  """
+  A readable representation of the actor's location
+  """
+  actorLocation: ActorLocation
+
+  """
+  The username of the user who initiated the action
+  """
+  actorLogin: String
+
+  """
+  The HTTP path for the actor.
+  """
+  actorResourcePath: URI
+
+  """
+  The HTTP URL for the actor.
+  """
+  actorUrl: URI
+
+  """
+  The time the action was initiated
+  """
+  createdAt: PreciseDateTime!
+  id: ID!
+
+  """
+  The corresponding operation type for the action
+  """
+  operationType: OperationType
+
+  """
+  The Organization associated with the Audit Entry.
+  """
+  organization: Organization
+
+  """
+  The name of the Organization.
+  """
+  organizationName: String
+
+  """
+  The HTTP path for the organization
+  """
+  organizationResourcePath: URI
+
+  """
+  The HTTP URL for the organization
+  """
+  organizationUrl: URI
+
+  """
+  The repository associated with the action
+  """
+  repository: Repository
+
+  """
+  The name of the repository
+  """
+  repositoryName: String
+
+  """
+  The HTTP path for the repository
+  """
+  repositoryResourcePath: URI
+
+  """
+  The HTTP URL for the repository
+  """
+  repositoryUrl: URI
+
+  """
+  The user affected by the action
+  """
+  user: User
+
+  """
+  For actions involving two users, the actor is the initiator and the user is the affected user.
+  """
+  userLogin: String
+
+  """
+  The HTTP path for the user.
+  """
+  userResourcePath: URI
+
+  """
+  The HTTP URL for the user.
+  """
+  userUrl: URI
+}
+
+"""
+Audit log entry for a repo.config.unlock_anonymous_git_access event.
+"""
+type RepoConfigUnlockAnonymousGitAccessAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData {
+  """
+  The action name
+  """
+  action: String!
+
+  """
+  The user who initiated the action
+  """
+  actor: AuditEntryActor
+
+  """
+  The IP address of the actor
+  """
+  actorIp: String
+
+  """
+  A readable representation of the actor's location
+  """
+  actorLocation: ActorLocation
+
+  """
+  The username of the user who initiated the action
+  """
+  actorLogin: String
+
+  """
+  The HTTP path for the actor.
+  """
+  actorResourcePath: URI
+
+  """
+  The HTTP URL for the actor.
+  """
+  actorUrl: URI
+
+  """
+  The time the action was initiated
+  """
+  createdAt: PreciseDateTime!
+  id: ID!
+
+  """
+  The corresponding operation type for the action
+  """
+  operationType: OperationType
+
+  """
+  The Organization associated with the Audit Entry.
+  """
+  organization: Organization
+
+  """
+  The name of the Organization.
+  """
+  organizationName: String
+
+  """
+  The HTTP path for the organization
+  """
+  organizationResourcePath: URI
+
+  """
+  The HTTP URL for the organization
+  """
+  organizationUrl: URI
+
+  """
+  The repository associated with the action
+  """
+  repository: Repository
+
+  """
+  The name of the repository
+  """
+  repositoryName: String
+
+  """
+  The HTTP path for the repository
+  """
+  repositoryResourcePath: URI
+
+  """
+  The HTTP URL for the repository
+  """
+  repositoryUrl: URI
+
+  """
+  The user affected by the action
+  """
+  user: User
+
+  """
+  For actions involving two users, the actor is the initiator and the user is the affected user.
+  """
+  userLogin: String
+
+  """
+  The HTTP path for the user.
+  """
+  userResourcePath: URI
+
+  """
+  The HTTP URL for the user.
+  """
+  userUrl: URI
+}
+
+"""
+Audit log entry for a repo.create event.
+"""
+type RepoCreateAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData {
+  """
+  The action name
+  """
+  action: String!
+
+  """
+  The user who initiated the action
+  """
+  actor: AuditEntryActor
+
+  """
+  The IP address of the actor
+  """
+  actorIp: String
+
+  """
+  A readable representation of the actor's location
+  """
+  actorLocation: ActorLocation
+
+  """
+  The username of the user who initiated the action
+  """
+  actorLogin: String
+
+  """
+  The HTTP path for the actor.
+  """
+  actorResourcePath: URI
+
+  """
+  The HTTP URL for the actor.
+  """
+  actorUrl: URI
+
+  """
+  The time the action was initiated
+  """
+  createdAt: PreciseDateTime!
+
+  """
+  The name of the parent repository for this forked repository.
+  """
+  forkParentName: String
+
+  """
+  The name of the root repository for this network.
+  """
+  forkSourceName: String
+  id: ID!
+
+  """
+  The corresponding operation type for the action
+  """
+  operationType: OperationType
+
+  """
+  The Organization associated with the Audit Entry.
+  """
+  organization: Organization
+
+  """
+  The name of the Organization.
+  """
+  organizationName: String
+
+  """
+  The HTTP path for the organization
+  """
+  organizationResourcePath: URI
+
+  """
+  The HTTP URL for the organization
+  """
+  organizationUrl: URI
+
+  """
+  The repository associated with the action
+  """
+  repository: Repository
+
+  """
+  The name of the repository
+  """
+  repositoryName: String
+
+  """
+  The HTTP path for the repository
+  """
+  repositoryResourcePath: URI
+
+  """
+  The HTTP URL for the repository
+  """
+  repositoryUrl: URI
+
+  """
+  The user affected by the action
+  """
+  user: User
+
+  """
+  For actions involving two users, the actor is the initiator and the user is the affected user.
+  """
+  userLogin: String
+
+  """
+  The HTTP path for the user.
+  """
+  userResourcePath: URI
+
+  """
+  The HTTP URL for the user.
+  """
+  userUrl: URI
+
+  """
+  The visibility of the repository
+  """
+  visibility: RepoCreateAuditEntryVisibility
+}
+
+"""
+The privacy of a repository
+"""
+enum RepoCreateAuditEntryVisibility {
+  """
+  The repository is visible only to users in the same business.
+  """
+  INTERNAL
+
+  """
+  The repository is visible only to those with explicit access.
+  """
+  PRIVATE
+
+  """
+  The repository is visible to everyone.
+  """
+  PUBLIC
+}
+
+"""
+Audit log entry for a repo.destroy event.
+"""
+type RepoDestroyAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData {
+  """
+  The action name
+  """
+  action: String!
+
+  """
+  The user who initiated the action
+  """
+  actor: AuditEntryActor
+
+  """
+  The IP address of the actor
+  """
+  actorIp: String
+
+  """
+  A readable representation of the actor's location
+  """
+  actorLocation: ActorLocation
+
+  """
+  The username of the user who initiated the action
+  """
+  actorLogin: String
+
+  """
+  The HTTP path for the actor.
+  """
+  actorResourcePath: URI
+
+  """
+  The HTTP URL for the actor.
+  """
+  actorUrl: URI
+
+  """
+  The time the action was initiated
+  """
+  createdAt: PreciseDateTime!
+  id: ID!
+
+  """
+  The corresponding operation type for the action
+  """
+  operationType: OperationType
+
+  """
+  The Organization associated with the Audit Entry.
+  """
+  organization: Organization
+
+  """
+  The name of the Organization.
+  """
+  organizationName: String
+
+  """
+  The HTTP path for the organization
+  """
+  organizationResourcePath: URI
+
+  """
+  The HTTP URL for the organization
+  """
+  organizationUrl: URI
+
+  """
+  The repository associated with the action
+  """
+  repository: Repository
+
+  """
+  The name of the repository
+  """
+  repositoryName: String
+
+  """
+  The HTTP path for the repository
+  """
+  repositoryResourcePath: URI
+
+  """
+  The HTTP URL for the repository
+  """
+  repositoryUrl: URI
+
+  """
+  The user affected by the action
+  """
+  user: User
+
+  """
+  For actions involving two users, the actor is the initiator and the user is the affected user.
+  """
+  userLogin: String
+
+  """
+  The HTTP path for the user.
+  """
+  userResourcePath: URI
+
+  """
+  The HTTP URL for the user.
+  """
+  userUrl: URI
+
+  """
+  The visibility of the repository
+  """
+  visibility: RepoDestroyAuditEntryVisibility
+}
+
+"""
+The privacy of a repository
+"""
+enum RepoDestroyAuditEntryVisibility {
+  """
+  The repository is visible only to users in the same business.
+  """
+  INTERNAL
+
+  """
+  The repository is visible only to those with explicit access.
+  """
+  PRIVATE
+
+  """
+  The repository is visible to everyone.
+  """
+  PUBLIC
+}
+
+"""
+Audit log entry for a repo.remove_member event.
+"""
+type RepoRemoveMemberAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData {
+  """
+  The action name
+  """
+  action: String!
+
+  """
+  The user who initiated the action
+  """
+  actor: AuditEntryActor
+
+  """
+  The IP address of the actor
+  """
+  actorIp: String
+
+  """
+  A readable representation of the actor's location
+  """
+  actorLocation: ActorLocation
+
+  """
+  The username of the user who initiated the action
+  """
+  actorLogin: String
+
+  """
+  The HTTP path for the actor.
+  """
+  actorResourcePath: URI
+
+  """
+  The HTTP URL for the actor.
+  """
+  actorUrl: URI
+
+  """
+  The time the action was initiated
+  """
+  createdAt: PreciseDateTime!
+  id: ID!
+
+  """
+  The corresponding operation type for the action
+  """
+  operationType: OperationType
+
+  """
+  The Organization associated with the Audit Entry.
+  """
+  organization: Organization
+
+  """
+  The name of the Organization.
+  """
+  organizationName: String
+
+  """
+  The HTTP path for the organization
+  """
+  organizationResourcePath: URI
+
+  """
+  The HTTP URL for the organization
+  """
+  organizationUrl: URI
+
+  """
+  The repository associated with the action
+  """
+  repository: Repository
+
+  """
+  The name of the repository
+  """
+  repositoryName: String
+
+  """
+  The HTTP path for the repository
+  """
+  repositoryResourcePath: URI
+
+  """
+  The HTTP URL for the repository
+  """
+  repositoryUrl: URI
+
+  """
+  The user affected by the action
+  """
+  user: User
+
+  """
+  For actions involving two users, the actor is the initiator and the user is the affected user.
+  """
+  userLogin: String
+
+  """
+  The HTTP path for the user.
+  """
+  userResourcePath: URI
+
+  """
+  The HTTP URL for the user.
+  """
+  userUrl: URI
+
+  """
+  The visibility of the repository
+  """
+  visibility: RepoRemoveMemberAuditEntryVisibility
+}
+
+"""
+The privacy of a repository
+"""
+enum RepoRemoveMemberAuditEntryVisibility {
+  """
+  The repository is visible only to users in the same business.
+  """
+  INTERNAL
+
+  """
+  The repository is visible only to those with explicit access.
+  """
+  PRIVATE
+
+  """
+  The repository is visible to everyone.
+  """
+  PUBLIC
+}
+
+"""
+Audit log entry for a repo.remove_topic event.
+"""
+type RepoRemoveTopicAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData & TopicAuditEntryData {
+  """
+  The action name
+  """
+  action: String!
+
+  """
+  The user who initiated the action
+  """
+  actor: AuditEntryActor
+
+  """
+  The IP address of the actor
+  """
+  actorIp: String
+
+  """
+  A readable representation of the actor's location
+  """
+  actorLocation: ActorLocation
+
+  """
+  The username of the user who initiated the action
+  """
+  actorLogin: String
+
+  """
+  The HTTP path for the actor.
+  """
+  actorResourcePath: URI
+
+  """
+  The HTTP URL for the actor.
+  """
+  actorUrl: URI
+
+  """
+  The time the action was initiated
+  """
+  createdAt: PreciseDateTime!
+  id: ID!
+
+  """
+  The corresponding operation type for the action
+  """
+  operationType: OperationType
+
+  """
+  The Organization associated with the Audit Entry.
+  """
+  organization: Organization
+
+  """
+  The name of the Organization.
+  """
+  organizationName: String
+
+  """
+  The HTTP path for the organization
+  """
+  organizationResourcePath: URI
+
+  """
+  The HTTP URL for the organization
+  """
+  organizationUrl: URI
+
+  """
+  The repository associated with the action
+  """
+  repository: Repository
+
+  """
+  The name of the repository
+  """
+  repositoryName: String
+
+  """
+  The HTTP path for the repository
+  """
+  repositoryResourcePath: URI
+
+  """
+  The HTTP URL for the repository
+  """
+  repositoryUrl: URI
+
+  """
+  The name of the topic added to the repository
+  """
+  topic: Topic
+
+  """
+  The name of the topic added to the repository
+  """
+  topicName: String
+
+  """
+  The user affected by the action
+  """
+  user: User
+
+  """
+  For actions involving two users, the actor is the initiator and the user is the affected user.
+  """
+  userLogin: String
+
+  """
+  The HTTP path for the user.
+  """
+  userResourcePath: URI
+
+  """
+  The HTTP URL for the user.
+  """
+  userUrl: URI
+}
+
+"""
+The reasons a piece of content can be reported or minimized.
+"""
+enum ReportedContentClassifiers {
+  """
+  An abusive or harassing piece of content
+  """
+  ABUSE
+
+  """
+  A duplicated piece of content
+  """
+  DUPLICATE
+
+  """
+  An irrelevant piece of content
+  """
+  OFF_TOPIC
+
+  """
+  An outdated piece of content
+  """
+  OUTDATED
+
+  """
+  The content has been resolved
+  """
+  RESOLVED
+
+  """
+  A spammy piece of content
+  """
+  SPAM
+}
+
+"""
+A repository contains the content for a project.
+"""
+type Repository implements Node & PackageOwner & ProjectOwner & RepositoryInfo & Starrable & Subscribable & UniformResourceLocatable {
+  """
+  A list of users that can be assigned to issues in this repository.
+  """
+  assignableUsers(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Filters users with query on user name and login
+    """
+    query: String
+  ): UserConnection!
+
+  """
+  A list of branch protection rules for this repository.
+  """
+  branchProtectionRules(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+  ): BranchProtectionRuleConnection!
+
+  """
+  Returns the code of conduct for this repository
+  """
+  codeOfConduct: CodeOfConduct
+
+  """
+  A list of collaborators associated with the repository.
+  """
+  collaborators(
+    """
+    Collaborators affiliation level with a repository.
+    """
+    affiliation: CollaboratorAffiliation
+
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Filters users with query on user name and login
+    """
+    query: String
+  ): RepositoryCollaboratorConnection
+
+  """
+  A list of commit comments associated with the repository.
+  """
+  commitComments(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+  ): CommitCommentConnection!
+
+  """
+  Returns a list of contact links associated to the repository
+  """
+  contactLinks: [RepositoryContactLink!]
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+
+  """
+  Identifies the primary key from the database.
+  """
+  databaseId: Int
+
+  """
+  The Ref associated with the repository's default branch.
+  """
+  defaultBranchRef: Ref
+
+  """
+  Whether or not branches are automatically deleted when merged in this repository.
+  """
+  deleteBranchOnMerge: Boolean!
+
+  """
+  A list of deploy keys that are on this repository.
+  """
+  deployKeys(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+  ): DeployKeyConnection!
+
+  """
+  Deployments associated with the repository
+  """
+  deployments(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Environments to list deployments for
+    """
+    environments: [String!]
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for deployments returned from the connection.
+    """
+    orderBy: DeploymentOrder = {field: CREATED_AT, direction: ASC}
+  ): DeploymentConnection!
+
+  """
+  The description of the repository.
+  """
+  description: String
+
+  """
+  The description of the repository rendered to HTML.
+  """
+  descriptionHTML: HTML!
+
+  """
+  The number of kilobytes this repository occupies on disk.
+  """
+  diskUsage: Int
+
+  """
+  Returns how many forks there are of this repository in the whole network.
+  """
+  forkCount: Int!
+
+  """
+  A list of direct forked repositories.
+  """
+  forks(
+    """
+    Array of viewer's affiliation options for repositories returned from the
+    connection. For example, OWNER will include only repositories that the
+    current viewer owns.
+    """
+    affiliations: [RepositoryAffiliation]
+
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    If non-null, filters repositories according to whether they have been locked
+    """
+    isLocked: Boolean
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for repositories returned from the connection
+    """
+    orderBy: RepositoryOrder
+
+    """
+    Array of owner's affiliation options for repositories returned from the
+    connection. For example, OWNER will include only repositories that the
+    organization or user being viewed owns.
+    """
+    ownerAffiliations: [RepositoryAffiliation] = [OWNER, COLLABORATOR]
+
+    """
+    If non-null, filters repositories according to privacy
+    """
+    privacy: RepositoryPrivacy
+  ): RepositoryConnection!
+
+  """
+  The funding links for this repository
+  """
+  fundingLinks: [FundingLink!]!
+
+  """
+  Indicates if the repository has issues feature enabled.
+  """
+  hasIssuesEnabled: Boolean!
+
+  """
+  Indicates if the repository has the Projects feature enabled.
+  """
+  hasProjectsEnabled: Boolean!
+
+  """
+  Indicates if the repository has wiki feature enabled.
+  """
+  hasWikiEnabled: Boolean!
+
+  """
+  The repository's URL.
+  """
+  homepageUrl: URI
+  id: ID!
+
+  """
+  The interaction ability settings for this repository.
+  """
+  interactionAbility: RepositoryInteractionAbility
+
+  """
+  Indicates if the repository is unmaintained.
+  """
+  isArchived: Boolean!
+
+  """
+  Returns true if blank issue creation is allowed
+  """
+  isBlankIssuesEnabled: Boolean!
+
+  """
+  Returns whether or not this repository disabled.
+  """
+  isDisabled: Boolean!
+
+  """
+  Returns whether or not this repository is empty.
+  """
+  isEmpty: Boolean!
+
+  """
+  Identifies if the repository is a fork.
+  """
+  isFork: Boolean!
+
+  """
+  Indicates if a repository is either owned by an organization, or is a private fork of an organization repository.
+  """
+  isInOrganization: Boolean!
+
+  """
+  Indicates if the repository has been locked or not.
+  """
+  isLocked: Boolean!
+
+  """
+  Identifies if the repository is a mirror.
+  """
+  isMirror: Boolean!
+
+  """
+  Identifies if the repository is private.
+  """
+  isPrivate: Boolean!
+
+  """
+  Returns true if this repository has a security policy
+  """
+  isSecurityPolicyEnabled: Boolean
+
+  """
+  Identifies if the repository is a template that can be used to generate new repositories.
+  """
+  isTemplate: Boolean!
+
+  """
+  Is this repository a user configuration repository?
+  """
+  isUserConfigurationRepository: Boolean!
+
+  """
+  Returns a single issue from the current repository by number.
+  """
+  issue(
+    """
+    The number for the issue to be returned.
+    """
+    number: Int!
+  ): Issue
+
+  """
+  Returns a single issue-like object from the current repository by number.
+  """
+  issueOrPullRequest(
+    """
+    The number for the issue to be returned.
+    """
+    number: Int!
+  ): IssueOrPullRequest
+
+  """
+  Returns a list of issue templates associated to the repository
+  """
+  issueTemplates: [IssueTemplate!]
+
+  """
+  A list of issues that have been opened in the repository.
+  """
+  issues(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Filtering options for issues returned from the connection.
+    """
+    filterBy: IssueFilters
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    A list of label names to filter the pull requests by.
+    """
+    labels: [String!]
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for issues returned from the connection.
+    """
+    orderBy: IssueOrder
+
+    """
+    A list of states to filter the issues by.
+    """
+    states: [IssueState!]
+  ): IssueConnection!
+
+  """
+  Returns a single label by name
+  """
+  label(
+    """
+    Label name
+    """
+    name: String!
+  ): Label
+
+  """
+  A list of labels associated with the repository.
+  """
+  labels(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for labels returned from the connection.
+    """
+    orderBy: LabelOrder = {field: CREATED_AT, direction: ASC}
+
+    """
+    If provided, searches labels by name and description.
+    """
+    query: String
+  ): LabelConnection
+
+  """
+  A list containing a breakdown of the language composition of the repository.
+  """
+  languages(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Order for connection
+    """
+    orderBy: LanguageOrder
+  ): LanguageConnection
+
+  """
+  Get the latest release for the repository if one exists.
+  """
+  latestRelease: Release
+
+  """
+  The license associated with the repository
+  """
+  licenseInfo: License
+
+  """
+  The reason the repository has been locked.
+  """
+  lockReason: RepositoryLockReason
+
+  """
+  A list of Users that can be mentioned in the context of the repository.
+  """
+  mentionableUsers(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Filters users with query on user name and login
+    """
+    query: String
+  ): UserConnection!
+
+  """
+  Whether or not PRs are merged with a merge commit on this repository.
+  """
+  mergeCommitAllowed: Boolean!
+
+  """
+  Returns a single milestone from the current repository by number.
+  """
+  milestone(
+    """
+    The number for the milestone to be returned.
+    """
+    number: Int!
+  ): Milestone
+
+  """
+  A list of milestones associated with the repository.
+  """
+  milestones(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for milestones.
+    """
+    orderBy: MilestoneOrder
+
+    """
+    Filters milestones with a query on the title
+    """
+    query: String
+
+    """
+    Filter by the state of the milestones.
+    """
+    states: [MilestoneState!]
+  ): MilestoneConnection
+
+  """
+  The repository's original mirror URL.
+  """
+  mirrorUrl: URI
+
+  """
+  The name of the repository.
+  """
+  name: String!
+
+  """
+  The repository's name with owner.
+  """
+  nameWithOwner: String!
+
+  """
+  A Git object in the repository
+  """
+  object(
+    """
+    A Git revision expression suitable for rev-parse
+    """
+    expression: String
+
+    """
+    The Git object ID
+    """
+    oid: GitObjectID
+  ): GitObject
+
+  """
+  The image used to represent this repository in Open Graph data.
+  """
+  openGraphImageUrl: URI!
+
+  """
+  The User owner of the repository.
+  """
+  owner: RepositoryOwner!
+
+  """
+  A list of packages under the owner.
+  """
+  packages(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Find packages by their names.
+    """
+    names: [String]
+
+    """
+    Ordering of the returned packages.
+    """
+    orderBy: PackageOrder = {field: CREATED_AT, direction: DESC}
+
+    """
+    Filter registry package by type.
+    """
+    packageType: PackageType
+
+    """
+    Find packages in a repository by ID.
+    """
+    repositoryId: ID
+  ): PackageConnection!
+
+  """
+  The repository parent, if this is a fork.
+  """
+  parent: Repository
+
+  """
+  The primary language of the repository's code.
+  """
+  primaryLanguage: Language
+
+  """
+  Find project by number.
+  """
+  project(
+    """
+    The project number to find.
+    """
+    number: Int!
+  ): Project
+
+  """
+  A list of projects under the owner.
+  """
+  projects(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for projects returned from the connection
+    """
+    orderBy: ProjectOrder
+
+    """
+    Query to search projects by, currently only searching by name.
+    """
+    search: String
+
+    """
+    A list of states to filter the projects by.
+    """
+    states: [ProjectState!]
+  ): ProjectConnection!
+
+  """
+  The HTTP path listing the repository's projects
+  """
+  projectsResourcePath: URI!
+
+  """
+  The HTTP URL listing the repository's projects
+  """
+  projectsUrl: URI!
+
+  """
+  Returns a single pull request from the current repository by number.
+  """
+  pullRequest(
+    """
+    The number for the pull request to be returned.
+    """
+    number: Int!
+  ): PullRequest
+
+  """
+  A list of pull requests that have been opened in the repository.
+  """
+  pullRequests(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    The base ref name to filter the pull requests by.
+    """
+    baseRefName: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    The head ref name to filter the pull requests by.
+    """
+    headRefName: String
+
+    """
+    A list of label names to filter the pull requests by.
+    """
+    labels: [String!]
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for pull requests returned from the connection.
+    """
+    orderBy: IssueOrder
+
+    """
+    A list of states to filter the pull requests by.
+    """
+    states: [PullRequestState!]
+  ): PullRequestConnection!
+
+  """
+  Identifies when the repository was last pushed to.
+  """
+  pushedAt: DateTime
+
+  """
+  Whether or not rebase-merging is enabled on this repository.
+  """
+  rebaseMergeAllowed: Boolean!
+
+  """
+  Fetch a given ref from the repository
+  """
+  ref(
+    """
+    The ref to retrieve. Fully qualified matches are checked in order
+    (`refs/heads/master`) before falling back onto checks for short name matches (`master`).
+    """
+    qualifiedName: String!
+  ): Ref
+
+  """
+  Fetch a list of refs from the repository
+  """
+  refs(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    DEPRECATED: use orderBy. The ordering direction.
+    """
+    direction: OrderDirection
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for refs returned from the connection.
+    """
+    orderBy: RefOrder
+
+    """
+    Filters refs with query on name
+    """
+    query: String
+
+    """
+    A ref name prefix like `refs/heads/`, `refs/tags/`, etc.
+    """
+    refPrefix: String!
+  ): RefConnection
+
+  """
+  Lookup a single release given various criteria.
+  """
+  release(
+    """
+    The name of the Tag the Release was created from
+    """
+    tagName: String!
+  ): Release
+
+  """
+  List of releases which are dependent on this repository.
+  """
+  releases(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Order for connection
+    """
+    orderBy: ReleaseOrder
+  ): ReleaseConnection!
+
+  """
+  A list of applied repository-topic associations for this repository.
+  """
+  repositoryTopics(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+  ): RepositoryTopicConnection!
+
+  """
+  The HTTP path for this repository
+  """
+  resourcePath: URI!
+
+  """
+  The security policy URL.
+  """
+  securityPolicyUrl: URI
+
+  """
+  A description of the repository, rendered to HTML without any links in it.
+  """
+  shortDescriptionHTML(
+    """
+    How many characters to return.
+    """
+    limit: Int = 200
+  ): HTML!
+
+  """
+  Whether or not squash-merging is enabled on this repository.
+  """
+  squashMergeAllowed: Boolean!
+
+  """
+  The SSH URL to clone this repository
+  """
+  sshUrl: GitSSHRemote!
+
+  """
+  Returns a count of how many stargazers there are on this object
+  """
+  stargazerCount: Int!
+
+  """
+  A list of users who have starred this starrable.
+  """
+  stargazers(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Order for connection
+    """
+    orderBy: StarOrder
+  ): StargazerConnection!
+
+  """
+  Returns a list of all submodules in this repository parsed from the
+  .gitmodules file as of the default branch's HEAD commit.
+  """
+  submodules(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+  ): SubmoduleConnection!
+
+  """
+  Temporary authentication token for cloning this repository.
+  """
+  tempCloneToken: String
+
+  """
+  The repository from which this repository was generated, if any.
+  """
+  templateRepository: Repository
+
+  """
+  Identifies the date and time when the object was last updated.
+  """
+  updatedAt: DateTime!
+
+  """
+  The HTTP URL for this repository
+  """
+  url: URI!
+
+  """
+  Whether this repository has a custom image to use with Open Graph as opposed to being represented by the owner's avatar.
+  """
+  usesCustomOpenGraphImage: Boolean!
+
+  """
+  Indicates whether the viewer has admin permissions on this repository.
+  """
+  viewerCanAdminister: Boolean!
+
+  """
+  Can the current viewer create new projects on this owner.
+  """
+  viewerCanCreateProjects: Boolean!
+
+  """
+  Check if the viewer is able to change their subscription status for the repository.
+  """
+  viewerCanSubscribe: Boolean!
+
+  """
+  Indicates whether the viewer can update the topics of this repository.
+  """
+  viewerCanUpdateTopics: Boolean!
+
+  """
+  The last commit email for the viewer.
+  """
+  viewerDefaultCommitEmail: String
+
+  """
+  The last used merge method by the viewer or the default for the repository.
+  """
+  viewerDefaultMergeMethod: PullRequestMergeMethod!
+
+  """
+  Returns a boolean indicating whether the viewing user has starred this starrable.
+  """
+  viewerHasStarred: Boolean!
+
+  """
+  The users permission level on the repository. Will return null if authenticated as an GitHub App.
+  """
+  viewerPermission: RepositoryPermission
+
+  """
+  A list of emails this viewer can commit with.
+  """
+  viewerPossibleCommitEmails: [String!]
+
+  """
+  Identifies if the viewer is watching, not watching, or ignoring the subscribable entity.
+  """
+  viewerSubscription: SubscriptionState
+
+  """
+  A list of vulnerability alerts that are on this repository.
+  """
+  vulnerabilityAlerts(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+  ): RepositoryVulnerabilityAlertConnection
+
+  """
+  A list of users watching the repository.
+  """
+  watchers(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+  ): UserConnection!
+}
+
+"""
+The affiliation of a user to a repository
+"""
+enum RepositoryAffiliation {
+  """
+  Repositories that the user has been added to as a collaborator.
+  """
+  COLLABORATOR
+
+  """
+  Repositories that the user has access to through being a member of an
+  organization. This includes every repository on every team that the user is on.
+  """
+  ORGANIZATION_MEMBER
+
+  """
+  Repositories that are owned by the authenticated user.
+  """
+  OWNER
+}
+
+"""
+Metadata for an audit entry with action repo.*
+"""
+interface RepositoryAuditEntryData {
+  """
+  The repository associated with the action
+  """
+  repository: Repository
+
+  """
+  The name of the repository
+  """
+  repositoryName: String
+
+  """
+  The HTTP path for the repository
+  """
+  repositoryResourcePath: URI
+
+  """
+  The HTTP URL for the repository
+  """
+  repositoryUrl: URI
+}
+
+"""
+The connection type for User.
+"""
+type RepositoryCollaboratorConnection {
+  """
+  A list of edges.
+  """
+  edges: [RepositoryCollaboratorEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [User]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+Represents a user who is a collaborator of a repository.
+"""
+type RepositoryCollaboratorEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+  node: User!
+
+  """
+  The permission the user has on the repository.
+  """
+  permission: RepositoryPermission!
+
+  """
+  A list of sources for the user's access to the repository.
+  """
+  permissionSources: [PermissionSource!]
+}
+
+"""
+A list of repositories owned by the subject.
+"""
+type RepositoryConnection {
+  """
+  A list of edges.
+  """
+  edges: [RepositoryEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [Repository]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+
+  """
+  The total size in kilobytes of all repositories in the connection.
+  """
+  totalDiskUsage: Int!
+}
+
+"""
+A repository contact link.
+"""
+type RepositoryContactLink {
+  """
+  The contact link purpose.
+  """
+  about: String!
+
+  """
+  The contact link name.
+  """
+  name: String!
+
+  """
+  The contact link URL.
+  """
+  url: URI!
+}
+
+"""
+The reason a repository is listed as 'contributed'.
+"""
+enum RepositoryContributionType {
+  """
+  Created a commit
+  """
+  COMMIT
+
+  """
+  Created an issue
+  """
+  ISSUE
+
+  """
+  Created a pull request
+  """
+  PULL_REQUEST
+
+  """
+  Reviewed a pull request
+  """
+  PULL_REQUEST_REVIEW
+
+  """
+  Created the repository
+  """
+  REPOSITORY
+}
+
+"""
+An edge in a connection.
+"""
+type RepositoryEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: Repository
+}
+
+"""
+A subset of repository info.
+"""
+interface RepositoryInfo {
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+
+  """
+  The description of the repository.
+  """
+  description: String
+
+  """
+  The description of the repository rendered to HTML.
+  """
+  descriptionHTML: HTML!
+
+  """
+  Returns how many forks there are of this repository in the whole network.
+  """
+  forkCount: Int!
+
+  """
+  Indicates if the repository has issues feature enabled.
+  """
+  hasIssuesEnabled: Boolean!
+
+  """
+  Indicates if the repository has the Projects feature enabled.
+  """
+  hasProjectsEnabled: Boolean!
+
+  """
+  Indicates if the repository has wiki feature enabled.
+  """
+  hasWikiEnabled: Boolean!
+
+  """
+  The repository's URL.
+  """
+  homepageUrl: URI
+
+  """
+  Indicates if the repository is unmaintained.
+  """
+  isArchived: Boolean!
+
+  """
+  Identifies if the repository is a fork.
+  """
+  isFork: Boolean!
+
+  """
+  Indicates if a repository is either owned by an organization, or is a private fork of an organization repository.
+  """
+  isInOrganization: Boolean!
+
+  """
+  Indicates if the repository has been locked or not.
+  """
+  isLocked: Boolean!
+
+  """
+  Identifies if the repository is a mirror.
+  """
+  isMirror: Boolean!
+
+  """
+  Identifies if the repository is private.
+  """
+  isPrivate: Boolean!
+
+  """
+  Identifies if the repository is a template that can be used to generate new repositories.
+  """
+  isTemplate: Boolean!
+
+  """
+  The license associated with the repository
+  """
+  licenseInfo: License
+
+  """
+  The reason the repository has been locked.
+  """
+  lockReason: RepositoryLockReason
+
+  """
+  The repository's original mirror URL.
+  """
+  mirrorUrl: URI
+
+  """
+  The name of the repository.
+  """
+  name: String!
+
+  """
+  The repository's name with owner.
+  """
+  nameWithOwner: String!
+
+  """
+  The image used to represent this repository in Open Graph data.
+  """
+  openGraphImageUrl: URI!
+
+  """
+  The User owner of the repository.
+  """
+  owner: RepositoryOwner!
+
+  """
+  Identifies when the repository was last pushed to.
+  """
+  pushedAt: DateTime
+
+  """
+  The HTTP path for this repository
+  """
+  resourcePath: URI!
+
+  """
+  A description of the repository, rendered to HTML without any links in it.
+  """
+  shortDescriptionHTML(
+    """
+    How many characters to return.
+    """
+    limit: Int = 200
+  ): HTML!
+
+  """
+  Identifies the date and time when the object was last updated.
+  """
+  updatedAt: DateTime!
+
+  """
+  The HTTP URL for this repository
+  """
+  url: URI!
+
+  """
+  Whether this repository has a custom image to use with Open Graph as opposed to being represented by the owner's avatar.
+  """
+  usesCustomOpenGraphImage: Boolean!
+}
+
+"""
+Repository interaction limit that applies to this object.
+"""
+type RepositoryInteractionAbility {
+  """
+  The time the currently active limit expires.
+  """
+  expiresAt: DateTime
+
+  """
+  The current limit that is enabled on this object.
+  """
+  limit: RepositoryInteractionLimit!
+
+  """
+  The origin of the currently active interaction limit.
+  """
+  origin: RepositoryInteractionLimitOrigin!
+}
+
+"""
+A repository interaction limit.
+"""
+enum RepositoryInteractionLimit {
+  """
+  Users that are not collaborators will not be able to interact with the repository.
+  """
+  COLLABORATORS_ONLY
+
+  """
+  Users that have not previously committed to a repository’s default branch will be unable to interact with the repository.
+  """
+  CONTRIBUTORS_ONLY
+
+  """
+  Users that have recently created their account will be unable to interact with the repository.
+  """
+  EXISTING_USERS
+
+  """
+  No interaction limits are enabled.
+  """
+  NO_LIMIT
+}
+
+"""
+The length for a repository interaction limit to be enabled for.
+"""
+enum RepositoryInteractionLimitExpiry {
+  """
+  The interaction limit will expire after 1 day.
+  """
+  ONE_DAY
+
+  """
+  The interaction limit will expire after 1 month.
+  """
+  ONE_MONTH
+
+  """
+  The interaction limit will expire after 1 week.
+  """
+  ONE_WEEK
+
+  """
+  The interaction limit will expire after 6 months.
+  """
+  SIX_MONTHS
+
+  """
+  The interaction limit will expire after 3 days.
+  """
+  THREE_DAYS
+}
+
+"""
+Indicates where an interaction limit is configured.
+"""
+enum RepositoryInteractionLimitOrigin {
+  """
+  A limit that is configured at the organization level.
+  """
+  ORGANIZATION
+
+  """
+  A limit that is configured at the repository level.
+  """
+  REPOSITORY
+
+  """
+  A limit that is configured at the user-wide level.
+  """
+  USER
+}
+
+"""
+An invitation for a user to be added to a repository.
+"""
+type RepositoryInvitation implements Node {
+  """
+  The email address that received the invitation.
+  """
+  email: String
+  id: ID!
+
+  """
+  The user who received the invitation.
+  """
+  invitee: User
+
+  """
+  The user who created the invitation.
+  """
+  inviter: User!
+
+  """
+  The permalink for this repository invitation.
+  """
+  permalink: URI!
+
+  """
+  The permission granted on this repository by this invitation.
+  """
+  permission: RepositoryPermission!
+
+  """
+  The Repository the user is invited to.
+  """
+  repository: RepositoryInfo
+}
+
+"""
+The connection type for RepositoryInvitation.
+"""
+type RepositoryInvitationConnection {
+  """
+  A list of edges.
+  """
+  edges: [RepositoryInvitationEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [RepositoryInvitation]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+An edge in a connection.
+"""
+type RepositoryInvitationEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: RepositoryInvitation
+}
+
+"""
+Ordering options for repository invitation connections.
+"""
+input RepositoryInvitationOrder {
+  """
+  The ordering direction.
+  """
+  direction: OrderDirection!
+
+  """
+  The field to order repository invitations by.
+  """
+  field: RepositoryInvitationOrderField!
+}
+
+"""
+Properties by which repository invitation connections can be ordered.
+"""
+enum RepositoryInvitationOrderField {
+  """
+  Order repository invitations by creation time
+  """
+  CREATED_AT
+
+  """
+  Order repository invitations by invitee login
+  """
+  INVITEE_LOGIN @deprecated(reason: "`INVITEE_LOGIN` is no longer a valid field value. Repository invitations can now be associated with an email, not only an invitee. Removal on 2020-10-01 UTC.")
+}
+
+"""
+The possible reasons a given repository could be in a locked state.
+"""
+enum RepositoryLockReason {
+  """
+  The repository is locked due to a billing related reason.
+  """
+  BILLING
+
+  """
+  The repository is locked due to a migration.
+  """
+  MIGRATING
+
+  """
+  The repository is locked due to a move.
+  """
+  MOVING
+
+  """
+  The repository is locked due to a rename.
+  """
+  RENAME
+}
+
+"""
+Represents a object that belongs to a repository.
+"""
+interface RepositoryNode {
+  """
+  The repository associated with this node.
+  """
+  repository: Repository!
+}
+
+"""
+Ordering options for repository connections
+"""
+input RepositoryOrder {
+  """
+  The ordering direction.
+  """
+  direction: OrderDirection!
+
+  """
+  The field to order repositories by.
+  """
+  field: RepositoryOrderField!
+}
+
+"""
+Properties by which repository connections can be ordered.
+"""
+enum RepositoryOrderField {
+  """
+  Order repositories by creation time
+  """
+  CREATED_AT
+
+  """
+  Order repositories by name
+  """
+  NAME
+
+  """
+  Order repositories by push time
+  """
+  PUSHED_AT
+
+  """
+  Order repositories by number of stargazers
+  """
+  STARGAZERS
+
+  """
+  Order repositories by update time
+  """
+  UPDATED_AT
+}
+
+"""
+Represents an owner of a Repository.
+"""
+interface RepositoryOwner {
+  """
+  A URL pointing to the owner's public avatar.
+  """
+  avatarUrl(
+    """
+    The size of the resulting square image.
+    """
+    size: Int
+  ): URI!
+  id: ID!
+
+  """
+  The username used to login.
+  """
+  login: String!
+
+  """
+  A list of repositories that the user owns.
+  """
+  repositories(
+    """
+    Array of viewer's affiliation options for repositories returned from the
+    connection. For example, OWNER will include only repositories that the
+    current viewer owns.
+    """
+    affiliations: [RepositoryAffiliation]
+
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    If non-null, filters repositories according to whether they are forks of another repository
+    """
+    isFork: Boolean
+
+    """
+    If non-null, filters repositories according to whether they have been locked
+    """
+    isLocked: Boolean
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for repositories returned from the connection
+    """
+    orderBy: RepositoryOrder
+
+    """
+    Array of owner's affiliation options for repositories returned from the
+    connection. For example, OWNER will include only repositories that the
+    organization or user being viewed owns.
+    """
+    ownerAffiliations: [RepositoryAffiliation] = [OWNER, COLLABORATOR]
+
+    """
+    If non-null, filters repositories according to privacy
+    """
+    privacy: RepositoryPrivacy
+  ): RepositoryConnection!
+
+  """
+  Find Repository.
+  """
+  repository(
+    """
+    Name of Repository to find.
+    """
+    name: String!
+  ): Repository
+
+  """
+  The HTTP URL for the owner.
+  """
+  resourcePath: URI!
+
+  """
+  The HTTP URL for the owner.
+  """
+  url: URI!
+}
+
+"""
+The access level to a repository
+"""
+enum RepositoryPermission {
+  """
+  Can read, clone, and push to this repository. Can also manage issues, pull
+  requests, and repository settings, including adding collaborators
+  """
+  ADMIN
+
+  """
+  Can read, clone, and push to this repository. They can also manage issues, pull requests, and some repository settings
+  """
+  MAINTAIN
+
+  """
+  Can read and clone this repository. Can also open and comment on issues and pull requests
+  """
+  READ
+
+  """
+  Can read and clone this repository. Can also manage issues and pull requests
+  """
+  TRIAGE
+
+  """
+  Can read, clone, and push to this repository. Can also manage issues and pull requests
+  """
+  WRITE
+}
+
+"""
+The privacy of a repository
+"""
+enum RepositoryPrivacy {
+  """
+  Private
+  """
+  PRIVATE
+
+  """
+  Public
+  """
+  PUBLIC
+}
+
+"""
+A repository-topic connects a repository to a topic.
+"""
+type RepositoryTopic implements Node & UniformResourceLocatable {
+  id: ID!
+
+  """
+  The HTTP path for this repository-topic.
+  """
+  resourcePath: URI!
+
+  """
+  The topic.
+  """
+  topic: Topic!
+
+  """
+  The HTTP URL for this repository-topic.
+  """
+  url: URI!
+}
+
+"""
+The connection type for RepositoryTopic.
+"""
+type RepositoryTopicConnection {
+  """
+  A list of edges.
+  """
+  edges: [RepositoryTopicEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [RepositoryTopic]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+An edge in a connection.
+"""
+type RepositoryTopicEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: RepositoryTopic
+}
+
+"""
+The repository's visibility level.
+"""
+enum RepositoryVisibility {
+  """
+  The repository is visible only to users in the same business.
+  """
+  INTERNAL
+
+  """
+  The repository is visible only to those with explicit access.
+  """
+  PRIVATE
+
+  """
+  The repository is visible to everyone.
+  """
+  PUBLIC
+}
+
+"""
+Audit log entry for a repository_visibility_change.disable event.
+"""
+type RepositoryVisibilityChangeDisableAuditEntry implements AuditEntry & EnterpriseAuditEntryData & Node & OrganizationAuditEntryData {
+  """
+  The action name
+  """
+  action: String!
+
+  """
+  The user who initiated the action
+  """
+  actor: AuditEntryActor
+
+  """
+  The IP address of the actor
+  """
+  actorIp: String
+
+  """
+  A readable representation of the actor's location
+  """
+  actorLocation: ActorLocation
+
+  """
+  The username of the user who initiated the action
+  """
+  actorLogin: String
+
+  """
+  The HTTP path for the actor.
+  """
+  actorResourcePath: URI
+
+  """
+  The HTTP URL for the actor.
+  """
+  actorUrl: URI
+
+  """
+  The time the action was initiated
+  """
+  createdAt: PreciseDateTime!
+
+  """
+  The HTTP path for this enterprise.
+  """
+  enterpriseResourcePath: URI
+
+  """
+  The slug of the enterprise.
+  """
+  enterpriseSlug: String
+
+  """
+  The HTTP URL for this enterprise.
+  """
+  enterpriseUrl: URI
+  id: ID!
+
+  """
+  The corresponding operation type for the action
+  """
+  operationType: OperationType
+
+  """
+  The Organization associated with the Audit Entry.
+  """
+  organization: Organization
+
+  """
+  The name of the Organization.
+  """
+  organizationName: String
+
+  """
+  The HTTP path for the organization
+  """
+  organizationResourcePath: URI
+
+  """
+  The HTTP URL for the organization
+  """
+  organizationUrl: URI
+
+  """
+  The user affected by the action
+  """
+  user: User
+
+  """
+  For actions involving two users, the actor is the initiator and the user is the affected user.
+  """
+  userLogin: String
+
+  """
+  The HTTP path for the user.
+  """
+  userResourcePath: URI
+
+  """
+  The HTTP URL for the user.
+  """
+  userUrl: URI
+}
+
+"""
+Audit log entry for a repository_visibility_change.enable event.
+"""
+type RepositoryVisibilityChangeEnableAuditEntry implements AuditEntry & EnterpriseAuditEntryData & Node & OrganizationAuditEntryData {
+  """
+  The action name
+  """
+  action: String!
+
+  """
+  The user who initiated the action
+  """
+  actor: AuditEntryActor
+
+  """
+  The IP address of the actor
+  """
+  actorIp: String
+
+  """
+  A readable representation of the actor's location
+  """
+  actorLocation: ActorLocation
+
+  """
+  The username of the user who initiated the action
+  """
+  actorLogin: String
+
+  """
+  The HTTP path for the actor.
+  """
+  actorResourcePath: URI
+
+  """
+  The HTTP URL for the actor.
+  """
+  actorUrl: URI
+
+  """
+  The time the action was initiated
+  """
+  createdAt: PreciseDateTime!
+
+  """
+  The HTTP path for this enterprise.
+  """
+  enterpriseResourcePath: URI
+
+  """
+  The slug of the enterprise.
+  """
+  enterpriseSlug: String
+
+  """
+  The HTTP URL for this enterprise.
+  """
+  enterpriseUrl: URI
+  id: ID!
+
+  """
+  The corresponding operation type for the action
+  """
+  operationType: OperationType
+
+  """
+  The Organization associated with the Audit Entry.
+  """
+  organization: Organization
+
+  """
+  The name of the Organization.
+  """
+  organizationName: String
+
+  """
+  The HTTP path for the organization
+  """
+  organizationResourcePath: URI
+
+  """
+  The HTTP URL for the organization
+  """
+  organizationUrl: URI
+
+  """
+  The user affected by the action
+  """
+  user: User
+
+  """
+  For actions involving two users, the actor is the initiator and the user is the affected user.
+  """
+  userLogin: String
+
+  """
+  The HTTP path for the user.
+  """
+  userResourcePath: URI
+
+  """
+  The HTTP URL for the user.
+  """
+  userUrl: URI
+}
+
+"""
+A alert for a repository with an affected vulnerability.
+"""
+type RepositoryVulnerabilityAlert implements Node & RepositoryNode {
+  """
+  When was the alert created?
+  """
+  createdAt: DateTime!
+
+  """
+  The reason the alert was dismissed
+  """
+  dismissReason: String
+
+  """
+  When was the alert dismissed?
+  """
+  dismissedAt: DateTime
+
+  """
+  The user who dismissed the alert
+  """
+  dismisser: User
+  id: ID!
+
+  """
+  The associated repository
+  """
+  repository: Repository!
+
+  """
+  The associated security advisory
+  """
+  securityAdvisory: SecurityAdvisory
+
+  """
+  The associated security vulnerability
+  """
+  securityVulnerability: SecurityVulnerability
+
+  """
+  The vulnerable manifest filename
+  """
+  vulnerableManifestFilename: String!
+
+  """
+  The vulnerable manifest path
+  """
+  vulnerableManifestPath: String!
+
+  """
+  The vulnerable requirements
+  """
+  vulnerableRequirements: String
+}
+
+"""
+The connection type for RepositoryVulnerabilityAlert.
+"""
+type RepositoryVulnerabilityAlertConnection {
+  """
+  A list of edges.
+  """
+  edges: [RepositoryVulnerabilityAlertEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [RepositoryVulnerabilityAlert]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+An edge in a connection.
+"""
+type RepositoryVulnerabilityAlertEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: RepositoryVulnerabilityAlert
+}
+
+"""
+Autogenerated input type of RequestReviews
+"""
+input RequestReviewsInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The Node ID of the pull request to modify.
+  """
+  pullRequestId: ID!
+
+  """
+  The Node IDs of the team to request.
+  """
+  teamIds: [ID!]
+
+  """
+  Add users to the set rather than replace.
+  """
+  union: Boolean
+
+  """
+  The Node IDs of the user to request.
+  """
+  userIds: [ID!]
+}
+
+"""
+Autogenerated return type of RequestReviews
+"""
+type RequestReviewsPayload {
+  """
+  Identifies the actor who performed the event.
+  """
+  actor: Actor
+
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The pull request that is getting requests.
+  """
+  pullRequest: PullRequest
+
+  """
+  The edge from the pull request to the requested reviewers.
+  """
+  requestedReviewersEdge: UserEdge
+}
+
+"""
+The possible states that can be requested when creating a check run.
+"""
+enum RequestableCheckStatusState {
+  """
+  The check suite or run has been completed.
+  """
+  COMPLETED
+
+  """
+  The check suite or run is in progress.
+  """
+  IN_PROGRESS
+
+  """
+  The check suite or run has been queued.
+  """
+  QUEUED
+
+  """
+  The check suite or run is in waiting state.
+  """
+  WAITING
+}
+
+"""
+Types that can be requested reviewers.
+"""
+union RequestedReviewer = Mannequin | Team | User
+
+"""
+Autogenerated input type of RerequestCheckSuite
+"""
+input RerequestCheckSuiteInput {
+  """
+  The Node ID of the check suite.
+  """
+  checkSuiteId: ID!
+
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The Node ID of the repository.
+  """
+  repositoryId: ID!
+}
+
+"""
+Autogenerated return type of RerequestCheckSuite
+"""
+type RerequestCheckSuitePayload {
+  """
+  The requested check suite.
+  """
+  checkSuite: CheckSuite
+
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+}
+
+"""
+Autogenerated input type of ResolveReviewThread
+"""
+input ResolveReviewThreadInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The ID of the thread to resolve
+  """
+  threadId: ID!
+}
+
+"""
+Autogenerated return type of ResolveReviewThread
+"""
+type ResolveReviewThreadPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The thread to resolve.
+  """
+  thread: PullRequestReviewThread
+}
+
+"""
+Represents a private contribution a user made on GitHub.
+"""
+type RestrictedContribution implements Contribution {
+  """
+  Whether this contribution is associated with a record you do not have access to. For
+  example, your own 'first issue' contribution may have been made on a repository you can no
+  longer access.
+  """
+  isRestricted: Boolean!
+
+  """
+  When this contribution was made.
+  """
+  occurredAt: DateTime!
+
+  """
+  The HTTP path for this contribution.
+  """
+  resourcePath: URI!
+
+  """
+  The HTTP URL for this contribution.
+  """
+  url: URI!
+
+  """
+  The user who made this contribution.
+  """
+  user: User!
+}
+
+"""
+A team or user who has the ability to dismiss a review on a protected branch.
+"""
+type ReviewDismissalAllowance implements Node {
+  """
+  The actor that can dismiss.
+  """
+  actor: ReviewDismissalAllowanceActor
+
+  """
+  Identifies the branch protection rule associated with the allowed user or team.
+  """
+  branchProtectionRule: BranchProtectionRule
+  id: ID!
+}
+
+"""
+Types that can be an actor.
+"""
+union ReviewDismissalAllowanceActor = Team | User
+
+"""
+The connection type for ReviewDismissalAllowance.
+"""
+type ReviewDismissalAllowanceConnection {
+  """
+  A list of edges.
+  """
+  edges: [ReviewDismissalAllowanceEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [ReviewDismissalAllowance]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+An edge in a connection.
+"""
+type ReviewDismissalAllowanceEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: ReviewDismissalAllowance
+}
+
+"""
+Represents a 'review_dismissed' event on a given issue or pull request.
+"""
+type ReviewDismissedEvent implements Node & UniformResourceLocatable {
+  """
+  Identifies the actor who performed the event.
+  """
+  actor: Actor
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+
+  """
+  Identifies the primary key from the database.
+  """
+  databaseId: Int
+
+  """
+  Identifies the optional message associated with the 'review_dismissed' event.
+  """
+  dismissalMessage: String
+
+  """
+  Identifies the optional message associated with the event, rendered to HTML.
+  """
+  dismissalMessageHTML: String
+  id: ID!
+
+  """
+  Identifies the previous state of the review with the 'review_dismissed' event.
+  """
+  previousReviewState: PullRequestReviewState!
+
+  """
+  PullRequest referenced by event.
+  """
+  pullRequest: PullRequest!
+
+  """
+  Identifies the commit which caused the review to become stale.
+  """
+  pullRequestCommit: PullRequestCommit
+
+  """
+  The HTTP path for this review dismissed event.
+  """
+  resourcePath: URI!
+
+  """
+  Identifies the review associated with the 'review_dismissed' event.
+  """
+  review: PullRequestReview
+
+  """
+  The HTTP URL for this review dismissed event.
+  """
+  url: URI!
+}
+
+"""
+A request for a user to review a pull request.
+"""
+type ReviewRequest implements Node {
+  """
+  Whether this request was created for a code owner
+  """
+  asCodeOwner: Boolean!
+
+  """
+  Identifies the primary key from the database.
+  """
+  databaseId: Int
+  id: ID!
+
+  """
+  Identifies the pull request associated with this review request.
+  """
+  pullRequest: PullRequest!
+
+  """
+  The reviewer that is requested.
+  """
+  requestedReviewer: RequestedReviewer
+}
+
+"""
+The connection type for ReviewRequest.
+"""
+type ReviewRequestConnection {
+  """
+  A list of edges.
+  """
+  edges: [ReviewRequestEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [ReviewRequest]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+An edge in a connection.
+"""
+type ReviewRequestEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: ReviewRequest
+}
+
+"""
+Represents an 'review_request_removed' event on a given pull request.
+"""
+type ReviewRequestRemovedEvent implements Node {
+  """
+  Identifies the actor who performed the event.
+  """
+  actor: Actor
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+  id: ID!
+
+  """
+  PullRequest referenced by event.
+  """
+  pullRequest: PullRequest!
+
+  """
+  Identifies the reviewer whose review request was removed.
+  """
+  requestedReviewer: RequestedReviewer
+}
+
+"""
+Represents an 'review_requested' event on a given pull request.
+"""
+type ReviewRequestedEvent implements Node {
+  """
+  Identifies the actor who performed the event.
+  """
+  actor: Actor
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+  id: ID!
+
+  """
+  PullRequest referenced by event.
+  """
+  pullRequest: PullRequest!
+
+  """
+  Identifies the reviewer whose review was requested.
+  """
+  requestedReviewer: RequestedReviewer
+}
+
+"""
+A hovercard context with a message describing the current code review state of the pull
+request.
+"""
+type ReviewStatusHovercardContext implements HovercardContext {
+  """
+  A string describing this context
+  """
+  message: String!
+
+  """
+  An octicon to accompany this context
+  """
+  octicon: String!
+
+  """
+  The current status of the pull request with respect to code review.
+  """
+  reviewDecision: PullRequestReviewDecision
+}
+
+"""
+The possible digest algorithms used to sign SAML requests for an identity provider.
+"""
+enum SamlDigestAlgorithm {
+  """
+  SHA1
+  """
+  SHA1
+
+  """
+  SHA256
+  """
+  SHA256
+
+  """
+  SHA384
+  """
+  SHA384
+
+  """
+  SHA512
+  """
+  SHA512
+}
+
+"""
+The possible signature algorithms used to sign SAML requests for a Identity Provider.
+"""
+enum SamlSignatureAlgorithm {
+  """
+  RSA-SHA1
+  """
+  RSA_SHA1
+
+  """
+  RSA-SHA256
+  """
+  RSA_SHA256
+
+  """
+  RSA-SHA384
+  """
+  RSA_SHA384
+
+  """
+  RSA-SHA512
+  """
+  RSA_SHA512
+}
+
+"""
+A Saved Reply is text a user can use to reply quickly.
+"""
+type SavedReply implements Node {
+  """
+  The body of the saved reply.
+  """
+  body: String!
+
+  """
+  The saved reply body rendered to HTML.
+  """
+  bodyHTML: HTML!
+
+  """
+  Identifies the primary key from the database.
+  """
+  databaseId: Int
+  id: ID!
+
+  """
+  The title of the saved reply.
+  """
+  title: String!
+
+  """
+  The user that saved this reply.
+  """
+  user: Actor
+}
+
+"""
+The connection type for SavedReply.
+"""
+type SavedReplyConnection {
+  """
+  A list of edges.
+  """
+  edges: [SavedReplyEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [SavedReply]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+An edge in a connection.
+"""
+type SavedReplyEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: SavedReply
+}
+
+"""
+Ordering options for saved reply connections.
+"""
+input SavedReplyOrder {
+  """
+  The ordering direction.
+  """
+  direction: OrderDirection!
+
+  """
+  The field to order saved replies by.
+  """
+  field: SavedReplyOrderField!
+}
+
+"""
+Properties by which saved reply connections can be ordered.
+"""
+enum SavedReplyOrderField {
+  """
+  Order saved reply by when they were updated.
+  """
+  UPDATED_AT
+}
+
+"""
+The results of a search.
+"""
+union SearchResultItem = App | Issue | MarketplaceListing | Organization | PullRequest | Repository | User
+
+"""
+A list of results that matched against a search query.
+"""
+type SearchResultItemConnection {
+  """
+  The number of pieces of code that matched the search query.
+  """
+  codeCount: Int!
+
+  """
+  A list of edges.
+  """
+  edges: [SearchResultItemEdge]
+
+  """
+  The number of issues that matched the search query.
+  """
+  issueCount: Int!
+
+  """
+  A list of nodes.
+  """
+  nodes: [SearchResultItem]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  The number of repositories that matched the search query.
+  """
+  repositoryCount: Int!
+
+  """
+  The number of users that matched the search query.
+  """
+  userCount: Int!
+
+  """
+  The number of wiki pages that matched the search query.
+  """
+  wikiCount: Int!
+}
+
+"""
+An edge in a connection.
+"""
+type SearchResultItemEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: SearchResultItem
+
+  """
+  Text matches on the result found.
+  """
+  textMatches: [TextMatch]
+}
+
+"""
+Represents the individual results of a search.
+"""
+enum SearchType {
+  """
+  Returns results matching issues in repositories.
+  """
+  ISSUE
+
+  """
+  Returns results matching repositories.
+  """
+  REPOSITORY
+
+  """
+  Returns results matching users and organizations on GitHub.
+  """
+  USER
+}
+
+"""
+A GitHub Security Advisory
+"""
+type SecurityAdvisory implements Node {
+  """
+  Identifies the primary key from the database.
+  """
+  databaseId: Int
+
+  """
+  This is a long plaintext description of the advisory
+  """
+  description: String!
+
+  """
+  The GitHub Security Advisory ID
+  """
+  ghsaId: String!
+  id: ID!
+
+  """
+  A list of identifiers for this advisory
+  """
+  identifiers: [SecurityAdvisoryIdentifier!]!
+
+  """
+  The permalink for the advisory's dependabot alerts page
+  """
+  notificationsPermalink: URI
+
+  """
+  The organization that originated the advisory
+  """
+  origin: String!
+
+  """
+  The permalink for the advisory
+  """
+  permalink: URI
+
+  """
+  When the advisory was published
+  """
+  publishedAt: DateTime!
+
+  """
+  A list of references for this advisory
+  """
+  references: [SecurityAdvisoryReference!]!
+
+  """
+  The severity of the advisory
+  """
+  severity: SecurityAdvisorySeverity!
+
+  """
+  A short plaintext summary of the advisory
+  """
+  summary: String!
+
+  """
+  When the advisory was last updated
+  """
+  updatedAt: DateTime!
+
+  """
+  Vulnerabilities associated with this Advisory
+  """
+  vulnerabilities(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    An ecosystem to filter vulnerabilities by.
+    """
+    ecosystem: SecurityAdvisoryEcosystem
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for the returned topics.
+    """
+    orderBy: SecurityVulnerabilityOrder = {field: UPDATED_AT, direction: DESC}
+
+    """
+    A package name to filter vulnerabilities by.
+    """
+    package: String
+
+    """
+    A list of severities to filter vulnerabilities by.
+    """
+    severities: [SecurityAdvisorySeverity!]
+  ): SecurityVulnerabilityConnection!
+
+  """
+  When the advisory was withdrawn, if it has been withdrawn
+  """
+  withdrawnAt: DateTime
+}
+
+"""
+The connection type for SecurityAdvisory.
+"""
+type SecurityAdvisoryConnection {
+  """
+  A list of edges.
+  """
+  edges: [SecurityAdvisoryEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [SecurityAdvisory]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+The possible ecosystems of a security vulnerability's package.
+"""
+enum SecurityAdvisoryEcosystem {
+  """
+  PHP packages hosted at packagist.org
+  """
+  COMPOSER
+
+  """
+  Java artifacts hosted at the Maven central repository
+  """
+  MAVEN
+
+  """
+  JavaScript packages hosted at npmjs.com
+  """
+  NPM
+
+  """
+  .NET packages hosted at the NuGet Gallery
+  """
+  NUGET
+
+  """
+  Python packages hosted at PyPI.org
+  """
+  PIP
+
+  """
+  Ruby gems hosted at RubyGems.org
+  """
+  RUBYGEMS
+}
+
+"""
+An edge in a connection.
+"""
+type SecurityAdvisoryEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: SecurityAdvisory
+}
+
+"""
+A GitHub Security Advisory Identifier
+"""
+type SecurityAdvisoryIdentifier {
+  """
+  The identifier type, e.g. GHSA, CVE
+  """
+  type: String!
+
+  """
+  The identifier
+  """
+  value: String!
+}
+
+"""
+An advisory identifier to filter results on.
+"""
+input SecurityAdvisoryIdentifierFilter {
+  """
+  The identifier type.
+  """
+  type: SecurityAdvisoryIdentifierType!
+
+  """
+  The identifier string. Supports exact or partial matching.
+  """
+  value: String!
+}
+
+"""
+Identifier formats available for advisories.
+"""
+enum SecurityAdvisoryIdentifierType {
+  """
+  Common Vulnerabilities and Exposures Identifier.
+  """
+  CVE
+
+  """
+  GitHub Security Advisory ID.
+  """
+  GHSA
+}
+
+"""
+Ordering options for security advisory connections
+"""
+input SecurityAdvisoryOrder {
+  """
+  The ordering direction.
+  """
+  direction: OrderDirection!
+
+  """
+  The field to order security advisories by.
+  """
+  field: SecurityAdvisoryOrderField!
+}
+
+"""
+Properties by which security advisory connections can be ordered.
+"""
+enum SecurityAdvisoryOrderField {
+  """
+  Order advisories by publication time
+  """
+  PUBLISHED_AT
+
+  """
+  Order advisories by update time
+  """
+  UPDATED_AT
+}
+
+"""
+An individual package
+"""
+type SecurityAdvisoryPackage {
+  """
+  The ecosystem the package belongs to, e.g. RUBYGEMS, NPM
+  """
+  ecosystem: SecurityAdvisoryEcosystem!
+
+  """
+  The package name
+  """
+  name: String!
+}
+
+"""
+An individual package version
+"""
+type SecurityAdvisoryPackageVersion {
+  """
+  The package name or version
+  """
+  identifier: String!
+}
+
+"""
+A GitHub Security Advisory Reference
+"""
+type SecurityAdvisoryReference {
+  """
+  A publicly accessible reference
+  """
+  url: URI!
+}
+
+"""
+Severity of the vulnerability.
+"""
+enum SecurityAdvisorySeverity {
+  """
+  Critical.
+  """
+  CRITICAL
+
+  """
+  High.
+  """
+  HIGH
+
+  """
+  Low.
+  """
+  LOW
+
+  """
+  Moderate.
+  """
+  MODERATE
+}
+
+"""
+An individual vulnerability within an Advisory
+"""
+type SecurityVulnerability {
+  """
+  The Advisory associated with this Vulnerability
+  """
+  advisory: SecurityAdvisory!
+
+  """
+  The first version containing a fix for the vulnerability
+  """
+  firstPatchedVersion: SecurityAdvisoryPackageVersion
+
+  """
+  A description of the vulnerable package
+  """
+  package: SecurityAdvisoryPackage!
+
+  """
+  The severity of the vulnerability within this package
+  """
+  severity: SecurityAdvisorySeverity!
+
+  """
+  When the vulnerability was last updated
+  """
+  updatedAt: DateTime!
+
+  """
+  A string that describes the vulnerable package versions.
+  This string follows a basic syntax with a few forms.
+  + `= 0.2.0` denotes a single vulnerable version.
+  + `<= 1.0.8` denotes a version range up to and including the specified version
+  + `< 0.1.11` denotes a version range up to, but excluding, the specified version
+  + `>= 4.3.0, < 4.3.5` denotes a version range with a known minimum and maximum version.
+  + `>= 0.0.1` denotes a version range with a known minimum, but no known maximum
+  """
+  vulnerableVersionRange: String!
+}
+
+"""
+The connection type for SecurityVulnerability.
+"""
+type SecurityVulnerabilityConnection {
+  """
+  A list of edges.
+  """
+  edges: [SecurityVulnerabilityEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [SecurityVulnerability]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+An edge in a connection.
+"""
+type SecurityVulnerabilityEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: SecurityVulnerability
+}
+
+"""
+Ordering options for security vulnerability connections
+"""
+input SecurityVulnerabilityOrder {
+  """
+  The ordering direction.
+  """
+  direction: OrderDirection!
+
+  """
+  The field to order security vulnerabilities by.
+  """
+  field: SecurityVulnerabilityOrderField!
+}
+
+"""
+Properties by which security vulnerability connections can be ordered.
+"""
+enum SecurityVulnerabilityOrderField {
+  """
+  Order vulnerability by update time
+  """
+  UPDATED_AT
+}
+
+"""
+Autogenerated input type of SetEnterpriseIdentityProvider
+"""
+input SetEnterpriseIdentityProviderInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The digest algorithm used to sign SAML requests for the identity provider.
+  """
+  digestMethod: SamlDigestAlgorithm!
+
+  """
+  The ID of the enterprise on which to set an identity provider.
+  """
+  enterpriseId: ID!
+
+  """
+  The x509 certificate used by the identity provider to sign assertions and responses.
+  """
+  idpCertificate: String!
+
+  """
+  The Issuer Entity ID for the SAML identity provider
+  """
+  issuer: String
+
+  """
+  The signature algorithm used to sign SAML requests for the identity provider.
+  """
+  signatureMethod: SamlSignatureAlgorithm!
+
+  """
+  The URL endpoint for the identity provider's SAML SSO.
+  """
+  ssoUrl: URI!
+}
+
+"""
+Autogenerated return type of SetEnterpriseIdentityProvider
+"""
+type SetEnterpriseIdentityProviderPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The identity provider for the enterprise.
+  """
+  identityProvider: EnterpriseIdentityProvider
+}
+
+"""
+Autogenerated input type of SetOrganizationInteractionLimit
+"""
+input SetOrganizationInteractionLimitInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  When this limit should expire.
+  """
+  expiry: RepositoryInteractionLimitExpiry
+
+  """
+  The limit to set.
+  """
+  limit: RepositoryInteractionLimit!
+
+  """
+  The ID of the organization to set a limit for.
+  """
+  organizationId: ID!
+}
+
+"""
+Autogenerated return type of SetOrganizationInteractionLimit
+"""
+type SetOrganizationInteractionLimitPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The organization that the interaction limit was set for.
+  """
+  organization: Organization
+}
+
+"""
+Autogenerated input type of SetRepositoryInteractionLimit
+"""
+input SetRepositoryInteractionLimitInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  When this limit should expire.
+  """
+  expiry: RepositoryInteractionLimitExpiry
+
+  """
+  The limit to set.
+  """
+  limit: RepositoryInteractionLimit!
+
+  """
+  The ID of the repository to set a limit for.
+  """
+  repositoryId: ID!
+}
+
+"""
+Autogenerated return type of SetRepositoryInteractionLimit
+"""
+type SetRepositoryInteractionLimitPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The repository that the interaction limit was set for.
+  """
+  repository: Repository
+}
+
+"""
+Autogenerated input type of SetUserInteractionLimit
+"""
+input SetUserInteractionLimitInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  When this limit should expire.
+  """
+  expiry: RepositoryInteractionLimitExpiry
+
+  """
+  The limit to set.
+  """
+  limit: RepositoryInteractionLimit!
+
+  """
+  The ID of the user to set a limit for.
+  """
+  userId: ID!
+}
+
+"""
+Autogenerated return type of SetUserInteractionLimit
+"""
+type SetUserInteractionLimitPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The user that the interaction limit was set for.
+  """
+  user: User
+}
+
+"""
+Represents an S/MIME signature on a Commit or Tag.
+"""
+type SmimeSignature implements GitSignature {
+  """
+  Email used to sign this object.
+  """
+  email: String!
+
+  """
+  True if the signature is valid and verified by GitHub.
+  """
+  isValid: Boolean!
+
+  """
+  Payload for GPG signing object. Raw ODB object without the signature header.
+  """
+  payload: String!
+
+  """
+  ASCII-armored signature header from object.
+  """
+  signature: String!
+
+  """
+  GitHub user corresponding to the email signing this commit.
+  """
+  signer: User
+
+  """
+  The state of this signature. `VALID` if signature is valid and verified by
+  GitHub, otherwise represents reason why signature is considered invalid.
+  """
+  state: GitSignatureState!
+
+  """
+  True if the signature was made with GitHub's signing key.
+  """
+  wasSignedByGitHub: Boolean!
+}
+
+"""
+Entities that can sponsor others via GitHub Sponsors
+"""
+union Sponsor = Organization | User
+
+"""
+Entities that can be sponsored through GitHub Sponsors
+"""
+interface Sponsorable {
+  """
+  True if this user/organization has a GitHub Sponsors listing.
+  """
+  hasSponsorsListing: Boolean!
+
+  """
+  Check if the given account is sponsoring this user/organization.
+  """
+  isSponsoredBy(
+    """
+    The target account's login.
+    """
+    accountLogin: String!
+  ): Boolean!
+
+  """
+  True if the viewer is sponsored by this user/organization.
+  """
+  isSponsoringViewer: Boolean!
+
+  """
+  The GitHub Sponsors listing for this user or organization.
+  """
+  sponsorsListing: SponsorsListing
+
+  """
+  The viewer's sponsorship of this entity.
+  """
+  sponsorshipForViewerAsSponsor: Sponsorship
+
+  """
+  This object's sponsorships as the maintainer.
+  """
+  sponsorshipsAsMaintainer(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Whether or not to include private sponsorships in the result set
+    """
+    includePrivate: Boolean = false
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for sponsorships returned from this connection. If left
+    blank, the sponsorships will be ordered based on relevancy to the viewer.
+    """
+    orderBy: SponsorshipOrder
+  ): SponsorshipConnection!
+
+  """
+  This object's sponsorships as the sponsor.
+  """
+  sponsorshipsAsSponsor(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for sponsorships returned from this connection. If left
+    blank, the sponsorships will be ordered based on relevancy to the viewer.
+    """
+    orderBy: SponsorshipOrder
+  ): SponsorshipConnection!
+
+  """
+  Whether or not the viewer is able to sponsor this user/organization.
+  """
+  viewerCanSponsor: Boolean!
+
+  """
+  True if the viewer is sponsoring this user/organization.
+  """
+  viewerIsSponsoring: Boolean!
+}
+
+"""
+Entities that can be sponsored via GitHub Sponsors
+"""
+union SponsorableItem = Organization | User
+
+"""
+The connection type for SponsorableItem.
+"""
+type SponsorableItemConnection {
+  """
+  A list of edges.
+  """
+  edges: [SponsorableItemEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [SponsorableItem]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+An edge in a connection.
+"""
+type SponsorableItemEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: SponsorableItem
+}
+
+"""
+Ordering options for connections to get sponsorable entities for GitHub Sponsors.
+"""
+input SponsorableOrder {
+  """
+  The ordering direction.
+  """
+  direction: OrderDirection!
+
+  """
+  The field to order sponsorable entities by.
+  """
+  field: SponsorableOrderField!
+}
+
+"""
+Properties by which sponsorable connections can be ordered.
+"""
+enum SponsorableOrderField {
+  """
+  Order sponsorable entities by login (username).
+  """
+  LOGIN
+}
+
+"""
+A goal associated with a GitHub Sponsors listing, representing a target the sponsored maintainer would like to attain.
+"""
+type SponsorsGoal {
+  """
+  A description of the goal from the maintainer.
+  """
+  description: String
+
+  """
+  What the objective of this goal is.
+  """
+  kind: SponsorsGoalKind!
+
+  """
+  The percentage representing how complete this goal is, between 0-100.
+  """
+  percentComplete: Int!
+
+  """
+  What the goal amount is. Represents a dollar amount for monthly sponsorship
+  amount goals. Represents a count of unique sponsors for total sponsors count goals.
+  """
+  targetValue: Int!
+
+  """
+  A brief summary of the kind and target value of this goal.
+  """
+  title: String!
+}
+
+"""
+The different kinds of goals a GitHub Sponsors member can have.
+"""
+enum SponsorsGoalKind {
+  """
+  The goal is about getting a certain dollar amount from sponsorships each month.
+  """
+  MONTHLY_SPONSORSHIP_AMOUNT
+
+  """
+  The goal is about reaching a certain number of sponsors.
+  """
+  TOTAL_SPONSORS_COUNT
+}
+
+"""
+A GitHub Sponsors listing.
+"""
+type SponsorsListing implements Node {
+  """
+  The current goal the maintainer is trying to reach with GitHub Sponsors, if any.
+  """
+  activeGoal: SponsorsGoal
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+
+  """
+  The full description of the listing.
+  """
+  fullDescription: String!
+
+  """
+  The full description of the listing rendered to HTML.
+  """
+  fullDescriptionHTML: HTML!
+  id: ID!
+
+  """
+  The listing's full name.
+  """
+  name: String!
+
+  """
+  The short description of the listing.
+  """
+  shortDescription: String!
+
+  """
+  The short name of the listing.
+  """
+  slug: String!
+
+  """
+  The published tiers for this GitHub Sponsors listing.
+  """
+  tiers(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for Sponsors tiers returned from the connection.
+    """
+    orderBy: SponsorsTierOrder = {field: MONTHLY_PRICE_IN_CENTS, direction: ASC}
+  ): SponsorsTierConnection
+}
+
+"""
+A GitHub Sponsors tier associated with a GitHub Sponsors listing.
+"""
+type SponsorsTier implements Node {
+  """
+  SponsorsTier information only visible to users that can administer the associated Sponsors listing.
+  """
+  adminInfo: SponsorsTierAdminInfo
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+
+  """
+  The description of the tier.
+  """
+  description: String!
+
+  """
+  The tier description rendered to HTML
+  """
+  descriptionHTML: HTML!
+  id: ID!
+
+  """
+  How much this tier costs per month in cents.
+  """
+  monthlyPriceInCents: Int!
+
+  """
+  How much this tier costs per month in dollars.
+  """
+  monthlyPriceInDollars: Int!
+
+  """
+  The name of the tier.
+  """
+  name: String!
+
+  """
+  The sponsors listing that this tier belongs to.
+  """
+  sponsorsListing: SponsorsListing!
+
+  """
+  Identifies the date and time when the object was last updated.
+  """
+  updatedAt: DateTime!
+}
+
+"""
+SponsorsTier information only visible to users that can administer the associated Sponsors listing.
+"""
+type SponsorsTierAdminInfo {
+  """
+  The sponsorships associated with this tier.
+  """
+  sponsorships(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Whether or not to include private sponsorships in the result set
+    """
+    includePrivate: Boolean = false
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for sponsorships returned from this connection. If left
+    blank, the sponsorships will be ordered based on relevancy to the viewer.
+    """
+    orderBy: SponsorshipOrder
+  ): SponsorshipConnection!
+}
+
+"""
+The connection type for SponsorsTier.
+"""
+type SponsorsTierConnection {
+  """
+  A list of edges.
+  """
+  edges: [SponsorsTierEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [SponsorsTier]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+An edge in a connection.
+"""
+type SponsorsTierEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: SponsorsTier
+}
+
+"""
+Ordering options for Sponsors tiers connections.
+"""
+input SponsorsTierOrder {
+  """
+  The ordering direction.
+  """
+  direction: OrderDirection!
+
+  """
+  The field to order tiers by.
+  """
+  field: SponsorsTierOrderField!
+}
+
+"""
+Properties by which Sponsors tiers connections can be ordered.
+"""
+enum SponsorsTierOrderField {
+  """
+  Order tiers by creation time.
+  """
+  CREATED_AT
+
+  """
+  Order tiers by their monthly price in cents
+  """
+  MONTHLY_PRICE_IN_CENTS
+}
+
+"""
+A sponsorship relationship between a sponsor and a maintainer
+"""
+type Sponsorship implements Node {
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+  id: ID!
+
+  """
+  The entity that is being sponsored
+  """
+  maintainer: User! @deprecated(reason: "`Sponsorship.maintainer` will be removed. Use `Sponsorship.sponsorable` instead. Removal on 2020-04-01 UTC.")
+
+  """
+  The privacy level for this sponsorship.
+  """
+  privacyLevel: SponsorshipPrivacy!
+
+  """
+  The user that is sponsoring. Returns null if the sponsorship is private or if sponsor is not a user.
+  """
+  sponsor: User @deprecated(reason: "`Sponsorship.sponsor` will be removed. Use `Sponsorship.sponsorEntity` instead. Removal on 2020-10-01 UTC.")
+
+  """
+  The user or organization that is sponsoring, if you have permission to view them.
+  """
+  sponsorEntity: Sponsor
+
+  """
+  The entity that is being sponsored
+  """
+  sponsorable: Sponsorable!
+
+  """
+  The associated sponsorship tier
+  """
+  tier: SponsorsTier
+}
+
+"""
+The connection type for Sponsorship.
+"""
+type SponsorshipConnection {
+  """
+  A list of edges.
+  """
+  edges: [SponsorshipEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [Sponsorship]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+An edge in a connection.
+"""
+type SponsorshipEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: Sponsorship
+}
+
+"""
+Ordering options for sponsorship connections.
+"""
+input SponsorshipOrder {
+  """
+  The ordering direction.
+  """
+  direction: OrderDirection!
+
+  """
+  The field to order sponsorship by.
+  """
+  field: SponsorshipOrderField!
+}
+
+"""
+Properties by which sponsorship connections can be ordered.
+"""
+enum SponsorshipOrderField {
+  """
+  Order sponsorship by creation time.
+  """
+  CREATED_AT
+}
+
+"""
+The privacy of a sponsorship
+"""
+enum SponsorshipPrivacy {
+  """
+  Private
+  """
+  PRIVATE
+
+  """
+  Public
+  """
+  PUBLIC
+}
+
+"""
+Ways in which star connections can be ordered.
+"""
+input StarOrder {
+  """
+  The direction in which to order nodes.
+  """
+  direction: OrderDirection!
+
+  """
+  The field in which to order nodes by.
+  """
+  field: StarOrderField!
+}
+
+"""
+Properties by which star connections can be ordered.
+"""
+enum StarOrderField {
+  """
+  Allows ordering a list of stars by when they were created.
+  """
+  STARRED_AT
+}
+
+"""
+The connection type for User.
+"""
+type StargazerConnection {
+  """
+  A list of edges.
+  """
+  edges: [StargazerEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [User]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+Represents a user that's starred a repository.
+"""
+type StargazerEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+  node: User!
+
+  """
+  Identifies when the item was starred.
+  """
+  starredAt: DateTime!
+}
+
+"""
+Things that can be starred.
+"""
+interface Starrable {
+  id: ID!
+
+  """
+  Returns a count of how many stargazers there are on this object
+  """
+  stargazerCount: Int!
+
+  """
+  A list of users who have starred this starrable.
+  """
+  stargazers(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Order for connection
+    """
+    orderBy: StarOrder
+  ): StargazerConnection!
+
+  """
+  Returns a boolean indicating whether the viewing user has starred this starrable.
+  """
+  viewerHasStarred: Boolean!
+}
+
+"""
+The connection type for Repository.
+"""
+type StarredRepositoryConnection {
+  """
+  A list of edges.
+  """
+  edges: [StarredRepositoryEdge]
+
+  """
+  Is the list of stars for this user truncated? This is true for users that have many stars.
+  """
+  isOverLimit: Boolean!
+
+  """
+  A list of nodes.
+  """
+  nodes: [Repository]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+Represents a starred repository.
+"""
+type StarredRepositoryEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+  node: Repository!
+
+  """
+  Identifies when the item was starred.
+  """
+  starredAt: DateTime!
+}
+
+"""
+Represents a commit status.
+"""
+type Status implements Node {
+  """
+  A list of status contexts and check runs for this commit.
+  """
+  combinedContexts(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+  ): StatusCheckRollupContextConnection!
+
+  """
+  The commit this status is attached to.
+  """
+  commit: Commit
+
+  """
+  Looks up an individual status context by context name.
+  """
+  context(
+    """
+    The context name.
+    """
+    name: String!
+  ): StatusContext
+
+  """
+  The individual status contexts for this commit.
+  """
+  contexts: [StatusContext!]!
+  id: ID!
+
+  """
+  The combined commit status.
+  """
+  state: StatusState!
+}
+
+"""
+Represents the rollup for both the check runs and status for a commit.
+"""
+type StatusCheckRollup implements Node {
+  """
+  The commit the status and check runs are attached to.
+  """
+  commit: Commit
+
+  """
+  A list of status contexts and check runs for this commit.
+  """
+  contexts(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+  ): StatusCheckRollupContextConnection!
+  id: ID!
+
+  """
+  The combined status for the commit.
+  """
+  state: StatusState!
+}
+
+"""
+Types that can be inside a StatusCheckRollup context.
+"""
+union StatusCheckRollupContext = CheckRun | StatusContext
+
+"""
+The connection type for StatusCheckRollupContext.
+"""
+type StatusCheckRollupContextConnection {
+  """
+  A list of edges.
+  """
+  edges: [StatusCheckRollupContextEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [StatusCheckRollupContext]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+An edge in a connection.
+"""
+type StatusCheckRollupContextEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: StatusCheckRollupContext
+}
+
+"""
+Represents an individual commit status context
+"""
+type StatusContext implements Node {
+  """
+  The avatar of the OAuth application or the user that created the status
+  """
+  avatarUrl(
+    """
+    The size of the resulting square image.
+    """
+    size: Int = 40
+  ): URI
+
+  """
+  This commit this status context is attached to.
+  """
+  commit: Commit
+
+  """
+  The name of this status context.
+  """
+  context: String!
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+
+  """
+  The actor who created this status context.
+  """
+  creator: Actor
+
+  """
+  The description for this status context.
+  """
+  description: String
+  id: ID!
+
+  """
+  The state of this status context.
+  """
+  state: StatusState!
+
+  """
+  The URL for this status context.
+  """
+  targetUrl: URI
+}
+
+"""
+The possible commit status states.
+"""
+enum StatusState {
+  """
+  Status is errored.
+  """
+  ERROR
+
+  """
+  Status is expected.
+  """
+  EXPECTED
+
+  """
+  Status is failing.
+  """
+  FAILURE
+
+  """
+  Status is pending.
+  """
+  PENDING
+
+  """
+  Status is successful.
+  """
+  SUCCESS
+}
+
+"""
+Autogenerated input type of SubmitPullRequestReview
+"""
+input SubmitPullRequestReviewInput {
+  """
+  The text field to set on the Pull Request Review.
+  """
+  body: String
+
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The event to send to the Pull Request Review.
+  """
+  event: PullRequestReviewEvent!
+
+  """
+  The Pull Request ID to submit any pending reviews.
+  """
+  pullRequestId: ID
+
+  """
+  The Pull Request Review ID to submit.
+  """
+  pullRequestReviewId: ID
+}
+
+"""
+Autogenerated return type of SubmitPullRequestReview
+"""
+type SubmitPullRequestReviewPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The submitted pull request review.
+  """
+  pullRequestReview: PullRequestReview
+}
+
+"""
+A pointer to a repository at a specific revision embedded inside another repository.
+"""
+type Submodule {
+  """
+  The branch of the upstream submodule for tracking updates
+  """
+  branch: String
+
+  """
+  The git URL of the submodule repository
+  """
+  gitUrl: URI!
+
+  """
+  The name of the submodule in .gitmodules
+  """
+  name: String!
+
+  """
+  The path in the superproject that this submodule is located in
+  """
+  path: String!
+
+  """
+  The commit revision of the subproject repository being tracked by the submodule
+  """
+  subprojectCommitOid: GitObjectID
+}
+
+"""
+The connection type for Submodule.
+"""
+type SubmoduleConnection {
+  """
+  A list of edges.
+  """
+  edges: [SubmoduleEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [Submodule]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+An edge in a connection.
+"""
+type SubmoduleEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: Submodule
+}
+
+"""
+Entities that can be subscribed to for web and email notifications.
+"""
+interface Subscribable {
+  id: ID!
+
+  """
+  Check if the viewer is able to change their subscription status for the repository.
+  """
+  viewerCanSubscribe: Boolean!
+
+  """
+  Identifies if the viewer is watching, not watching, or ignoring the subscribable entity.
+  """
+  viewerSubscription: SubscriptionState
+}
+
+"""
+Represents a 'subscribed' event on a given `Subscribable`.
+"""
+type SubscribedEvent implements Node {
+  """
+  Identifies the actor who performed the event.
+  """
+  actor: Actor
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+  id: ID!
+
+  """
+  Object referenced by event.
+  """
+  subscribable: Subscribable!
+}
+
+"""
+The possible states of a subscription.
+"""
+enum SubscriptionState {
+  """
+  The User is never notified.
+  """
+  IGNORED
+
+  """
+  The User is notified of all conversations.
+  """
+  SUBSCRIBED
+
+  """
+  The User is only notified when participating or @mentioned.
+  """
+  UNSUBSCRIBED
+}
+
+"""
+A suggestion to review a pull request based on a user's commit history and review comments.
+"""
+type SuggestedReviewer {
+  """
+  Is this suggestion based on past commits?
+  """
+  isAuthor: Boolean!
+
+  """
+  Is this suggestion based on past review comments?
+  """
+  isCommenter: Boolean!
+
+  """
+  Identifies the user suggested to review the pull request.
+  """
+  reviewer: User!
+}
+
+"""
+Represents a Git tag.
+"""
+type Tag implements GitObject & Node {
+  """
+  An abbreviated version of the Git object ID
+  """
+  abbreviatedOid: String!
+
+  """
+  The HTTP path for this Git object
+  """
+  commitResourcePath: URI!
+
+  """
+  The HTTP URL for this Git object
+  """
+  commitUrl: URI!
+  id: ID!
+
+  """
+  The Git tag message.
+  """
+  message: String
+
+  """
+  The Git tag name.
+  """
+  name: String!
+
+  """
+  The Git object ID
+  """
+  oid: GitObjectID!
+
+  """
+  The Repository the Git object belongs to
+  """
+  repository: Repository!
+
+  """
+  Details about the tag author.
+  """
+  tagger: GitActor
+
+  """
+  The Git object the tag points to.
+  """
+  target: GitObject!
+}
+
+"""
+A team of users in an organization.
+"""
+type Team implements MemberStatusable & Node & Subscribable {
+  """
+  A list of teams that are ancestors of this team.
+  """
+  ancestors(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+  ): TeamConnection!
+
+  """
+  A URL pointing to the team's avatar.
+  """
+  avatarUrl(
+    """
+    The size in pixels of the resulting square image.
+    """
+    size: Int = 400
+  ): URI
+
+  """
+  List of child teams belonging to this team
+  """
+  childTeams(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Whether to list immediate child teams or all descendant child teams.
+    """
+    immediateOnly: Boolean = true
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Order for connection
+    """
+    orderBy: TeamOrder
+
+    """
+    User logins to filter by
+    """
+    userLogins: [String!]
+  ): TeamConnection!
+
+  """
+  The slug corresponding to the organization and team.
+  """
+  combinedSlug: String!
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+
+  """
+  Identifies the primary key from the database.
+  """
+  databaseId: Int
+
+  """
+  The description of the team.
+  """
+  description: String
+
+  """
+  Find a team discussion by its number.
+  """
+  discussion(
+    """
+    The sequence number of the discussion to find.
+    """
+    number: Int!
+  ): TeamDiscussion
+
+  """
+  A list of team discussions.
+  """
+  discussions(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    If provided, filters discussions according to whether or not they are pinned.
+    """
+    isPinned: Boolean
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Order for connection
+    """
+    orderBy: TeamDiscussionOrder
+  ): TeamDiscussionConnection!
+
+  """
+  The HTTP path for team discussions
+  """
+  discussionsResourcePath: URI!
+
+  """
+  The HTTP URL for team discussions
+  """
+  discussionsUrl: URI!
+
+  """
+  The HTTP path for editing this team
+  """
+  editTeamResourcePath: URI!
+
+  """
+  The HTTP URL for editing this team
+  """
+  editTeamUrl: URI!
+  id: ID!
+
+  """
+  A list of pending invitations for users to this team
+  """
+  invitations(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+  ): OrganizationInvitationConnection
+
+  """
+  Get the status messages members of this entity have set that are either public or visible only to the organization.
+  """
+  memberStatuses(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for user statuses returned from the connection.
+    """
+    orderBy: UserStatusOrder = {field: UPDATED_AT, direction: DESC}
+  ): UserStatusConnection!
+
+  """
+  A list of users who are members of this team.
+  """
+  members(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Filter by membership type
+    """
+    membership: TeamMembershipType = ALL
+
+    """
+    Order for the connection.
+    """
+    orderBy: TeamMemberOrder
+
+    """
+    The search string to look for.
+    """
+    query: String
+
+    """
+    Filter by team member role
+    """
+    role: TeamMemberRole
+  ): TeamMemberConnection!
+
+  """
+  The HTTP path for the team' members
+  """
+  membersResourcePath: URI!
+
+  """
+  The HTTP URL for the team' members
+  """
+  membersUrl: URI!
+
+  """
+  The name of the team.
+  """
+  name: String!
+
+  """
+  The HTTP path creating a new team
+  """
+  newTeamResourcePath: URI!
+
+  """
+  The HTTP URL creating a new team
+  """
+  newTeamUrl: URI!
+
+  """
+  The organization that owns this team.
+  """
+  organization: Organization!
+
+  """
+  The parent team of the team.
+  """
+  parentTeam: Team
+
+  """
+  The level of privacy the team has.
+  """
+  privacy: TeamPrivacy!
+
+  """
+  A list of repositories this team has access to.
+  """
+  repositories(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Order for the connection.
+    """
+    orderBy: TeamRepositoryOrder
+
+    """
+    The search string to look for.
+    """
+    query: String
+  ): TeamRepositoryConnection!
+
+  """
+  The HTTP path for this team's repositories
+  """
+  repositoriesResourcePath: URI!
+
+  """
+  The HTTP URL for this team's repositories
+  """
+  repositoriesUrl: URI!
+
+  """
+  The HTTP path for this team
+  """
+  resourcePath: URI!
+
+  """
+  The slug corresponding to the team.
+  """
+  slug: String!
+
+  """
+  The HTTP path for this team's teams
+  """
+  teamsResourcePath: URI!
+
+  """
+  The HTTP URL for this team's teams
+  """
+  teamsUrl: URI!
+
+  """
+  Identifies the date and time when the object was last updated.
+  """
+  updatedAt: DateTime!
+
+  """
+  The HTTP URL for this team
+  """
+  url: URI!
+
+  """
+  Team is adminable by the viewer.
+  """
+  viewerCanAdminister: Boolean!
+
+  """
+  Check if the viewer is able to change their subscription status for the repository.
+  """
+  viewerCanSubscribe: Boolean!
+
+  """
+  Identifies if the viewer is watching, not watching, or ignoring the subscribable entity.
+  """
+  viewerSubscription: SubscriptionState
+}
+
+"""
+Audit log entry for a team.add_member event.
+"""
+type TeamAddMemberAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & TeamAuditEntryData {
+  """
+  The action name
+  """
+  action: String!
+
+  """
+  The user who initiated the action
+  """
+  actor: AuditEntryActor
+
+  """
+  The IP address of the actor
+  """
+  actorIp: String
+
+  """
+  A readable representation of the actor's location
+  """
+  actorLocation: ActorLocation
+
+  """
+  The username of the user who initiated the action
+  """
+  actorLogin: String
+
+  """
+  The HTTP path for the actor.
+  """
+  actorResourcePath: URI
+
+  """
+  The HTTP URL for the actor.
+  """
+  actorUrl: URI
+
+  """
+  The time the action was initiated
+  """
+  createdAt: PreciseDateTime!
+  id: ID!
+
+  """
+  Whether the team was mapped to an LDAP Group.
+  """
+  isLdapMapped: Boolean
+
+  """
+  The corresponding operation type for the action
+  """
+  operationType: OperationType
+
+  """
+  The Organization associated with the Audit Entry.
+  """
+  organization: Organization
+
+  """
+  The name of the Organization.
+  """
+  organizationName: String
+
+  """
+  The HTTP path for the organization
+  """
+  organizationResourcePath: URI
+
+  """
+  The HTTP URL for the organization
+  """
+  organizationUrl: URI
+
+  """
+  The team associated with the action
+  """
+  team: Team
+
+  """
+  The name of the team
+  """
+  teamName: String
+
+  """
+  The HTTP path for this team
+  """
+  teamResourcePath: URI
+
+  """
+  The HTTP URL for this team
+  """
+  teamUrl: URI
+
+  """
+  The user affected by the action
+  """
+  user: User
+
+  """
+  For actions involving two users, the actor is the initiator and the user is the affected user.
+  """
+  userLogin: String
+
+  """
+  The HTTP path for the user.
+  """
+  userResourcePath: URI
+
+  """
+  The HTTP URL for the user.
+  """
+  userUrl: URI
+}
+
+"""
+Audit log entry for a team.add_repository event.
+"""
+type TeamAddRepositoryAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData & TeamAuditEntryData {
+  """
+  The action name
+  """
+  action: String!
+
+  """
+  The user who initiated the action
+  """
+  actor: AuditEntryActor
+
+  """
+  The IP address of the actor
+  """
+  actorIp: String
+
+  """
+  A readable representation of the actor's location
+  """
+  actorLocation: ActorLocation
+
+  """
+  The username of the user who initiated the action
+  """
+  actorLogin: String
+
+  """
+  The HTTP path for the actor.
+  """
+  actorResourcePath: URI
+
+  """
+  The HTTP URL for the actor.
+  """
+  actorUrl: URI
+
+  """
+  The time the action was initiated
+  """
+  createdAt: PreciseDateTime!
+  id: ID!
+
+  """
+  Whether the team was mapped to an LDAP Group.
+  """
+  isLdapMapped: Boolean
+
+  """
+  The corresponding operation type for the action
+  """
+  operationType: OperationType
+
+  """
+  The Organization associated with the Audit Entry.
+  """
+  organization: Organization
+
+  """
+  The name of the Organization.
+  """
+  organizationName: String
+
+  """
+  The HTTP path for the organization
+  """
+  organizationResourcePath: URI
+
+  """
+  The HTTP URL for the organization
+  """
+  organizationUrl: URI
+
+  """
+  The repository associated with the action
+  """
+  repository: Repository
+
+  """
+  The name of the repository
+  """
+  repositoryName: String
+
+  """
+  The HTTP path for the repository
+  """
+  repositoryResourcePath: URI
+
+  """
+  The HTTP URL for the repository
+  """
+  repositoryUrl: URI
+
+  """
+  The team associated with the action
+  """
+  team: Team
+
+  """
+  The name of the team
+  """
+  teamName: String
+
+  """
+  The HTTP path for this team
+  """
+  teamResourcePath: URI
+
+  """
+  The HTTP URL for this team
+  """
+  teamUrl: URI
+
+  """
+  The user affected by the action
+  """
+  user: User
+
+  """
+  For actions involving two users, the actor is the initiator and the user is the affected user.
+  """
+  userLogin: String
+
+  """
+  The HTTP path for the user.
+  """
+  userResourcePath: URI
+
+  """
+  The HTTP URL for the user.
+  """
+  userUrl: URI
+}
+
+"""
+Metadata for an audit entry with action team.*
+"""
+interface TeamAuditEntryData {
+  """
+  The team associated with the action
+  """
+  team: Team
+
+  """
+  The name of the team
+  """
+  teamName: String
+
+  """
+  The HTTP path for this team
+  """
+  teamResourcePath: URI
+
+  """
+  The HTTP URL for this team
+  """
+  teamUrl: URI
+}
+
+"""
+Audit log entry for a team.change_parent_team event.
+"""
+type TeamChangeParentTeamAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & TeamAuditEntryData {
+  """
+  The action name
+  """
+  action: String!
+
+  """
+  The user who initiated the action
+  """
+  actor: AuditEntryActor
+
+  """
+  The IP address of the actor
+  """
+  actorIp: String
+
+  """
+  A readable representation of the actor's location
+  """
+  actorLocation: ActorLocation
+
+  """
+  The username of the user who initiated the action
+  """
+  actorLogin: String
+
+  """
+  The HTTP path for the actor.
+  """
+  actorResourcePath: URI
+
+  """
+  The HTTP URL for the actor.
+  """
+  actorUrl: URI
+
+  """
+  The time the action was initiated
+  """
+  createdAt: PreciseDateTime!
+  id: ID!
+
+  """
+  Whether the team was mapped to an LDAP Group.
+  """
+  isLdapMapped: Boolean
+
+  """
+  The corresponding operation type for the action
+  """
+  operationType: OperationType
+
+  """
+  The Organization associated with the Audit Entry.
+  """
+  organization: Organization
+
+  """
+  The name of the Organization.
+  """
+  organizationName: String
+
+  """
+  The HTTP path for the organization
+  """
+  organizationResourcePath: URI
+
+  """
+  The HTTP URL for the organization
+  """
+  organizationUrl: URI
+
+  """
+  The new parent team.
+  """
+  parentTeam: Team
+
+  """
+  The name of the new parent team
+  """
+  parentTeamName: String
+
+  """
+  The name of the former parent team
+  """
+  parentTeamNameWas: String
+
+  """
+  The HTTP path for the parent team
+  """
+  parentTeamResourcePath: URI
+
+  """
+  The HTTP URL for the parent team
+  """
+  parentTeamUrl: URI
+
+  """
+  The former parent team.
+  """
+  parentTeamWas: Team
+
+  """
+  The HTTP path for the previous parent team
+  """
+  parentTeamWasResourcePath: URI
+
+  """
+  The HTTP URL for the previous parent team
+  """
+  parentTeamWasUrl: URI
+
+  """
+  The team associated with the action
+  """
+  team: Team
+
+  """
+  The name of the team
+  """
+  teamName: String
+
+  """
+  The HTTP path for this team
+  """
+  teamResourcePath: URI
+
+  """
+  The HTTP URL for this team
+  """
+  teamUrl: URI
+
+  """
+  The user affected by the action
+  """
+  user: User
+
+  """
+  For actions involving two users, the actor is the initiator and the user is the affected user.
+  """
+  userLogin: String
+
+  """
+  The HTTP path for the user.
+  """
+  userResourcePath: URI
+
+  """
+  The HTTP URL for the user.
+  """
+  userUrl: URI
+}
+
+"""
+The connection type for Team.
+"""
+type TeamConnection {
+  """
+  A list of edges.
+  """
+  edges: [TeamEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [Team]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+A team discussion.
+"""
+type TeamDiscussion implements Comment & Deletable & Node & Reactable & Subscribable & UniformResourceLocatable & Updatable & UpdatableComment {
+  """
+  The actor who authored the comment.
+  """
+  author: Actor
+
+  """
+  Author's association with the discussion's team.
+  """
+  authorAssociation: CommentAuthorAssociation!
+
+  """
+  The body as Markdown.
+  """
+  body: String!
+
+  """
+  The body rendered to HTML.
+  """
+  bodyHTML: HTML!
+
+  """
+  The body rendered to text.
+  """
+  bodyText: String!
+
+  """
+  Identifies the discussion body hash.
+  """
+  bodyVersion: String!
+
+  """
+  A list of comments on this discussion.
+  """
+  comments(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    When provided, filters the connection such that results begin with the comment with this number.
+    """
+    fromComment: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Order for connection
+    """
+    orderBy: TeamDiscussionCommentOrder
+  ): TeamDiscussionCommentConnection!
+
+  """
+  The HTTP path for discussion comments
+  """
+  commentsResourcePath: URI!
+
+  """
+  The HTTP URL for discussion comments
+  """
+  commentsUrl: URI!
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+
+  """
+  Check if this comment was created via an email reply.
+  """
+  createdViaEmail: Boolean!
+
+  """
+  Identifies the primary key from the database.
+  """
+  databaseId: Int
+
+  """
+  The actor who edited the comment.
+  """
+  editor: Actor
+  id: ID!
+
+  """
+  Check if this comment was edited and includes an edit with the creation data
+  """
+  includesCreatedEdit: Boolean!
+
+  """
+  Whether or not the discussion is pinned.
+  """
+  isPinned: Boolean!
+
+  """
+  Whether or not the discussion is only visible to team members and org admins.
+  """
+  isPrivate: Boolean!
+
+  """
+  The moment the editor made the last edit
+  """
+  lastEditedAt: DateTime
+
+  """
+  Identifies the discussion within its team.
+  """
+  number: Int!
+
+  """
+  Identifies when the comment was published at.
+  """
+  publishedAt: DateTime
+
+  """
+  A list of reactions grouped by content left on the subject.
+  """
+  reactionGroups: [ReactionGroup!]
+
+  """
+  A list of Reactions left on the Issue.
+  """
+  reactions(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Allows filtering Reactions by emoji.
+    """
+    content: ReactionContent
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Allows specifying the order in which reactions are returned.
+    """
+    orderBy: ReactionOrder
+  ): ReactionConnection!
+
+  """
+  The HTTP path for this discussion
+  """
+  resourcePath: URI!
+
+  """
+  The team that defines the context of this discussion.
+  """
+  team: Team!
+
+  """
+  The title of the discussion
+  """
+  title: String!
+
+  """
+  Identifies the date and time when the object was last updated.
+  """
+  updatedAt: DateTime!
+
+  """
+  The HTTP URL for this discussion
+  """
+  url: URI!
+
+  """
+  A list of edits to this content.
+  """
+  userContentEdits(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+  ): UserContentEditConnection
+
+  """
+  Check if the current viewer can delete this object.
+  """
+  viewerCanDelete: Boolean!
+
+  """
+  Whether or not the current viewer can pin this discussion.
+  """
+  viewerCanPin: Boolean!
+
+  """
+  Can user react to this subject
+  """
+  viewerCanReact: Boolean!
+
+  """
+  Check if the viewer is able to change their subscription status for the repository.
+  """
+  viewerCanSubscribe: Boolean!
+
+  """
+  Check if the current viewer can update this object.
+  """
+  viewerCanUpdate: Boolean!
+
+  """
+  Reasons why the current viewer can not update this comment.
+  """
+  viewerCannotUpdateReasons: [CommentCannotUpdateReason!]!
+
+  """
+  Did the viewer author this comment.
+  """
+  viewerDidAuthor: Boolean!
+
+  """
+  Identifies if the viewer is watching, not watching, or ignoring the subscribable entity.
+  """
+  viewerSubscription: SubscriptionState
+}
+
+"""
+A comment on a team discussion.
+"""
+type TeamDiscussionComment implements Comment & Deletable & Node & Reactable & UniformResourceLocatable & Updatable & UpdatableComment {
+  """
+  The actor who authored the comment.
+  """
+  author: Actor
+
+  """
+  Author's association with the comment's team.
+  """
+  authorAssociation: CommentAuthorAssociation!
+
+  """
+  The body as Markdown.
+  """
+  body: String!
+
+  """
+  The body rendered to HTML.
+  """
+  bodyHTML: HTML!
+
+  """
+  The body rendered to text.
+  """
+  bodyText: String!
+
+  """
+  The current version of the body content.
+  """
+  bodyVersion: String!
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+
+  """
+  Check if this comment was created via an email reply.
+  """
+  createdViaEmail: Boolean!
+
+  """
+  Identifies the primary key from the database.
+  """
+  databaseId: Int
+
+  """
+  The discussion this comment is about.
+  """
+  discussion: TeamDiscussion!
+
+  """
+  The actor who edited the comment.
+  """
+  editor: Actor
+  id: ID!
+
+  """
+  Check if this comment was edited and includes an edit with the creation data
+  """
+  includesCreatedEdit: Boolean!
+
+  """
+  The moment the editor made the last edit
+  """
+  lastEditedAt: DateTime
+
+  """
+  Identifies the comment number.
+  """
+  number: Int!
+
+  """
+  Identifies when the comment was published at.
+  """
+  publishedAt: DateTime
+
+  """
+  A list of reactions grouped by content left on the subject.
+  """
+  reactionGroups: [ReactionGroup!]
+
+  """
+  A list of Reactions left on the Issue.
+  """
+  reactions(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Allows filtering Reactions by emoji.
+    """
+    content: ReactionContent
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Allows specifying the order in which reactions are returned.
+    """
+    orderBy: ReactionOrder
+  ): ReactionConnection!
+
+  """
+  The HTTP path for this comment
+  """
+  resourcePath: URI!
+
+  """
+  Identifies the date and time when the object was last updated.
+  """
+  updatedAt: DateTime!
+
+  """
+  The HTTP URL for this comment
+  """
+  url: URI!
+
+  """
+  A list of edits to this content.
+  """
+  userContentEdits(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+  ): UserContentEditConnection
+
+  """
+  Check if the current viewer can delete this object.
+  """
+  viewerCanDelete: Boolean!
+
+  """
+  Can user react to this subject
+  """
+  viewerCanReact: Boolean!
+
+  """
+  Check if the current viewer can update this object.
+  """
+  viewerCanUpdate: Boolean!
+
+  """
+  Reasons why the current viewer can not update this comment.
+  """
+  viewerCannotUpdateReasons: [CommentCannotUpdateReason!]!
+
+  """
+  Did the viewer author this comment.
+  """
+  viewerDidAuthor: Boolean!
+}
+
+"""
+The connection type for TeamDiscussionComment.
+"""
+type TeamDiscussionCommentConnection {
+  """
+  A list of edges.
+  """
+  edges: [TeamDiscussionCommentEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [TeamDiscussionComment]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+An edge in a connection.
+"""
+type TeamDiscussionCommentEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: TeamDiscussionComment
+}
+
+"""
+Ways in which team discussion comment connections can be ordered.
+"""
+input TeamDiscussionCommentOrder {
+  """
+  The direction in which to order nodes.
+  """
+  direction: OrderDirection!
+
+  """
+  The field by which to order nodes.
+  """
+  field: TeamDiscussionCommentOrderField!
+}
+
+"""
+Properties by which team discussion comment connections can be ordered.
+"""
+enum TeamDiscussionCommentOrderField {
+  """
+  Allows sequential ordering of team discussion comments (which is equivalent to chronological ordering).
+  """
+  NUMBER
+}
+
+"""
+The connection type for TeamDiscussion.
+"""
+type TeamDiscussionConnection {
+  """
+  A list of edges.
+  """
+  edges: [TeamDiscussionEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [TeamDiscussion]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+An edge in a connection.
+"""
+type TeamDiscussionEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: TeamDiscussion
+}
+
+"""
+Ways in which team discussion connections can be ordered.
+"""
+input TeamDiscussionOrder {
+  """
+  The direction in which to order nodes.
+  """
+  direction: OrderDirection!
+
+  """
+  The field by which to order nodes.
+  """
+  field: TeamDiscussionOrderField!
+}
+
+"""
+Properties by which team discussion connections can be ordered.
+"""
+enum TeamDiscussionOrderField {
+  """
+  Allows chronological ordering of team discussions.
+  """
+  CREATED_AT
+}
+
+"""
+An edge in a connection.
+"""
+type TeamEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: Team
+}
+
+"""
+The connection type for User.
+"""
+type TeamMemberConnection {
+  """
+  A list of edges.
+  """
+  edges: [TeamMemberEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [User]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+Represents a user who is a member of a team.
+"""
+type TeamMemberEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The HTTP path to the organization's member access page.
+  """
+  memberAccessResourcePath: URI!
+
+  """
+  The HTTP URL to the organization's member access page.
+  """
+  memberAccessUrl: URI!
+  node: User!
+
+  """
+  The role the member has on the team.
+  """
+  role: TeamMemberRole!
+}
+
+"""
+Ordering options for team member connections
+"""
+input TeamMemberOrder {
+  """
+  The ordering direction.
+  """
+  direction: OrderDirection!
+
+  """
+  The field to order team members by.
+  """
+  field: TeamMemberOrderField!
+}
+
+"""
+Properties by which team member connections can be ordered.
+"""
+enum TeamMemberOrderField {
+  """
+  Order team members by creation time
+  """
+  CREATED_AT
+
+  """
+  Order team members by login
+  """
+  LOGIN
+}
+
+"""
+The possible team member roles; either 'maintainer' or 'member'.
+"""
+enum TeamMemberRole {
+  """
+  A team maintainer has permission to add and remove team members.
+  """
+  MAINTAINER
+
+  """
+  A team member has no administrative permissions on the team.
+  """
+  MEMBER
+}
+
+"""
+Defines which types of team members are included in the returned list. Can be one of IMMEDIATE, CHILD_TEAM or ALL.
+"""
+enum TeamMembershipType {
+  """
+  Includes immediate and child team members for the team.
+  """
+  ALL
+
+  """
+  Includes only child team members for the team.
+  """
+  CHILD_TEAM
+
+  """
+  Includes only immediate members of the team.
+  """
+  IMMEDIATE
+}
+
+"""
+Ways in which team connections can be ordered.
+"""
+input TeamOrder {
+  """
+  The direction in which to order nodes.
+  """
+  direction: OrderDirection!
+
+  """
+  The field in which to order nodes by.
+  """
+  field: TeamOrderField!
+}
+
+"""
+Properties by which team connections can be ordered.
+"""
+enum TeamOrderField {
+  """
+  Allows ordering a list of teams by name.
+  """
+  NAME
+}
+
+"""
+The possible team privacy values.
+"""
+enum TeamPrivacy {
+  """
+  A secret team can only be seen by its members.
+  """
+  SECRET
+
+  """
+  A visible team can be seen and @mentioned by every member of the organization.
+  """
+  VISIBLE
+}
+
+"""
+Audit log entry for a team.remove_member event.
+"""
+type TeamRemoveMemberAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & TeamAuditEntryData {
+  """
+  The action name
+  """
+  action: String!
+
+  """
+  The user who initiated the action
+  """
+  actor: AuditEntryActor
+
+  """
+  The IP address of the actor
+  """
+  actorIp: String
+
+  """
+  A readable representation of the actor's location
+  """
+  actorLocation: ActorLocation
+
+  """
+  The username of the user who initiated the action
+  """
+  actorLogin: String
+
+  """
+  The HTTP path for the actor.
+  """
+  actorResourcePath: URI
+
+  """
+  The HTTP URL for the actor.
+  """
+  actorUrl: URI
+
+  """
+  The time the action was initiated
+  """
+  createdAt: PreciseDateTime!
+  id: ID!
+
+  """
+  Whether the team was mapped to an LDAP Group.
+  """
+  isLdapMapped: Boolean
+
+  """
+  The corresponding operation type for the action
+  """
+  operationType: OperationType
+
+  """
+  The Organization associated with the Audit Entry.
+  """
+  organization: Organization
+
+  """
+  The name of the Organization.
+  """
+  organizationName: String
+
+  """
+  The HTTP path for the organization
+  """
+  organizationResourcePath: URI
+
+  """
+  The HTTP URL for the organization
+  """
+  organizationUrl: URI
+
+  """
+  The team associated with the action
+  """
+  team: Team
+
+  """
+  The name of the team
+  """
+  teamName: String
+
+  """
+  The HTTP path for this team
+  """
+  teamResourcePath: URI
+
+  """
+  The HTTP URL for this team
+  """
+  teamUrl: URI
+
+  """
+  The user affected by the action
+  """
+  user: User
+
+  """
+  For actions involving two users, the actor is the initiator and the user is the affected user.
+  """
+  userLogin: String
+
+  """
+  The HTTP path for the user.
+  """
+  userResourcePath: URI
+
+  """
+  The HTTP URL for the user.
+  """
+  userUrl: URI
+}
+
+"""
+Audit log entry for a team.remove_repository event.
+"""
+type TeamRemoveRepositoryAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData & TeamAuditEntryData {
+  """
+  The action name
+  """
+  action: String!
+
+  """
+  The user who initiated the action
+  """
+  actor: AuditEntryActor
+
+  """
+  The IP address of the actor
+  """
+  actorIp: String
+
+  """
+  A readable representation of the actor's location
+  """
+  actorLocation: ActorLocation
+
+  """
+  The username of the user who initiated the action
+  """
+  actorLogin: String
+
+  """
+  The HTTP path for the actor.
+  """
+  actorResourcePath: URI
+
+  """
+  The HTTP URL for the actor.
+  """
+  actorUrl: URI
+
+  """
+  The time the action was initiated
+  """
+  createdAt: PreciseDateTime!
+  id: ID!
+
+  """
+  Whether the team was mapped to an LDAP Group.
+  """
+  isLdapMapped: Boolean
+
+  """
+  The corresponding operation type for the action
+  """
+  operationType: OperationType
+
+  """
+  The Organization associated with the Audit Entry.
+  """
+  organization: Organization
+
+  """
+  The name of the Organization.
+  """
+  organizationName: String
+
+  """
+  The HTTP path for the organization
+  """
+  organizationResourcePath: URI
+
+  """
+  The HTTP URL for the organization
+  """
+  organizationUrl: URI
+
+  """
+  The repository associated with the action
+  """
+  repository: Repository
+
+  """
+  The name of the repository
+  """
+  repositoryName: String
+
+  """
+  The HTTP path for the repository
+  """
+  repositoryResourcePath: URI
+
+  """
+  The HTTP URL for the repository
+  """
+  repositoryUrl: URI
+
+  """
+  The team associated with the action
+  """
+  team: Team
+
+  """
+  The name of the team
+  """
+  teamName: String
+
+  """
+  The HTTP path for this team
+  """
+  teamResourcePath: URI
+
+  """
+  The HTTP URL for this team
+  """
+  teamUrl: URI
+
+  """
+  The user affected by the action
+  """
+  user: User
+
+  """
+  For actions involving two users, the actor is the initiator and the user is the affected user.
+  """
+  userLogin: String
+
+  """
+  The HTTP path for the user.
+  """
+  userResourcePath: URI
+
+  """
+  The HTTP URL for the user.
+  """
+  userUrl: URI
+}
+
+"""
+The connection type for Repository.
+"""
+type TeamRepositoryConnection {
+  """
+  A list of edges.
+  """
+  edges: [TeamRepositoryEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [Repository]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+Represents a team repository.
+"""
+type TeamRepositoryEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+  node: Repository!
+
+  """
+  The permission level the team has on the repository
+  """
+  permission: RepositoryPermission!
+}
+
+"""
+Ordering options for team repository connections
+"""
+input TeamRepositoryOrder {
+  """
+  The ordering direction.
+  """
+  direction: OrderDirection!
+
+  """
+  The field to order repositories by.
+  """
+  field: TeamRepositoryOrderField!
+}
+
+"""
+Properties by which team repository connections can be ordered.
+"""
+enum TeamRepositoryOrderField {
+  """
+  Order repositories by creation time
+  """
+  CREATED_AT
+
+  """
+  Order repositories by name
+  """
+  NAME
+
+  """
+  Order repositories by permission
+  """
+  PERMISSION
+
+  """
+  Order repositories by push time
+  """
+  PUSHED_AT
+
+  """
+  Order repositories by number of stargazers
+  """
+  STARGAZERS
+
+  """
+  Order repositories by update time
+  """
+  UPDATED_AT
+}
+
+"""
+The role of a user on a team.
+"""
+enum TeamRole {
+  """
+  User has admin rights on the team.
+  """
+  ADMIN
+
+  """
+  User is a member of the team.
+  """
+  MEMBER
+}
+
+"""
+A text match within a search result.
+"""
+type TextMatch {
+  """
+  The specific text fragment within the property matched on.
+  """
+  fragment: String!
+
+  """
+  Highlights within the matched fragment.
+  """
+  highlights: [TextMatchHighlight!]!
+
+  """
+  The property matched on.
+  """
+  property: String!
+}
+
+"""
+Represents a single highlight in a search result match.
+"""
+type TextMatchHighlight {
+  """
+  The indice in the fragment where the matched text begins.
+  """
+  beginIndice: Int!
+
+  """
+  The indice in the fragment where the matched text ends.
+  """
+  endIndice: Int!
+
+  """
+  The text matched.
+  """
+  text: String!
+}
+
+"""
+A topic aggregates entities that are related to a subject.
+"""
+type Topic implements Node & Starrable {
+  id: ID!
+
+  """
+  The topic's name.
+  """
+  name: String!
+
+  """
+  A list of related topics, including aliases of this topic, sorted with the most relevant
+  first. Returns up to 10 Topics.
+  """
+  relatedTopics(
+    """
+    How many topics to return.
+    """
+    first: Int = 3
+  ): [Topic!]!
+
+  """
+  Returns a count of how many stargazers there are on this object
+  """
+  stargazerCount: Int!
+
+  """
+  A list of users who have starred this starrable.
+  """
+  stargazers(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Order for connection
+    """
+    orderBy: StarOrder
+  ): StargazerConnection!
+
+  """
+  Returns a boolean indicating whether the viewing user has starred this starrable.
+  """
+  viewerHasStarred: Boolean!
+}
+
+"""
+Metadata for an audit entry with a topic.
+"""
+interface TopicAuditEntryData {
+  """
+  The name of the topic added to the repository
+  """
+  topic: Topic
+
+  """
+  The name of the topic added to the repository
+  """
+  topicName: String
+}
+
+"""
+Reason that the suggested topic is declined.
+"""
+enum TopicSuggestionDeclineReason {
+  """
+  The suggested topic is not relevant to the repository.
+  """
+  NOT_RELEVANT
+
+  """
+  The viewer does not like the suggested topic.
+  """
+  PERSONAL_PREFERENCE
+
+  """
+  The suggested topic is too general for the repository.
+  """
+  TOO_GENERAL
+
+  """
+  The suggested topic is too specific for the repository (e.g. #ruby-on-rails-version-4-2-1).
+  """
+  TOO_SPECIFIC
+}
+
+"""
+Autogenerated input type of TransferIssue
+"""
+input TransferIssueInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The Node ID of the issue to be transferred
+  """
+  issueId: ID!
+
+  """
+  The Node ID of the repository the issue should be transferred to
+  """
+  repositoryId: ID!
+}
+
+"""
+Autogenerated return type of TransferIssue
+"""
+type TransferIssuePayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The issue that was transferred
+  """
+  issue: Issue
+}
+
+"""
+Represents a 'transferred' event on a given issue or pull request.
+"""
+type TransferredEvent implements Node {
+  """
+  Identifies the actor who performed the event.
+  """
+  actor: Actor
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+
+  """
+  The repository this came from
+  """
+  fromRepository: Repository
+  id: ID!
+
+  """
+  Identifies the issue associated with the event.
+  """
+  issue: Issue!
+}
+
+"""
+Represents a Git tree.
+"""
+type Tree implements GitObject & Node {
+  """
+  An abbreviated version of the Git object ID
+  """
+  abbreviatedOid: String!
+
+  """
+  The HTTP path for this Git object
+  """
+  commitResourcePath: URI!
+
+  """
+  The HTTP URL for this Git object
+  """
+  commitUrl: URI!
+
+  """
+  A list of tree entries.
+  """
+  entries: [TreeEntry!]
+  id: ID!
+
+  """
+  The Git object ID
+  """
+  oid: GitObjectID!
+
+  """
+  The Repository the Git object belongs to
+  """
+  repository: Repository!
+}
+
+"""
+Represents a Git tree entry.
+"""
+type TreeEntry {
+  """
+  The extension of the file
+  """
+  extension: String
+
+  """
+  Whether or not this tree entry is generated
+  """
+  isGenerated: Boolean!
+
+  """
+  Entry file mode.
+  """
+  mode: Int!
+
+  """
+  Entry file name.
+  """
+  name: String!
+
+  """
+  Entry file object.
+  """
+  object: GitObject
+
+  """
+  Entry file Git object ID.
+  """
+  oid: GitObjectID!
+
+  """
+  The full path of the file.
+  """
+  path: String
+
+  """
+  The Repository the tree entry belongs to
+  """
+  repository: Repository!
+
+  """
+  If the TreeEntry is for a directory occupied by a submodule project, this returns the corresponding submodule
+  """
+  submodule: Submodule
+
+  """
+  Entry file type.
+  """
+  type: String!
+}
+
+"""
+An RFC 3986, RFC 3987, and RFC 6570 (level 4) compliant URI string.
+"""
+scalar URI
+
+"""
+Autogenerated input type of UnarchiveRepository
+"""
+input UnarchiveRepositoryInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The ID of the repository to unarchive.
+  """
+  repositoryId: ID!
+}
+
+"""
+Autogenerated return type of UnarchiveRepository
+"""
+type UnarchiveRepositoryPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The repository that was unarchived.
+  """
+  repository: Repository
+}
+
+"""
+Represents an 'unassigned' event on any assignable object.
+"""
+type UnassignedEvent implements Node {
+  """
+  Identifies the actor who performed the event.
+  """
+  actor: Actor
+
+  """
+  Identifies the assignable associated with the event.
+  """
+  assignable: Assignable!
+
+  """
+  Identifies the user or mannequin that was unassigned.
+  """
+  assignee: Assignee
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+  id: ID!
+
+  """
+  Identifies the subject (user) who was unassigned.
+  """
+  user: User @deprecated(reason: "Assignees can now be mannequins. Use the `assignee` field instead. Removal on 2020-01-01 UTC.")
+}
+
+"""
+Autogenerated input type of UnfollowUser
+"""
+input UnfollowUserInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  ID of the user to unfollow.
+  """
+  userId: ID!
+}
+
+"""
+Autogenerated return type of UnfollowUser
+"""
+type UnfollowUserPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The user that was unfollowed.
+  """
+  user: User
+}
+
+"""
+Represents a type that can be retrieved by a URL.
+"""
+interface UniformResourceLocatable {
+  """
+  The HTML path to this resource.
+  """
+  resourcePath: URI!
+
+  """
+  The URL to this resource.
+  """
+  url: URI!
+}
+
+"""
+Represents an unknown signature on a Commit or Tag.
+"""
+type UnknownSignature implements GitSignature {
+  """
+  Email used to sign this object.
+  """
+  email: String!
+
+  """
+  True if the signature is valid and verified by GitHub.
+  """
+  isValid: Boolean!
+
+  """
+  Payload for GPG signing object. Raw ODB object without the signature header.
+  """
+  payload: String!
+
+  """
+  ASCII-armored signature header from object.
+  """
+  signature: String!
+
+  """
+  GitHub user corresponding to the email signing this commit.
+  """
+  signer: User
+
+  """
+  The state of this signature. `VALID` if signature is valid and verified by
+  GitHub, otherwise represents reason why signature is considered invalid.
+  """
+  state: GitSignatureState!
+
+  """
+  True if the signature was made with GitHub's signing key.
+  """
+  wasSignedByGitHub: Boolean!
+}
+
+"""
+Represents an 'unlabeled' event on a given issue or pull request.
+"""
+type UnlabeledEvent implements Node {
+  """
+  Identifies the actor who performed the event.
+  """
+  actor: Actor
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+  id: ID!
+
+  """
+  Identifies the label associated with the 'unlabeled' event.
+  """
+  label: Label!
+
+  """
+  Identifies the `Labelable` associated with the event.
+  """
+  labelable: Labelable!
+}
+
+"""
+Autogenerated input type of UnlinkRepositoryFromProject
+"""
+input UnlinkRepositoryFromProjectInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The ID of the Project linked to the Repository.
+  """
+  projectId: ID!
+
+  """
+  The ID of the Repository linked to the Project.
+  """
+  repositoryId: ID!
+}
+
+"""
+Autogenerated return type of UnlinkRepositoryFromProject
+"""
+type UnlinkRepositoryFromProjectPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The linked Project.
+  """
+  project: Project
+
+  """
+  The linked Repository.
+  """
+  repository: Repository
+}
+
+"""
+Autogenerated input type of UnlockLockable
+"""
+input UnlockLockableInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  ID of the item to be unlocked.
+  """
+  lockableId: ID!
+}
+
+"""
+Autogenerated return type of UnlockLockable
+"""
+type UnlockLockablePayload {
+  """
+  Identifies the actor who performed the event.
+  """
+  actor: Actor
+
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The item that was unlocked.
+  """
+  unlockedRecord: Lockable
+}
+
+"""
+Represents an 'unlocked' event on a given issue or pull request.
+"""
+type UnlockedEvent implements Node {
+  """
+  Identifies the actor who performed the event.
+  """
+  actor: Actor
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+  id: ID!
+
+  """
+  Object that was unlocked.
+  """
+  lockable: Lockable!
+}
+
+"""
+Autogenerated input type of UnmarkFileAsViewed
+"""
+input UnmarkFileAsViewedInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The path of the file to mark as unviewed
+  """
+  path: String!
+
+  """
+  The Node ID of the pull request.
+  """
+  pullRequestId: ID!
+}
+
+"""
+Autogenerated return type of UnmarkFileAsViewed
+"""
+type UnmarkFileAsViewedPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The updated pull request.
+  """
+  pullRequest: PullRequest
+}
+
+"""
+Autogenerated input type of UnmarkIssueAsDuplicate
+"""
+input UnmarkIssueAsDuplicateInput {
+  """
+  ID of the issue or pull request currently considered canonical/authoritative/original.
+  """
+  canonicalId: ID!
+
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  ID of the issue or pull request currently marked as a duplicate.
+  """
+  duplicateId: ID!
+}
+
+"""
+Autogenerated return type of UnmarkIssueAsDuplicate
+"""
+type UnmarkIssueAsDuplicatePayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The issue or pull request that was marked as a duplicate.
+  """
+  duplicate: IssueOrPullRequest
+}
+
+"""
+Represents an 'unmarked_as_duplicate' event on a given issue or pull request.
+"""
+type UnmarkedAsDuplicateEvent implements Node {
+  """
+  Identifies the actor who performed the event.
+  """
+  actor: Actor
+
+  """
+  The authoritative issue or pull request which has been duplicated by another.
+  """
+  canonical: IssueOrPullRequest
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+
+  """
+  The issue or pull request which has been marked as a duplicate of another.
+  """
+  duplicate: IssueOrPullRequest
+  id: ID!
+
+  """
+  Canonical and duplicate belong to different repositories.
+  """
+  isCrossRepository: Boolean!
+}
+
+"""
+Autogenerated input type of UnminimizeComment
+"""
+input UnminimizeCommentInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The Node ID of the subject to modify.
+  """
+  subjectId: ID!
+}
+
+"""
+Autogenerated return type of UnminimizeComment
+"""
+type UnminimizeCommentPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The comment that was unminimized.
+  """
+  unminimizedComment: Minimizable
+}
+
+"""
+Represents an 'unpinned' event on a given issue or pull request.
+"""
+type UnpinnedEvent implements Node {
+  """
+  Identifies the actor who performed the event.
+  """
+  actor: Actor
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+  id: ID!
+
+  """
+  Identifies the issue associated with the event.
+  """
+  issue: Issue!
+}
+
+"""
+Autogenerated input type of UnresolveReviewThread
+"""
+input UnresolveReviewThreadInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The ID of the thread to unresolve
+  """
+  threadId: ID!
+}
+
+"""
+Autogenerated return type of UnresolveReviewThread
+"""
+type UnresolveReviewThreadPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The thread to resolve.
+  """
+  thread: PullRequestReviewThread
+}
+
+"""
+Represents an 'unsubscribed' event on a given `Subscribable`.
+"""
+type UnsubscribedEvent implements Node {
+  """
+  Identifies the actor who performed the event.
+  """
+  actor: Actor
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+  id: ID!
+
+  """
+  Object referenced by event.
+  """
+  subscribable: Subscribable!
+}
+
+"""
+Entities that can be updated.
+"""
+interface Updatable {
+  """
+  Check if the current viewer can update this object.
+  """
+  viewerCanUpdate: Boolean!
+}
+
+"""
+Comments that can be updated.
+"""
+interface UpdatableComment {
+  """
+  Reasons why the current viewer can not update this comment.
+  """
+  viewerCannotUpdateReasons: [CommentCannotUpdateReason!]!
+}
+
+"""
+Autogenerated input type of UpdateBranchProtectionRule
+"""
+input UpdateBranchProtectionRuleInput {
+  """
+  Can this branch be deleted.
+  """
+  allowsDeletions: Boolean
+
+  """
+  Are force pushes allowed on this branch.
+  """
+  allowsForcePushes: Boolean
+
+  """
+  The global relay id of the branch protection rule to be updated.
+  """
+  branchProtectionRuleId: ID!
+
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  Will new commits pushed to matching branches dismiss pull request review approvals.
+  """
+  dismissesStaleReviews: Boolean
+
+  """
+  Can admins overwrite branch protection.
+  """
+  isAdminEnforced: Boolean
+
+  """
+  The glob-like pattern used to determine matching branches.
+  """
+  pattern: String
+
+  """
+  A list of User, Team or App IDs allowed to push to matching branches.
+  """
+  pushActorIds: [ID!]
+
+  """
+  Number of approving reviews required to update matching branches.
+  """
+  requiredApprovingReviewCount: Int
+
+  """
+  List of required status check contexts that must pass for commits to be accepted to matching branches.
+  """
+  requiredStatusCheckContexts: [String!]
+
+  """
+  Are approving reviews required to update matching branches.
+  """
+  requiresApprovingReviews: Boolean
+
+  """
+  Are reviews from code owners required to update matching branches.
+  """
+  requiresCodeOwnerReviews: Boolean
+
+  """
+  Are commits required to be signed.
+  """
+  requiresCommitSignatures: Boolean
+
+  """
+  Are merge commits prohibited from being pushed to this branch.
+  """
+  requiresLinearHistory: Boolean
+
+  """
+  Are status checks required to update matching branches.
+  """
+  requiresStatusChecks: Boolean
+
+  """
+  Are branches required to be up to date before merging.
+  """
+  requiresStrictStatusChecks: Boolean
+
+  """
+  Is pushing to matching branches restricted.
+  """
+  restrictsPushes: Boolean
+
+  """
+  Is dismissal of pull request reviews restricted.
+  """
+  restrictsReviewDismissals: Boolean
+
+  """
+  A list of User or Team IDs allowed to dismiss reviews on pull requests targeting matching branches.
+  """
+  reviewDismissalActorIds: [ID!]
+}
+
+"""
+Autogenerated return type of UpdateBranchProtectionRule
+"""
+type UpdateBranchProtectionRulePayload {
+  """
+  The newly created BranchProtectionRule.
+  """
+  branchProtectionRule: BranchProtectionRule
+
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+}
+
+"""
+Autogenerated input type of UpdateCheckRun
+"""
+input UpdateCheckRunInput {
+  """
+  Possible further actions the integrator can perform, which a user may trigger.
+  """
+  actions: [CheckRunAction!]
+
+  """
+  The node of the check.
+  """
+  checkRunId: ID!
+
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The time that the check run finished.
+  """
+  completedAt: DateTime
+
+  """
+  The final conclusion of the check.
+  """
+  conclusion: CheckConclusionState
+
+  """
+  The URL of the integrator's site that has the full details of the check.
+  """
+  detailsUrl: URI
+
+  """
+  A reference for the run on the integrator's system.
+  """
+  externalId: String
+
+  """
+  The name of the check.
+  """
+  name: String
+
+  """
+  Descriptive details about the run.
+  """
+  output: CheckRunOutput
+
+  """
+  The node ID of the repository.
+  """
+  repositoryId: ID!
+
+  """
+  The time that the check run began.
+  """
+  startedAt: DateTime
+
+  """
+  The current status.
+  """
+  status: RequestableCheckStatusState
+}
+
+"""
+Autogenerated return type of UpdateCheckRun
+"""
+type UpdateCheckRunPayload {
+  """
+  The updated check run.
+  """
+  checkRun: CheckRun
+
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+}
+
+"""
+Autogenerated input type of UpdateCheckSuitePreferences
+"""
+input UpdateCheckSuitePreferencesInput {
+  """
+  The check suite preferences to modify.
+  """
+  autoTriggerPreferences: [CheckSuiteAutoTriggerPreference!]!
+
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The Node ID of the repository.
+  """
+  repositoryId: ID!
+}
+
+"""
+Autogenerated return type of UpdateCheckSuitePreferences
+"""
+type UpdateCheckSuitePreferencesPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The updated repository.
+  """
+  repository: Repository
+}
+
+"""
+Autogenerated input type of UpdateEnterpriseAdministratorRole
+"""
+input UpdateEnterpriseAdministratorRoleInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The ID of the Enterprise which the admin belongs to.
+  """
+  enterpriseId: ID!
+
+  """
+  The login of a administrator whose role is being changed.
+  """
+  login: String!
+
+  """
+  The new role for the Enterprise administrator.
+  """
+  role: EnterpriseAdministratorRole!
+}
+
+"""
+Autogenerated return type of UpdateEnterpriseAdministratorRole
+"""
+type UpdateEnterpriseAdministratorRolePayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  A message confirming the result of changing the administrator's role.
+  """
+  message: String
+}
+
+"""
+Autogenerated input type of UpdateEnterpriseAllowPrivateRepositoryForkingSetting
+"""
+input UpdateEnterpriseAllowPrivateRepositoryForkingSettingInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The ID of the enterprise on which to set the allow private repository forking setting.
+  """
+  enterpriseId: ID!
+
+  """
+  The value for the allow private repository forking setting on the enterprise.
+  """
+  settingValue: EnterpriseEnabledDisabledSettingValue!
+}
+
+"""
+Autogenerated return type of UpdateEnterpriseAllowPrivateRepositoryForkingSetting
+"""
+type UpdateEnterpriseAllowPrivateRepositoryForkingSettingPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The enterprise with the updated allow private repository forking setting.
+  """
+  enterprise: Enterprise
+
+  """
+  A message confirming the result of updating the allow private repository forking setting.
+  """
+  message: String
+}
+
+"""
+Autogenerated input type of UpdateEnterpriseDefaultRepositoryPermissionSetting
+"""
+input UpdateEnterpriseDefaultRepositoryPermissionSettingInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The ID of the enterprise on which to set the default repository permission setting.
+  """
+  enterpriseId: ID!
+
+  """
+  The value for the default repository permission setting on the enterprise.
+  """
+  settingValue: EnterpriseDefaultRepositoryPermissionSettingValue!
+}
+
+"""
+Autogenerated return type of UpdateEnterpriseDefaultRepositoryPermissionSetting
+"""
+type UpdateEnterpriseDefaultRepositoryPermissionSettingPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The enterprise with the updated default repository permission setting.
+  """
+  enterprise: Enterprise
+
+  """
+  A message confirming the result of updating the default repository permission setting.
+  """
+  message: String
+}
+
+"""
+Autogenerated input type of UpdateEnterpriseMembersCanChangeRepositoryVisibilitySetting
+"""
+input UpdateEnterpriseMembersCanChangeRepositoryVisibilitySettingInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The ID of the enterprise on which to set the members can change repository visibility setting.
+  """
+  enterpriseId: ID!
+
+  """
+  The value for the members can change repository visibility setting on the enterprise.
+  """
+  settingValue: EnterpriseEnabledDisabledSettingValue!
+}
+
+"""
+Autogenerated return type of UpdateEnterpriseMembersCanChangeRepositoryVisibilitySetting
+"""
+type UpdateEnterpriseMembersCanChangeRepositoryVisibilitySettingPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The enterprise with the updated members can change repository visibility setting.
+  """
+  enterprise: Enterprise
+
+  """
+  A message confirming the result of updating the members can change repository visibility setting.
+  """
+  message: String
+}
+
+"""
+Autogenerated input type of UpdateEnterpriseMembersCanCreateRepositoriesSetting
+"""
+input UpdateEnterpriseMembersCanCreateRepositoriesSettingInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The ID of the enterprise on which to set the members can create repositories setting.
+  """
+  enterpriseId: ID!
+
+  """
+  Allow members to create internal repositories. Defaults to current value.
+  """
+  membersCanCreateInternalRepositories: Boolean
+
+  """
+  Allow members to create private repositories. Defaults to current value.
+  """
+  membersCanCreatePrivateRepositories: Boolean
+
+  """
+  Allow members to create public repositories. Defaults to current value.
+  """
+  membersCanCreatePublicRepositories: Boolean
+
+  """
+  When false, allow member organizations to set their own repository creation member privileges.
+  """
+  membersCanCreateRepositoriesPolicyEnabled: Boolean
+
+  """
+  Value for the members can create repositories setting on the enterprise. This
+  or the granular public/private/internal allowed fields (but not both) must be provided.
+  """
+  settingValue: EnterpriseMembersCanCreateRepositoriesSettingValue
+}
+
+"""
+Autogenerated return type of UpdateEnterpriseMembersCanCreateRepositoriesSetting
+"""
+type UpdateEnterpriseMembersCanCreateRepositoriesSettingPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The enterprise with the updated members can create repositories setting.
+  """
+  enterprise: Enterprise
+
+  """
+  A message confirming the result of updating the members can create repositories setting.
+  """
+  message: String
+}
+
+"""
+Autogenerated input type of UpdateEnterpriseMembersCanDeleteIssuesSetting
+"""
+input UpdateEnterpriseMembersCanDeleteIssuesSettingInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The ID of the enterprise on which to set the members can delete issues setting.
+  """
+  enterpriseId: ID!
+
+  """
+  The value for the members can delete issues setting on the enterprise.
+  """
+  settingValue: EnterpriseEnabledDisabledSettingValue!
+}
+
+"""
+Autogenerated return type of UpdateEnterpriseMembersCanDeleteIssuesSetting
+"""
+type UpdateEnterpriseMembersCanDeleteIssuesSettingPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The enterprise with the updated members can delete issues setting.
+  """
+  enterprise: Enterprise
+
+  """
+  A message confirming the result of updating the members can delete issues setting.
+  """
+  message: String
+}
+
+"""
+Autogenerated input type of UpdateEnterpriseMembersCanDeleteRepositoriesSetting
+"""
+input UpdateEnterpriseMembersCanDeleteRepositoriesSettingInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The ID of the enterprise on which to set the members can delete repositories setting.
+  """
+  enterpriseId: ID!
+
+  """
+  The value for the members can delete repositories setting on the enterprise.
+  """
+  settingValue: EnterpriseEnabledDisabledSettingValue!
+}
+
+"""
+Autogenerated return type of UpdateEnterpriseMembersCanDeleteRepositoriesSetting
+"""
+type UpdateEnterpriseMembersCanDeleteRepositoriesSettingPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The enterprise with the updated members can delete repositories setting.
+  """
+  enterprise: Enterprise
+
+  """
+  A message confirming the result of updating the members can delete repositories setting.
+  """
+  message: String
+}
+
+"""
+Autogenerated input type of UpdateEnterpriseMembersCanInviteCollaboratorsSetting
+"""
+input UpdateEnterpriseMembersCanInviteCollaboratorsSettingInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The ID of the enterprise on which to set the members can invite collaborators setting.
+  """
+  enterpriseId: ID!
+
+  """
+  The value for the members can invite collaborators setting on the enterprise.
+  """
+  settingValue: EnterpriseEnabledDisabledSettingValue!
+}
+
+"""
+Autogenerated return type of UpdateEnterpriseMembersCanInviteCollaboratorsSetting
+"""
+type UpdateEnterpriseMembersCanInviteCollaboratorsSettingPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The enterprise with the updated members can invite collaborators setting.
+  """
+  enterprise: Enterprise
+
+  """
+  A message confirming the result of updating the members can invite collaborators setting.
+  """
+  message: String
+}
+
+"""
+Autogenerated input type of UpdateEnterpriseMembersCanMakePurchasesSetting
+"""
+input UpdateEnterpriseMembersCanMakePurchasesSettingInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The ID of the enterprise on which to set the members can make purchases setting.
+  """
+  enterpriseId: ID!
+
+  """
+  The value for the members can make purchases setting on the enterprise.
+  """
+  settingValue: EnterpriseMembersCanMakePurchasesSettingValue!
+}
+
+"""
+Autogenerated return type of UpdateEnterpriseMembersCanMakePurchasesSetting
+"""
+type UpdateEnterpriseMembersCanMakePurchasesSettingPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The enterprise with the updated members can make purchases setting.
+  """
+  enterprise: Enterprise
+
+  """
+  A message confirming the result of updating the members can make purchases setting.
+  """
+  message: String
+}
+
+"""
+Autogenerated input type of UpdateEnterpriseMembersCanUpdateProtectedBranchesSetting
+"""
+input UpdateEnterpriseMembersCanUpdateProtectedBranchesSettingInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The ID of the enterprise on which to set the members can update protected branches setting.
+  """
+  enterpriseId: ID!
+
+  """
+  The value for the members can update protected branches setting on the enterprise.
+  """
+  settingValue: EnterpriseEnabledDisabledSettingValue!
+}
+
+"""
+Autogenerated return type of UpdateEnterpriseMembersCanUpdateProtectedBranchesSetting
+"""
+type UpdateEnterpriseMembersCanUpdateProtectedBranchesSettingPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The enterprise with the updated members can update protected branches setting.
+  """
+  enterprise: Enterprise
+
+  """
+  A message confirming the result of updating the members can update protected branches setting.
+  """
+  message: String
+}
+
+"""
+Autogenerated input type of UpdateEnterpriseMembersCanViewDependencyInsightsSetting
+"""
+input UpdateEnterpriseMembersCanViewDependencyInsightsSettingInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The ID of the enterprise on which to set the members can view dependency insights setting.
+  """
+  enterpriseId: ID!
+
+  """
+  The value for the members can view dependency insights setting on the enterprise.
+  """
+  settingValue: EnterpriseEnabledDisabledSettingValue!
+}
+
+"""
+Autogenerated return type of UpdateEnterpriseMembersCanViewDependencyInsightsSetting
+"""
+type UpdateEnterpriseMembersCanViewDependencyInsightsSettingPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The enterprise with the updated members can view dependency insights setting.
+  """
+  enterprise: Enterprise
+
+  """
+  A message confirming the result of updating the members can view dependency insights setting.
+  """
+  message: String
+}
+
+"""
+Autogenerated input type of UpdateEnterpriseOrganizationProjectsSetting
+"""
+input UpdateEnterpriseOrganizationProjectsSettingInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The ID of the enterprise on which to set the organization projects setting.
+  """
+  enterpriseId: ID!
+
+  """
+  The value for the organization projects setting on the enterprise.
+  """
+  settingValue: EnterpriseEnabledDisabledSettingValue!
+}
+
+"""
+Autogenerated return type of UpdateEnterpriseOrganizationProjectsSetting
+"""
+type UpdateEnterpriseOrganizationProjectsSettingPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The enterprise with the updated organization projects setting.
+  """
+  enterprise: Enterprise
+
+  """
+  A message confirming the result of updating the organization projects setting.
+  """
+  message: String
+}
+
+"""
+Autogenerated input type of UpdateEnterpriseProfile
+"""
+input UpdateEnterpriseProfileInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The description of the enterprise.
+  """
+  description: String
+
+  """
+  The Enterprise ID to update.
+  """
+  enterpriseId: ID!
+
+  """
+  The location of the enterprise.
+  """
+  location: String
+
+  """
+  The name of the enterprise.
+  """
+  name: String
+
+  """
+  The URL of the enterprise's website.
+  """
+  websiteUrl: String
+}
+
+"""
+Autogenerated return type of UpdateEnterpriseProfile
+"""
+type UpdateEnterpriseProfilePayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The updated enterprise.
+  """
+  enterprise: Enterprise
+}
+
+"""
+Autogenerated input type of UpdateEnterpriseRepositoryProjectsSetting
+"""
+input UpdateEnterpriseRepositoryProjectsSettingInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The ID of the enterprise on which to set the repository projects setting.
+  """
+  enterpriseId: ID!
+
+  """
+  The value for the repository projects setting on the enterprise.
+  """
+  settingValue: EnterpriseEnabledDisabledSettingValue!
+}
+
+"""
+Autogenerated return type of UpdateEnterpriseRepositoryProjectsSetting
+"""
+type UpdateEnterpriseRepositoryProjectsSettingPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The enterprise with the updated repository projects setting.
+  """
+  enterprise: Enterprise
+
+  """
+  A message confirming the result of updating the repository projects setting.
+  """
+  message: String
+}
+
+"""
+Autogenerated input type of UpdateEnterpriseTeamDiscussionsSetting
+"""
+input UpdateEnterpriseTeamDiscussionsSettingInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The ID of the enterprise on which to set the team discussions setting.
+  """
+  enterpriseId: ID!
+
+  """
+  The value for the team discussions setting on the enterprise.
+  """
+  settingValue: EnterpriseEnabledDisabledSettingValue!
+}
+
+"""
+Autogenerated return type of UpdateEnterpriseTeamDiscussionsSetting
+"""
+type UpdateEnterpriseTeamDiscussionsSettingPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The enterprise with the updated team discussions setting.
+  """
+  enterprise: Enterprise
+
+  """
+  A message confirming the result of updating the team discussions setting.
+  """
+  message: String
+}
+
+"""
+Autogenerated input type of UpdateEnterpriseTwoFactorAuthenticationRequiredSetting
+"""
+input UpdateEnterpriseTwoFactorAuthenticationRequiredSettingInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The ID of the enterprise on which to set the two factor authentication required setting.
+  """
+  enterpriseId: ID!
+
+  """
+  The value for the two factor authentication required setting on the enterprise.
+  """
+  settingValue: EnterpriseEnabledSettingValue!
+}
+
+"""
+Autogenerated return type of UpdateEnterpriseTwoFactorAuthenticationRequiredSetting
+"""
+type UpdateEnterpriseTwoFactorAuthenticationRequiredSettingPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The enterprise with the updated two factor authentication required setting.
+  """
+  enterprise: Enterprise
+
+  """
+  A message confirming the result of updating the two factor authentication required setting.
+  """
+  message: String
+}
+
+"""
+Autogenerated input type of UpdateIpAllowListEnabledSetting
+"""
+input UpdateIpAllowListEnabledSettingInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The ID of the owner on which to set the IP allow list enabled setting.
+  """
+  ownerId: ID!
+
+  """
+  The value for the IP allow list enabled setting.
+  """
+  settingValue: IpAllowListEnabledSettingValue!
+}
+
+"""
+Autogenerated return type of UpdateIpAllowListEnabledSetting
+"""
+type UpdateIpAllowListEnabledSettingPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The IP allow list owner on which the setting was updated.
+  """
+  owner: IpAllowListOwner
+}
+
+"""
+Autogenerated input type of UpdateIpAllowListEntry
+"""
+input UpdateIpAllowListEntryInput {
+  """
+  An IP address or range of addresses in CIDR notation.
+  """
+  allowListValue: String!
+
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The ID of the IP allow list entry to update.
+  """
+  ipAllowListEntryId: ID!
+
+  """
+  Whether the IP allow list entry is active when an IP allow list is enabled.
+  """
+  isActive: Boolean!
+
+  """
+  An optional name for the IP allow list entry.
+  """
+  name: String
+}
+
+"""
+Autogenerated return type of UpdateIpAllowListEntry
+"""
+type UpdateIpAllowListEntryPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The IP allow list entry that was updated.
+  """
+  ipAllowListEntry: IpAllowListEntry
+}
+
+"""
+Autogenerated input type of UpdateIssueComment
+"""
+input UpdateIssueCommentInput {
+  """
+  The updated text of the comment.
+  """
+  body: String!
+
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The ID of the IssueComment to modify.
+  """
+  id: ID!
+}
+
+"""
+Autogenerated return type of UpdateIssueComment
+"""
+type UpdateIssueCommentPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The updated comment.
+  """
+  issueComment: IssueComment
+}
+
+"""
+Autogenerated input type of UpdateIssue
+"""
+input UpdateIssueInput {
+  """
+  An array of Node IDs of users for this issue.
+  """
+  assigneeIds: [ID!]
+
+  """
+  The body for the issue description.
+  """
+  body: String
+
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The ID of the Issue to modify.
+  """
+  id: ID!
+
+  """
+  An array of Node IDs of labels for this issue.
+  """
+  labelIds: [ID!]
+
+  """
+  The Node ID of the milestone for this issue.
+  """
+  milestoneId: ID
+
+  """
+  An array of Node IDs for projects associated with this issue.
+  """
+  projectIds: [ID!]
+
+  """
+  The desired issue state.
+  """
+  state: IssueState
+
+  """
+  The title for the issue.
+  """
+  title: String
+}
+
+"""
+Autogenerated return type of UpdateIssue
+"""
+type UpdateIssuePayload {
+  """
+  Identifies the actor who performed the event.
+  """
+  actor: Actor
+
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The issue.
+  """
+  issue: Issue
+}
+
+"""
+Autogenerated input type of UpdateNotificationRestrictionSetting
+"""
+input UpdateNotificationRestrictionSettingInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The ID of the owner on which to set the restrict notifications setting.
+  """
+  ownerId: ID!
+
+  """
+  The value for the restrict notifications setting.
+  """
+  settingValue: NotificationRestrictionSettingValue!
+}
+
+"""
+Autogenerated return type of UpdateNotificationRestrictionSetting
+"""
+type UpdateNotificationRestrictionSettingPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The owner on which the setting was updated.
+  """
+  owner: VerifiableDomainOwner
+}
+
+"""
+Autogenerated input type of UpdateProjectCard
+"""
+input UpdateProjectCardInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  Whether or not the ProjectCard should be archived
+  """
+  isArchived: Boolean
+
+  """
+  The note of ProjectCard.
+  """
+  note: String
+
+  """
+  The ProjectCard ID to update.
+  """
+  projectCardId: ID!
+}
+
+"""
+Autogenerated return type of UpdateProjectCard
+"""
+type UpdateProjectCardPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The updated ProjectCard.
+  """
+  projectCard: ProjectCard
+}
+
+"""
+Autogenerated input type of UpdateProjectColumn
+"""
+input UpdateProjectColumnInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The name of project column.
+  """
+  name: String!
+
+  """
+  The ProjectColumn ID to update.
+  """
+  projectColumnId: ID!
+}
+
+"""
+Autogenerated return type of UpdateProjectColumn
+"""
+type UpdateProjectColumnPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The updated project column.
+  """
+  projectColumn: ProjectColumn
+}
+
+"""
+Autogenerated input type of UpdateProject
+"""
+input UpdateProjectInput {
+  """
+  The description of project.
+  """
+  body: String
+
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The name of project.
+  """
+  name: String
+
+  """
+  The Project ID to update.
+  """
+  projectId: ID!
+
+  """
+  Whether the project is public or not.
+  """
+  public: Boolean
+
+  """
+  Whether the project is open or closed.
+  """
+  state: ProjectState
+}
+
+"""
+Autogenerated return type of UpdateProject
+"""
+type UpdateProjectPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The updated project.
+  """
+  project: Project
+}
+
+"""
+Autogenerated input type of UpdatePullRequest
+"""
+input UpdatePullRequestInput {
+  """
+  An array of Node IDs of users for this pull request.
+  """
+  assigneeIds: [ID!]
+
+  """
+  The name of the branch you want your changes pulled into. This should be an existing branch
+  on the current repository.
+  """
+  baseRefName: String
+
+  """
+  The contents of the pull request.
+  """
+  body: String
+
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  An array of Node IDs of labels for this pull request.
+  """
+  labelIds: [ID!]
+
+  """
+  Indicates whether maintainers can modify the pull request.
+  """
+  maintainerCanModify: Boolean
+
+  """
+  The Node ID of the milestone for this pull request.
+  """
+  milestoneId: ID
+
+  """
+  An array of Node IDs for projects associated with this pull request.
+  """
+  projectIds: [ID!]
+
+  """
+  The Node ID of the pull request.
+  """
+  pullRequestId: ID!
+
+  """
+  The target state of the pull request.
+  """
+  state: PullRequestUpdateState
+
+  """
+  The title of the pull request.
+  """
+  title: String
+}
+
+"""
+Autogenerated return type of UpdatePullRequest
+"""
+type UpdatePullRequestPayload {
+  """
+  Identifies the actor who performed the event.
+  """
+  actor: Actor
+
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The updated pull request.
+  """
+  pullRequest: PullRequest
+}
+
+"""
+Autogenerated input type of UpdatePullRequestReviewComment
+"""
+input UpdatePullRequestReviewCommentInput {
+  """
+  The text of the comment.
+  """
+  body: String!
+
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The Node ID of the comment to modify.
+  """
+  pullRequestReviewCommentId: ID!
+}
+
+"""
+Autogenerated return type of UpdatePullRequestReviewComment
+"""
+type UpdatePullRequestReviewCommentPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The updated comment.
+  """
+  pullRequestReviewComment: PullRequestReviewComment
+}
+
+"""
+Autogenerated input type of UpdatePullRequestReview
+"""
+input UpdatePullRequestReviewInput {
+  """
+  The contents of the pull request review body.
+  """
+  body: String!
+
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The Node ID of the pull request review to modify.
+  """
+  pullRequestReviewId: ID!
+}
+
+"""
+Autogenerated return type of UpdatePullRequestReview
+"""
+type UpdatePullRequestReviewPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The updated pull request review.
+  """
+  pullRequestReview: PullRequestReview
+}
+
+"""
+Autogenerated input type of UpdateRef
+"""
+input UpdateRefInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  Permit updates of branch Refs that are not fast-forwards?
+  """
+  force: Boolean = false
+
+  """
+  The GitObjectID that the Ref shall be updated to target.
+  """
+  oid: GitObjectID!
+
+  """
+  The Node ID of the Ref to be updated.
+  """
+  refId: ID!
+}
+
+"""
+Autogenerated return type of UpdateRef
+"""
+type UpdateRefPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The updated Ref.
+  """
+  ref: Ref
+}
+
+"""
+Autogenerated input type of UpdateRepository
+"""
+input UpdateRepositoryInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  A new description for the repository. Pass an empty string to erase the existing description.
+  """
+  description: String
+
+  """
+  Indicates if the repository should have the issues feature enabled.
+  """
+  hasIssuesEnabled: Boolean
+
+  """
+  Indicates if the repository should have the project boards feature enabled.
+  """
+  hasProjectsEnabled: Boolean
+
+  """
+  Indicates if the repository should have the wiki feature enabled.
+  """
+  hasWikiEnabled: Boolean
+
+  """
+  The URL for a web page about this repository. Pass an empty string to erase the existing URL.
+  """
+  homepageUrl: URI
+
+  """
+  The new name of the repository.
+  """
+  name: String
+
+  """
+  The ID of the repository to update.
+  """
+  repositoryId: ID!
+
+  """
+  Whether this repository should be marked as a template such that anyone who
+  can access it can create new repositories with the same files and directory structure.
+  """
+  template: Boolean
+}
+
+"""
+Autogenerated return type of UpdateRepository
+"""
+type UpdateRepositoryPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The updated repository.
+  """
+  repository: Repository
+}
+
+"""
+Autogenerated input type of UpdateSubscription
+"""
+input UpdateSubscriptionInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The new state of the subscription.
+  """
+  state: SubscriptionState!
+
+  """
+  The Node ID of the subscribable object to modify.
+  """
+  subscribableId: ID!
+}
+
+"""
+Autogenerated return type of UpdateSubscription
+"""
+type UpdateSubscriptionPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The input subscribable entity.
+  """
+  subscribable: Subscribable
+}
+
+"""
+Autogenerated input type of UpdateTeamDiscussionComment
+"""
+input UpdateTeamDiscussionCommentInput {
+  """
+  The updated text of the comment.
+  """
+  body: String!
+
+  """
+  The current version of the body content.
+  """
+  bodyVersion: String
+
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The ID of the comment to modify.
+  """
+  id: ID!
+}
+
+"""
+Autogenerated return type of UpdateTeamDiscussionComment
+"""
+type UpdateTeamDiscussionCommentPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The updated comment.
+  """
+  teamDiscussionComment: TeamDiscussionComment
+}
+
+"""
+Autogenerated input type of UpdateTeamDiscussion
+"""
+input UpdateTeamDiscussionInput {
+  """
+  The updated text of the discussion.
+  """
+  body: String
+
+  """
+  The current version of the body content. If provided, this update operation
+  will be rejected if the given version does not match the latest version on the server.
+  """
+  bodyVersion: String
+
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The Node ID of the discussion to modify.
+  """
+  id: ID!
+
+  """
+  If provided, sets the pinned state of the updated discussion.
+  """
+  pinned: Boolean
+
+  """
+  The updated title of the discussion.
+  """
+  title: String
+}
+
+"""
+Autogenerated return type of UpdateTeamDiscussion
+"""
+type UpdateTeamDiscussionPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The updated discussion.
+  """
+  teamDiscussion: TeamDiscussion
+}
+
+"""
+Autogenerated input type of UpdateTopics
+"""
+input UpdateTopicsInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The Node ID of the repository.
+  """
+  repositoryId: ID!
+
+  """
+  An array of topic names.
+  """
+  topicNames: [String!]!
+}
+
+"""
+Autogenerated return type of UpdateTopics
+"""
+type UpdateTopicsPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  Names of the provided topics that are not valid.
+  """
+  invalidTopicNames: [String!]
+
+  """
+  The updated repository.
+  """
+  repository: Repository
+}
+
+"""
+A user is an individual's account on GitHub that owns repositories and can make new content.
+"""
+type User implements Actor & Node & PackageOwner & ProfileOwner & ProjectOwner & RepositoryOwner & Sponsorable & UniformResourceLocatable {
+  """
+  Determine if this repository owner has any items that can be pinned to their profile.
+  """
+  anyPinnableItems(
+    """
+    Filter to only a particular kind of pinnable item.
+    """
+    type: PinnableItemType
+  ): Boolean!
+
+  """
+  A URL pointing to the user's public avatar.
+  """
+  avatarUrl(
+    """
+    The size of the resulting square image.
+    """
+    size: Int
+  ): URI!
+
+  """
+  The user's public profile bio.
+  """
+  bio: String
+
+  """
+  The user's public profile bio as HTML.
+  """
+  bioHTML: HTML!
+
+  """
+  A list of commit comments made by this user.
+  """
+  commitComments(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+  ): CommitCommentConnection!
+
+  """
+  The user's public profile company.
+  """
+  company: String
+
+  """
+  The user's public profile company as HTML.
+  """
+  companyHTML: HTML!
+
+  """
+  The collection of contributions this user has made to different repositories.
+  """
+  contributionsCollection(
+    """
+    Only contributions made at this time or later will be counted. If omitted, defaults to a year ago.
+    """
+    from: DateTime
+
+    """
+    The ID of the organization used to filter contributions.
+    """
+    organizationID: ID
+
+    """
+    Only contributions made before and up to and including this time will be
+    counted. If omitted, defaults to the current time.
+    """
+    to: DateTime
+  ): ContributionsCollection!
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+
+  """
+  Identifies the primary key from the database.
+  """
+  databaseId: Int
+
+  """
+  The user's publicly visible profile email.
+  """
+  email: String!
+
+  """
+  A list of users the given user is followed by.
+  """
+  followers(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+  ): FollowerConnection!
+
+  """
+  A list of users the given user is following.
+  """
+  following(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+  ): FollowingConnection!
+
+  """
+  Find gist by repo name.
+  """
+  gist(
+    """
+    The gist name to find.
+    """
+    name: String!
+  ): Gist
+
+  """
+  A list of gist comments made by this user.
+  """
+  gistComments(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+  ): GistCommentConnection!
+
+  """
+  A list of the Gists the user has created.
+  """
+  gists(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for gists returned from the connection
+    """
+    orderBy: GistOrder
+
+    """
+    Filters Gists according to privacy.
+    """
+    privacy: GistPrivacy
+  ): GistConnection!
+
+  """
+  True if this user/organization has a GitHub Sponsors listing.
+  """
+  hasSponsorsListing: Boolean!
+
+  """
+  The hovercard information for this user in a given context
+  """
+  hovercard(
+    """
+    The ID of the subject to get the hovercard in the context of
+    """
+    primarySubjectId: ID
+  ): Hovercard!
+  id: ID!
+
+  """
+  The interaction ability settings for this user.
+  """
+  interactionAbility: RepositoryInteractionAbility
+
+  """
+  Whether or not this user is a participant in the GitHub Security Bug Bounty.
+  """
+  isBountyHunter: Boolean!
+
+  """
+  Whether or not this user is a participant in the GitHub Campus Experts Program.
+  """
+  isCampusExpert: Boolean!
+
+  """
+  Whether or not this user is a GitHub Developer Program member.
+  """
+  isDeveloperProgramMember: Boolean!
+
+  """
+  Whether or not this user is a GitHub employee.
+  """
+  isEmployee: Boolean!
+
+  """
+  Whether or not the user has marked themselves as for hire.
+  """
+  isHireable: Boolean!
+
+  """
+  Whether or not this user is a site administrator.
+  """
+  isSiteAdmin: Boolean!
+
+  """
+  Check if the given account is sponsoring this user/organization.
+  """
+  isSponsoredBy(
+    """
+    The target account's login.
+    """
+    accountLogin: String!
+  ): Boolean!
+
+  """
+  True if the viewer is sponsored by this user/organization.
+  """
+  isSponsoringViewer: Boolean!
+
+  """
+  Whether or not this user is the viewing user.
+  """
+  isViewer: Boolean!
+
+  """
+  A list of issue comments made by this user.
+  """
+  issueComments(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for issue comments returned from the connection.
+    """
+    orderBy: IssueCommentOrder
+  ): IssueCommentConnection!
+
+  """
+  A list of issues associated with this user.
+  """
+  issues(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Filtering options for issues returned from the connection.
+    """
+    filterBy: IssueFilters
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    A list of label names to filter the pull requests by.
+    """
+    labels: [String!]
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for issues returned from the connection.
+    """
+    orderBy: IssueOrder
+
+    """
+    A list of states to filter the issues by.
+    """
+    states: [IssueState!]
+  ): IssueConnection!
+
+  """
+  Showcases a selection of repositories and gists that the profile owner has
+  either curated or that have been selected automatically based on popularity.
+  """
+  itemShowcase: ProfileItemShowcase!
+
+  """
+  The user's public profile location.
+  """
+  location: String
+
+  """
+  The username used to login.
+  """
+  login: String!
+
+  """
+  The user's public profile name.
+  """
+  name: String
+
+  """
+  Find an organization by its login that the user belongs to.
+  """
+  organization(
+    """
+    The login of the organization to find.
+    """
+    login: String!
+  ): Organization
+
+  """
+  Verified email addresses that match verified domains for a specified organization the user is a member of.
+  """
+  organizationVerifiedDomainEmails(
+    """
+    The login of the organization to match verified domains from.
+    """
+    login: String!
+  ): [String!]!
+
+  """
+  A list of organizations the user belongs to.
+  """
+  organizations(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+  ): OrganizationConnection!
+
+  """
+  A list of packages under the owner.
+  """
+  packages(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Find packages by their names.
+    """
+    names: [String]
+
+    """
+    Ordering of the returned packages.
+    """
+    orderBy: PackageOrder = {field: CREATED_AT, direction: DESC}
+
+    """
+    Filter registry package by type.
+    """
+    packageType: PackageType
+
+    """
+    Find packages in a repository by ID.
+    """
+    repositoryId: ID
+  ): PackageConnection!
+
+  """
+  A list of repositories and gists this profile owner can pin to their profile.
+  """
+  pinnableItems(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Filter the types of pinnable items that are returned.
+    """
+    types: [PinnableItemType!]
+  ): PinnableItemConnection!
+
+  """
+  A list of repositories and gists this profile owner has pinned to their profile
+  """
+  pinnedItems(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Filter the types of pinned items that are returned.
+    """
+    types: [PinnableItemType!]
+  ): PinnableItemConnection!
+
+  """
+  Returns how many more items this profile owner can pin to their profile.
+  """
+  pinnedItemsRemaining: Int!
+
+  """
+  Find project by number.
+  """
+  project(
+    """
+    The project number to find.
+    """
+    number: Int!
+  ): Project
+
+  """
+  A list of projects under the owner.
+  """
+  projects(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for projects returned from the connection
+    """
+    orderBy: ProjectOrder
+
+    """
+    Query to search projects by, currently only searching by name.
+    """
+    search: String
+
+    """
+    A list of states to filter the projects by.
+    """
+    states: [ProjectState!]
+  ): ProjectConnection!
+
+  """
+  The HTTP path listing user's projects
+  """
+  projectsResourcePath: URI!
+
+  """
+  The HTTP URL listing user's projects
+  """
+  projectsUrl: URI!
+
+  """
+  A list of public keys associated with this user.
+  """
+  publicKeys(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+  ): PublicKeyConnection!
+
+  """
+  A list of pull requests associated with this user.
+  """
+  pullRequests(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    The base ref name to filter the pull requests by.
+    """
+    baseRefName: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    The head ref name to filter the pull requests by.
+    """
+    headRefName: String
+
+    """
+    A list of label names to filter the pull requests by.
+    """
+    labels: [String!]
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for pull requests returned from the connection.
+    """
+    orderBy: IssueOrder
+
+    """
+    A list of states to filter the pull requests by.
+    """
+    states: [PullRequestState!]
+  ): PullRequestConnection!
+
+  """
+  A list of repositories that the user owns.
+  """
+  repositories(
+    """
+    Array of viewer's affiliation options for repositories returned from the
+    connection. For example, OWNER will include only repositories that the
+    current viewer owns.
+    """
+    affiliations: [RepositoryAffiliation]
+
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    If non-null, filters repositories according to whether they are forks of another repository
+    """
+    isFork: Boolean
+
+    """
+    If non-null, filters repositories according to whether they have been locked
+    """
+    isLocked: Boolean
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for repositories returned from the connection
+    """
+    orderBy: RepositoryOrder
+
+    """
+    Array of owner's affiliation options for repositories returned from the
+    connection. For example, OWNER will include only repositories that the
+    organization or user being viewed owns.
+    """
+    ownerAffiliations: [RepositoryAffiliation] = [OWNER, COLLABORATOR]
+
+    """
+    If non-null, filters repositories according to privacy
+    """
+    privacy: RepositoryPrivacy
+  ): RepositoryConnection!
+
+  """
+  A list of repositories that the user recently contributed to.
+  """
+  repositoriesContributedTo(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    If non-null, include only the specified types of contributions. The
+    GitHub.com UI uses [COMMIT, ISSUE, PULL_REQUEST, REPOSITORY]
+    """
+    contributionTypes: [RepositoryContributionType]
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    If true, include user repositories
+    """
+    includeUserRepositories: Boolean
+
+    """
+    If non-null, filters repositories according to whether they have been locked
+    """
+    isLocked: Boolean
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for repositories returned from the connection
+    """
+    orderBy: RepositoryOrder
+
+    """
+    If non-null, filters repositories according to privacy
+    """
+    privacy: RepositoryPrivacy
+  ): RepositoryConnection!
+
+  """
+  Find Repository.
+  """
+  repository(
+    """
+    Name of Repository to find.
+    """
+    name: String!
+  ): Repository
+
+  """
+  The HTTP path for this user
+  """
+  resourcePath: URI!
+
+  """
+  Replies this user has saved
+  """
+  savedReplies(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    The field to order saved replies by.
+    """
+    orderBy: SavedReplyOrder = {field: UPDATED_AT, direction: DESC}
+  ): SavedReplyConnection
+
+  """
+  The GitHub Sponsors listing for this user or organization.
+  """
+  sponsorsListing: SponsorsListing
+
+  """
+  The viewer's sponsorship of this entity.
+  """
+  sponsorshipForViewerAsSponsor: Sponsorship
+
+  """
+  This object's sponsorships as the maintainer.
+  """
+  sponsorshipsAsMaintainer(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Whether or not to include private sponsorships in the result set
+    """
+    includePrivate: Boolean = false
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for sponsorships returned from this connection. If left
+    blank, the sponsorships will be ordered based on relevancy to the viewer.
+    """
+    orderBy: SponsorshipOrder
+  ): SponsorshipConnection!
+
+  """
+  This object's sponsorships as the sponsor.
+  """
+  sponsorshipsAsSponsor(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for sponsorships returned from this connection. If left
+    blank, the sponsorships will be ordered based on relevancy to the viewer.
+    """
+    orderBy: SponsorshipOrder
+  ): SponsorshipConnection!
+
+  """
+  Repositories the user has starred.
+  """
+  starredRepositories(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Order for connection
+    """
+    orderBy: StarOrder
+
+    """
+    Filters starred repositories to only return repositories owned by the viewer.
+    """
+    ownedByViewer: Boolean
+  ): StarredRepositoryConnection!
+
+  """
+  The user's description of what they're currently doing.
+  """
+  status: UserStatus
+
+  """
+  Repositories the user has contributed to, ordered by contribution rank, plus repositories the user has created
+  """
+  topRepositories(
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for repositories returned from the connection
+    """
+    orderBy: RepositoryOrder!
+
+    """
+    How far back in time to fetch contributed repositories
+    """
+    since: DateTime
+  ): RepositoryConnection!
+
+  """
+  The user's Twitter username.
+  """
+  twitterUsername: String
+
+  """
+  Identifies the date and time when the object was last updated.
+  """
+  updatedAt: DateTime!
+
+  """
+  The HTTP URL for this user
+  """
+  url: URI!
+
+  """
+  Can the viewer pin repositories and gists to the profile?
+  """
+  viewerCanChangePinnedItems: Boolean!
+
+  """
+  Can the current viewer create new projects on this owner.
+  """
+  viewerCanCreateProjects: Boolean!
+
+  """
+  Whether or not the viewer is able to follow the user.
+  """
+  viewerCanFollow: Boolean!
+
+  """
+  Whether or not the viewer is able to sponsor this user/organization.
+  """
+  viewerCanSponsor: Boolean!
+
+  """
+  Whether or not this user is followed by the viewer.
+  """
+  viewerIsFollowing: Boolean!
+
+  """
+  True if the viewer is sponsoring this user/organization.
+  """
+  viewerIsSponsoring: Boolean!
+
+  """
+  A list of repositories the given user is watching.
+  """
+  watching(
+    """
+    Affiliation options for repositories returned from the connection. If none
+    specified, the results will include repositories for which the current
+    viewer is an owner or collaborator, or member.
+    """
+    affiliations: [RepositoryAffiliation]
+
+    """
+    Returns the elements in the list that come after the specified cursor.
+    """
+    after: String
+
+    """
+    Returns the elements in the list that come before the specified cursor.
+    """
+    before: String
+
+    """
+    Returns the first _n_ elements from the list.
+    """
+    first: Int
+
+    """
+    If non-null, filters repositories according to whether they have been locked
+    """
+    isLocked: Boolean
+
+    """
+    Returns the last _n_ elements from the list.
+    """
+    last: Int
+
+    """
+    Ordering options for repositories returned from the connection
+    """
+    orderBy: RepositoryOrder
+
+    """
+    Array of owner's affiliation options for repositories returned from the
+    connection. For example, OWNER will include only repositories that the
+    organization or user being viewed owns.
+    """
+    ownerAffiliations: [RepositoryAffiliation] = [OWNER, COLLABORATOR]
+
+    """
+    If non-null, filters repositories according to privacy
+    """
+    privacy: RepositoryPrivacy
+  ): RepositoryConnection!
+
+  """
+  A URL pointing to the user's public website/blog.
+  """
+  websiteUrl: URI
+}
+
+"""
+The possible durations that a user can be blocked for.
+"""
+enum UserBlockDuration {
+  """
+  The user was blocked for 1 day
+  """
+  ONE_DAY
+
+  """
+  The user was blocked for 30 days
+  """
+  ONE_MONTH
+
+  """
+  The user was blocked for 7 days
+  """
+  ONE_WEEK
+
+  """
+  The user was blocked permanently
+  """
+  PERMANENT
+
+  """
+  The user was blocked for 3 days
+  """
+  THREE_DAYS
+}
+
+"""
+Represents a 'user_blocked' event on a given user.
+"""
+type UserBlockedEvent implements Node {
+  """
+  Identifies the actor who performed the event.
+  """
+  actor: Actor
+
+  """
+  Number of days that the user was blocked for.
+  """
+  blockDuration: UserBlockDuration!
+
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+  id: ID!
+
+  """
+  The user who was blocked.
+  """
+  subject: User
+}
+
+"""
+The connection type for User.
+"""
+type UserConnection {
+  """
+  A list of edges.
+  """
+  edges: [UserEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [User]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+An edit on user content
+"""
+type UserContentEdit implements Node {
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+
+  """
+  Identifies the date and time when the object was deleted.
+  """
+  deletedAt: DateTime
+
+  """
+  The actor who deleted this content
+  """
+  deletedBy: Actor
+
+  """
+  A summary of the changes for this edit
+  """
+  diff: String
+
+  """
+  When this content was edited
+  """
+  editedAt: DateTime!
+
+  """
+  The actor who edited this content
+  """
+  editor: Actor
+  id: ID!
+
+  """
+  Identifies the date and time when the object was last updated.
+  """
+  updatedAt: DateTime!
+}
+
+"""
+A list of edits to content.
+"""
+type UserContentEditConnection {
+  """
+  A list of edges.
+  """
+  edges: [UserContentEditEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [UserContentEdit]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+An edge in a connection.
+"""
+type UserContentEditEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: UserContentEdit
+}
+
+"""
+Represents a user.
+"""
+type UserEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: User
+}
+
+"""
+Email attributes from External Identity
+"""
+type UserEmailMetadata {
+  """
+  Boolean to identify primary emails
+  """
+  primary: Boolean
+
+  """
+  Type of email
+  """
+  type: String
+
+  """
+  Email id
+  """
+  value: String!
+}
+
+"""
+The user's description of what they're currently doing.
+"""
+type UserStatus implements Node {
+  """
+  Identifies the date and time when the object was created.
+  """
+  createdAt: DateTime!
+
+  """
+  An emoji summarizing the user's status.
+  """
+  emoji: String
+
+  """
+  The status emoji as HTML.
+  """
+  emojiHTML: HTML
+
+  """
+  If set, the status will not be shown after this date.
+  """
+  expiresAt: DateTime
+
+  """
+  ID of the object.
+  """
+  id: ID!
+
+  """
+  Whether this status indicates the user is not fully available on GitHub.
+  """
+  indicatesLimitedAvailability: Boolean!
+
+  """
+  A brief message describing what the user is doing.
+  """
+  message: String
+
+  """
+  The organization whose members can see this status. If null, this status is publicly visible.
+  """
+  organization: Organization
+
+  """
+  Identifies the date and time when the object was last updated.
+  """
+  updatedAt: DateTime!
+
+  """
+  The user who has this status.
+  """
+  user: User!
+}
+
+"""
+The connection type for UserStatus.
+"""
+type UserStatusConnection {
+  """
+  A list of edges.
+  """
+  edges: [UserStatusEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [UserStatus]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+An edge in a connection.
+"""
+type UserStatusEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: UserStatus
+}
+
+"""
+Ordering options for user status connections.
+"""
+input UserStatusOrder {
+  """
+  The ordering direction.
+  """
+  direction: OrderDirection!
+
+  """
+  The field to order user statuses by.
+  """
+  field: UserStatusOrderField!
+}
+
+"""
+Properties by which user status connections can be ordered.
+"""
+enum UserStatusOrderField {
+  """
+  Order user statuses by when they were updated.
+  """
+  UPDATED_AT
+}
+
+"""
+A domain that can be verified for an organization or an enterprise.
+"""
+type VerifiableDomain implements Node {
+  """
+  Identifies the primary key from the database.
+  """
+  databaseId: Int
+
+  """
+  The DNS host name that should be used for verification.
+  """
+  dnsHostName: URI
+
+  """
+  The unicode encoded domain.
+  """
+  domain: URI!
+
+  """
+  Whether a TXT record for verification with the expected host name was found.
+  """
+  hasFoundHostName: Boolean!
+
+  """
+  Whether a TXT record for verification with the expected verification token was found.
+  """
+  hasFoundVerificationToken: Boolean!
+  id: ID!
+
+  """
+  Whether this domain is required to exist for an organization policy to be enforced.
+  """
+  isRequiredForPolicyEnforcement: Boolean!
+
+  """
+  Whether or not the domain is verified.
+  """
+  isVerified: Boolean!
+
+  """
+  The owner of the domain.
+  """
+  owner: VerifiableDomainOwner!
+
+  """
+  The punycode encoded domain.
+  """
+  punycodeEncodedDomain: URI!
+
+  """
+  The time that the current verification token will expire.
+  """
+  tokenExpirationTime: DateTime
+
+  """
+  The current verification token for the domain.
+  """
+  verificationToken: String
+}
+
+"""
+The connection type for VerifiableDomain.
+"""
+type VerifiableDomainConnection {
+  """
+  A list of edges.
+  """
+  edges: [VerifiableDomainEdge]
+
+  """
+  A list of nodes.
+  """
+  nodes: [VerifiableDomain]
+
+  """
+  Information to aid in pagination.
+  """
+  pageInfo: PageInfo!
+
+  """
+  Identifies the total count of items in the connection.
+  """
+  totalCount: Int!
+}
+
+"""
+An edge in a connection.
+"""
+type VerifiableDomainEdge {
+  """
+  A cursor for use in pagination.
+  """
+  cursor: String!
+
+  """
+  The item at the end of the edge.
+  """
+  node: VerifiableDomain
+}
+
+"""
+Ordering options for verifiable domain connections.
+"""
+input VerifiableDomainOrder {
+  """
+  The ordering direction.
+  """
+  direction: OrderDirection!
+
+  """
+  The field to order verifiable domains by.
+  """
+  field: VerifiableDomainOrderField!
+}
+
+"""
+Properties by which verifiable domain connections can be ordered.
+"""
+enum VerifiableDomainOrderField {
+  """
+  Order verifiable domains by the domain name.
+  """
+  DOMAIN
+}
+
+"""
+Types that can own a verifiable domain.
+"""
+union VerifiableDomainOwner = Enterprise | Organization
+
+"""
+Autogenerated input type of VerifyVerifiableDomain
+"""
+input VerifyVerifiableDomainInput {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The ID of the verifiable domain to verify.
+  """
+  id: ID!
+}
+
+"""
+Autogenerated return type of VerifyVerifiableDomain
+"""
+type VerifyVerifiableDomainPayload {
+  """
+  A unique identifier for the client performing the mutation.
+  """
+  clientMutationId: String
+
+  """
+  The verifiable domain that was verified.
+  """
+  domain: VerifiableDomain
+}
+
+"""
+A hovercard context with a message describing how the viewer is related.
+"""
+type ViewerHovercardContext implements HovercardContext {
+  """
+  A string describing this context
+  """
+  message: String!
+
+  """
+  An octicon to accompany this context
+  """
+  octicon: String!
+
+  """
+  Identifies the user who is related to this context.
+  """
+  viewer: User!
+}
+
+"""
+A valid x509 certificate string
+"""
+scalar X509Certificate
\ No newline at end of file
diff --git a/vendor/github_schema.graphql.license b/vendor/github_schema.graphql.license
new file mode 100644
index 0000000..7a1d167
--- /dev/null
+++ b/vendor/github_schema.graphql.license
@@ -0,0 +1,2 @@
+SPDX-License-Identifier: MIT
+SPDX-FileCopyrightText: 2017 Gregor Martynus
\ No newline at end of file