From 958c625ead8ac0e90a7431d9a88e665447093549 Mon Sep 17 00:00:00 2001 From: Alessia Bellisario Date: Thu, 25 Jul 2024 13:00:28 -0400 Subject: [PATCH 01/19] wip --- .storybook/stories/ApolloClient.stories.ts | 13 +- .storybook/stories/Relay.stories.ts | 13 +- codegen.ts | 15 + jest.polyfills.js | 14 +- package.json | 8 +- pnpm-lock.yaml | 1758 +++++++++++++++++++- src/__generated__/resolvers-types.ts | 442 +++++ src/__tests__/handlers.test.tsx | 21 +- src/__tests__/mocks/handlers.ts | 20 +- src/handlers.ts | 91 +- vitest.config.ts | 5 + 11 files changed, 2311 insertions(+), 89 deletions(-) create mode 100644 codegen.ts create mode 100644 src/__generated__/resolvers-types.ts diff --git a/.storybook/stories/ApolloClient.stories.ts b/.storybook/stories/ApolloClient.stories.ts index 1141e89..e8fde63 100644 --- a/.storybook/stories/ApolloClient.stories.ts +++ b/.storybook/stories/ApolloClient.stories.ts @@ -4,12 +4,9 @@ import { ApolloApp, ApolloAppWithDefer as AppWithDefer, } from "./components/apollo-client/ApolloComponent.js"; -import { createHandler } from "../../src/handlers.js"; -import { schemaWithMocks } from "../../src/__tests__/mocks/handlers.js"; +import { handler } from "../../src/__tests__/mocks/handlers.js"; -const { handler } = createHandler(schemaWithMocks); - -const meta = { +export default { title: "Example/Apollo Client", component: ApolloApp, parameters: { @@ -22,13 +19,9 @@ const meta = { }, } satisfies Meta; -export default meta; - export { AppWithDefer }; -type Story = StoryObj; - -export const App: Story = { +export const App: StoryObj = { play: async ({ canvasElement }) => { const canvas = within(canvasElement); await expect( diff --git a/.storybook/stories/Relay.stories.ts b/.storybook/stories/Relay.stories.ts index 194c70c..614de82 100644 --- a/.storybook/stories/Relay.stories.ts +++ b/.storybook/stories/Relay.stories.ts @@ -4,12 +4,9 @@ import { RelayApp, RelayAppWithDefer as AppWithDefer, } from "./components/relay/RelayComponent.js"; -import { createHandler } from "../../src/handlers.js"; -import { schemaWithMocks } from "../../src/__tests__/mocks/handlers.js"; +import { handler } from "../../src/__tests__/mocks/handlers.js"; -const { handler } = createHandler(schemaWithMocks); - -const meta = { +export default { title: "Example/Relay", component: RelayApp, parameters: { @@ -22,13 +19,9 @@ const meta = { }, } satisfies Meta; -export default meta; - export { AppWithDefer }; -type Story = StoryObj; - -export const App: Story = { +export const App: StoryObj = { play: async ({ canvasElement }) => { const canvas = within(canvasElement); await expect( diff --git a/codegen.ts b/codegen.ts new file mode 100644 index 0000000..6f56856 --- /dev/null +++ b/codegen.ts @@ -0,0 +1,15 @@ +import type { CodegenConfig } from "@graphql-codegen/cli"; + +const config: CodegenConfig = { + hooks: { + afterAllFileWrite: ["prettier --write"], + }, + schema: "./.storybook/stories/components/relay/schema.graphql", + generates: { + "./src/__generated__/resolvers-types.ts": { + plugins: ["typescript", "typescript-resolvers"], + }, + }, +}; + +export default config; diff --git a/jest.polyfills.js b/jest.polyfills.js index 4a84401..e20e28b 100644 --- a/jest.polyfills.js +++ b/jest.polyfills.js @@ -11,28 +11,24 @@ const { TextDecoder, TextEncoder } = require("node:util"); const { ReadableStream } = require("node:stream/web"); -const { clearImmediate } = require("node:timers"); -const { performance } = require("node:perf_hooks"); Object.defineProperties(globalThis, { - TextDecoder: { value: TextDecoder }, // jest - TextEncoder: { value: TextEncoder }, // jest - ReadableStream: { value: ReadableStream }, // jest - performance: { value: performance }, - clearImmediate: { value: clearImmediate }, + TextDecoder: { value: TextDecoder }, + TextEncoder: { value: TextEncoder }, + ReadableStream: { value: ReadableStream }, }); const { Blob, File } = require("node:buffer"); const { fetch, Headers, FormData, Request, Response } = require("undici"); Object.defineProperties(globalThis, { - fetch: { value: fetch, writable: true }, // jest + fetch: { value: fetch, writable: true }, Blob: { value: Blob }, File: { value: File }, Headers: { value: Headers }, FormData: { value: FormData }, Request: { value: Request }, - Response: { value: Response }, // jest + Response: { value: Response }, }); // Symbol.dispose is not defined diff --git a/package.json b/package.json index 1ca4bd1..e81b199 100644 --- a/package.json +++ b/package.json @@ -36,6 +36,7 @@ "changeset-publish": "pnpm run clean && pnpm run build && pnpm run prepdist:changesets && cd dist && changeset publish", "changeset-version": "changeset version && pnpm i", "changeset-check": "changeset status --verbose --since=origin/main", + "generate-types": "graphql-codegen --config codegen.ts", "test:jest": "jest", "test:vitest": "vitest run", "test:storybook": "test-storybook", @@ -53,10 +54,11 @@ "@apollo/client": "3.11.0", "@changesets/changelog-github": "0.5.0", "@changesets/cli": "2.27.6", + "@graphql-codegen/cli": "5.0.2", + "@graphql-codegen/typescript": "4.0.9", + "@graphql-codegen/typescript-resolvers": "4.2.1", "@graphql-tools/jest-transform": "2.0.0", "@graphql-tools/merge": "9.0.4", - "@graphql-tools/mock": "9.0.3", - "@graphql-tools/schema": "10.0.4", "@playwright/test": "1.45.0", "@storybook/addon-docs": "8.2.2", "@storybook/addon-essentials": "8.2.2", @@ -116,6 +118,8 @@ }, "dependencies": { "@graphql-tools/executor": "^1.2.7", + "@graphql-tools/mock": "^9.0.4", + "@graphql-tools/schema": "^10.0.4", "graphql-tag": "^2.12.6", "is-node-process": "^1.2.0" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ca2dd59..dff8d66 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -11,6 +11,12 @@ importers: '@graphql-tools/executor': specifier: ^1.2.7 version: 1.2.7(graphql@16.9.0) + '@graphql-tools/mock': + specifier: ^9.0.4 + version: 9.0.4(graphql@16.9.0) + '@graphql-tools/schema': + specifier: ^10.0.4 + version: 10.0.4(graphql@16.9.0) graphql-tag: specifier: ^2.12.6 version: 2.12.6(graphql@16.9.0) @@ -20,25 +26,28 @@ importers: devDependencies: '@apollo/client': specifier: 3.11.0 - version: 3.11.0(@types/react@18.3.3)(graphql@16.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 3.11.0(@types/react@18.3.3)(graphql-ws@5.16.0(graphql@16.9.0))(graphql@16.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@changesets/changelog-github': specifier: 0.5.0 version: 0.5.0 '@changesets/cli': specifier: 2.27.6 version: 2.27.6 + '@graphql-codegen/cli': + specifier: 5.0.2 + version: 5.0.2(@types/node@20.14.9)(enquirer@2.4.1)(graphql@16.9.0)(typescript@5.5.2) + '@graphql-codegen/typescript': + specifier: 4.0.9 + version: 4.0.9(graphql@16.9.0) + '@graphql-codegen/typescript-resolvers': + specifier: 4.2.1 + version: 4.2.1(graphql@16.9.0) '@graphql-tools/jest-transform': specifier: 2.0.0 version: 2.0.0(graphql@16.9.0) '@graphql-tools/merge': specifier: 9.0.4 version: 9.0.4(graphql@16.9.0) - '@graphql-tools/mock': - specifier: 9.0.3 - version: 9.0.3(graphql@16.9.0) - '@graphql-tools/schema': - specifier: 10.0.4 - version: 10.0.4(graphql@16.9.0) '@playwright/test': specifier: 1.45.0 version: 1.45.0 @@ -239,10 +248,24 @@ packages: subscriptions-transport-ws: optional: true + '@ardatan/relay-compiler@12.0.0': + resolution: {integrity: sha512-9anThAaj1dQr6IGmzBMcfzOQKTa5artjuPmw8NYK/fiGEMjADbSguBY2FMDykt+QhilR3wc9VA/3yVju7JHg7Q==} + hasBin: true + peerDependencies: + graphql: '*' + + '@ardatan/sync-fetch@0.0.1': + resolution: {integrity: sha512-xhlTqH0m31mnsG0tIP4ETgfSB6gXDaYYsUWTrlUV93fFQPI9dd8hE0Ot6MHLCtqgB32hwJAC3YZMWlXZw7AleA==} + engines: {node: '>=14'} + '@babel/code-frame@7.24.6': resolution: {integrity: sha512-ZJhac6FkEd1yhG2AHOmfcXG4ceoLltoCVJjN5XsWN9BifBQr+cHJbWi0h68HZuSORq+3WtJ2z0hwF2NG1b5kcA==} engines: {node: '>=6.9.0'} + '@babel/code-frame@7.24.7': + resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} + engines: {node: '>=6.9.0'} + '@babel/compat-data@7.24.6': resolution: {integrity: sha512-aC2DGhBq5eEdyXWqrDInSqQjO0k8xtPRf5YylULqx8MCd6jBtzqfta/3ETMRpuKIc5hyswfO80ObyA1MvkCcUQ==} engines: {node: '>=6.9.0'} @@ -251,6 +274,10 @@ packages: resolution: {integrity: sha512-tVQRucExLQ02Boi4vdPp49svNGcfL2GhdTCT9aldhXgCJVAI21EtRfBettiuLUwce/7r6bFdgs6JFkcdTiFttA==} engines: {node: '>=6.9.0'} + '@babel/generator@7.24.10': + resolution: {integrity: sha512-o9HBZL1G2129luEUlG1hB4N/nlYNWHnpwlND9eOMclRqqu1YDy2sSYVCFUZwl8I1Gxh+QSRrP2vD7EpUmFVXxg==} + engines: {node: '>=6.9.0'} + '@babel/generator@7.24.5': resolution: {integrity: sha512-x32i4hEXvr+iI0NEoEfDKzlemF8AmtOP8CcrRaEcpzysWuoEb1KknpcvMsHKPONoKZiDuItklgWhB18xEhr9PA==} engines: {node: '>=6.9.0'} @@ -259,6 +286,10 @@ packages: resolution: {integrity: sha512-DitEzDfOMnd13kZnDqns1ccmftwJTS9DMkyn9pYTxulS7bZxUxpMly3Nf23QQ6NwA4UB8lAqjbqWtyvElEMAkg==} engines: {node: '>=6.9.0'} + '@babel/helper-annotate-as-pure@7.24.7': + resolution: {integrity: sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==} + engines: {node: '>=6.9.0'} + '@babel/helper-builder-binary-assignment-operator-visitor@7.24.6': resolution: {integrity: sha512-+wnfqc5uHiMYtvRX7qu80Toef8BXeh4HHR1SPeonGb1SKPniNEd4a/nlaJJMv/OIEYvIVavvo0yR7u10Gqz0Iw==} engines: {node: '>=6.9.0'} @@ -288,14 +319,26 @@ packages: resolution: {integrity: sha512-Y50Cg3k0LKLMjxdPjIl40SdJgMB85iXn27Vk/qbHZCFx/o5XO3PSnpi675h1KEmmDb6OFArfd5SCQEQ5Q4H88g==} engines: {node: '>=6.9.0'} + '@babel/helper-environment-visitor@7.24.7': + resolution: {integrity: sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==} + engines: {node: '>=6.9.0'} + '@babel/helper-function-name@7.24.6': resolution: {integrity: sha512-xpeLqeeRkbxhnYimfr2PC+iA0Q7ljX/d1eZ9/inYbmfG2jpl8Lu3DyXvpOAnrS5kxkfOWJjioIMQsaMBXFI05w==} engines: {node: '>=6.9.0'} + '@babel/helper-function-name@7.24.7': + resolution: {integrity: sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==} + engines: {node: '>=6.9.0'} + '@babel/helper-hoist-variables@7.24.6': resolution: {integrity: sha512-SF/EMrC3OD7dSta1bLJIlrsVxwtd0UpjRJqLno6125epQMJ/kyFmpTT4pbvPbdQHzCHg+biQ7Syo8lnDtbR+uA==} engines: {node: '>=6.9.0'} + '@babel/helper-hoist-variables@7.24.7': + resolution: {integrity: sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==} + engines: {node: '>=6.9.0'} + '@babel/helper-member-expression-to-functions@7.24.6': resolution: {integrity: sha512-OTsCufZTxDUsv2/eDXanw/mUZHWOxSbEmC3pP8cgjcy5rgeVPWWMStnv274DV60JtHxTk0adT0QrCzC4M9NWGg==} engines: {node: '>=6.9.0'} @@ -304,6 +347,10 @@ packages: resolution: {integrity: sha512-a26dmxFJBF62rRO9mmpgrfTLsAuyHk4e1hKTUkD/fcMfynt8gvEKwQPQDVxWhca8dHoDck+55DFt42zV0QMw5g==} engines: {node: '>=6.9.0'} + '@babel/helper-module-imports@7.24.7': + resolution: {integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==} + engines: {node: '>=6.9.0'} + '@babel/helper-module-transforms@7.24.6': resolution: {integrity: sha512-Y/YMPm83mV2HJTbX1Qh2sjgjqcacvOlhbzdCCsSlblOKjSYmQqEbO6rUniWQyRo9ncyfjT8hnUjlG06RXDEmcA==} engines: {node: '>=6.9.0'} @@ -342,14 +389,26 @@ packages: resolution: {integrity: sha512-CvLSkwXGWnYlF9+J3iZUvwgAxKiYzK3BWuo+mLzD/MDGOZDj7Gq8+hqaOkMxmJwmlv0iu86uH5fdADd9Hxkymw==} engines: {node: '>=6.9.0'} + '@babel/helper-split-export-declaration@7.24.7': + resolution: {integrity: sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==} + engines: {node: '>=6.9.0'} + '@babel/helper-string-parser@7.24.6': resolution: {integrity: sha512-WdJjwMEkmBicq5T9fm/cHND3+UlFa2Yj8ALLgmoSQAJZysYbBjw+azChSGPN4DSPLXOcooGRvDwZWMcF/mLO2Q==} engines: {node: '>=6.9.0'} + '@babel/helper-string-parser@7.24.8': + resolution: {integrity: sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==} + engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@7.24.6': resolution: {integrity: sha512-4yA7s865JHaqUdRbnaxarZREuPTHrjpDT+pXoAZ1yhyo6uFnIEpS8VMu16siFOHDpZNKYv5BObhsB//ycbICyw==} engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@7.24.7': + resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} + engines: {node: '>=6.9.0'} + '@babel/helper-validator-option@7.24.6': resolution: {integrity: sha512-Jktc8KkF3zIkePb48QO+IapbXlSapOW9S+ogZZkcO6bABgYAxtZcjZ/O005111YLf+j4M84uEgwYoidDkXbCkQ==} engines: {node: '>=6.9.0'} @@ -366,11 +425,20 @@ packages: resolution: {integrity: sha512-2YnuOp4HAk2BsBrJJvYCbItHx0zWscI1C3zgWkz+wDyD9I7GIVrfnLyrR4Y1VR+7p+chAEcrgRQYZAGIKMV7vQ==} engines: {node: '>=6.9.0'} + '@babel/highlight@7.24.7': + resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} + engines: {node: '>=6.9.0'} + '@babel/parser@7.24.6': resolution: {integrity: sha512-eNZXdfU35nJC2h24RznROuOpO94h6x8sg9ju0tT9biNtLZ2vuP8SduLqqV+/8+cebSLV9SJEAN5Z3zQbJG/M+Q==} engines: {node: '>=6.0.0'} hasBin: true + '@babel/parser@7.24.8': + resolution: {integrity: sha512-WzfbgXOkGzZiXXCqk43kKwZjzwx4oulxZi3nq2TYL9mOjQv6kYwul9mz6ID36njuL7Xkp6nJEfok848Zj10j/w==} + engines: {node: '>=6.0.0'} + hasBin: true + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.24.6': resolution: {integrity: sha512-bYndrJ6Ph6Ar+GaB5VAc0JPoP80bQCm4qon6JEzXfRl5QZyQ8Ur1K6k7htxWmPA5z+k7JQvaMUrtXlqclWYzKw==} engines: {node: '>=6.9.0'} @@ -395,6 +463,20 @@ packages: peerDependencies: '@babel/core': ^7.0.0 + '@babel/plugin-proposal-class-properties@7.18.6': + resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==} + engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead. + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-proposal-object-rest-spread@7.20.7': + resolution: {integrity: sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==} + engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead. + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2': resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} engines: {node: '>=6.9.0'} @@ -466,6 +548,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-jsx@7.24.7': + resolution: {integrity: sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-logical-assignment-operators@7.10.4': resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: @@ -748,6 +836,18 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-react-display-name@7.24.7': + resolution: {integrity: sha512-H/Snz9PFxKsS1JLI4dJLtnJgCJRoo0AUm3chP6NYr+9En1JMKloheEiLIhlp5MDVznWo+H3AAC1Mc8lmUEpsgg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-react-jsx@7.24.7': + resolution: {integrity: sha512-+Dj06GDZEFRYvclU6k4bme55GKBEWUmByM/eoKuqg4zTNQHiApWRhQph5fxQB2wAEFvRzL1tOEj1RJ19wJrhoA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-regenerator@7.24.6': resolution: {integrity: sha512-SMDxO95I8WXRtXhTAc8t/NFQUT7VYbIWwJCJgEli9ml4MhqUMh4S6hxgH6SmAC3eAQNWCDJFxcFeEt9w2sDdXg==} engines: {node: '>=6.9.0'} @@ -869,14 +969,26 @@ packages: resolution: {integrity: sha512-3vgazJlLwNXi9jhrR1ef8qiB65L1RK90+lEQwv4OxveHnqC3BfmnHdgySwRLzf6akhlOYenT+b7AfWq+a//AHw==} engines: {node: '>=6.9.0'} + '@babel/template@7.24.7': + resolution: {integrity: sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==} + engines: {node: '>=6.9.0'} + '@babel/traverse@7.24.5': resolution: {integrity: sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA==} engines: {node: '>=6.9.0'} + '@babel/traverse@7.24.8': + resolution: {integrity: sha512-t0P1xxAPzEDcEPmjprAQq19NWum4K0EQPjMwZQZbHt+GiZqvjCHjj755Weq1YRPVzBI+3zSfvScfpnuIecVFJQ==} + engines: {node: '>=6.9.0'} + '@babel/types@7.24.6': resolution: {integrity: sha512-WaMsgi6Q8zMgMth93GvWPXkhAIEobfsIkLTacoVZoK1J0CevIPGYY2Vo5YvJGqyHqXM6P4ppOYGsIRU8MM9pFQ==} engines: {node: '>=6.9.0'} + '@babel/types@7.24.9': + resolution: {integrity: sha512-xm8XrMKz0IlUdocVbYJe0Z9xEgidU7msskG8BbhnTPK/HZ2z/7FP7ykqPgrUH+C+r414mNfNWam1f2vqOjqjYQ==} + engines: {node: '>=6.9.0'} + '@base2/pretty-print-object@1.0.1': resolution: {integrity: sha512-4iri8i1AqYHJE2DstZYkyEprg6Pq6sKx3xn5FpySk9sNhH7qN2LLlHJCfDTZRILNwQNPD7mATWM0TBui7uC1pA==} @@ -1392,26 +1504,187 @@ packages: resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@graphql-codegen/add@5.0.3': + resolution: {integrity: sha512-SxXPmramkth8XtBlAHu4H4jYcYXM/o3p01+psU+0NADQowA8jtYkK6MW5rV6T+CxkEaNZItfSmZRPgIuypcqnA==} + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + + '@graphql-codegen/cli@5.0.2': + resolution: {integrity: sha512-MBIaFqDiLKuO4ojN6xxG9/xL9wmfD3ZjZ7RsPjwQnSHBCUXnEkdKvX+JVpx87Pq29Ycn8wTJUguXnTZ7Di0Mlw==} + hasBin: true + peerDependencies: + '@parcel/watcher': ^2.1.0 + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + peerDependenciesMeta: + '@parcel/watcher': + optional: true + + '@graphql-codegen/client-preset@4.3.2': + resolution: {integrity: sha512-42jHyG6u2uFDIVNvzue8zR529aPT16EYIJQmvMk8XuYHo3PneQVlWmQ3j2fBy+RuWCBzpJKPKm7IGSKiw19nmg==} + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + + '@graphql-codegen/core@4.0.2': + resolution: {integrity: sha512-IZbpkhwVqgizcjNiaVzNAzm/xbWT6YnGgeOLwVjm4KbJn3V2jchVtuzHH09G5/WkkLSk2wgbXNdwjM41JxO6Eg==} + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + + '@graphql-codegen/gql-tag-operations@4.0.9': + resolution: {integrity: sha512-lVgu1HClel896HqZAEjynatlU6eJrYOw+rh05DPgM150xvmb7Gz5TnRHA2vfwlDNIXDaToAIpz5RFfkjjnYM1Q==} + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + + '@graphql-codegen/plugin-helpers@5.0.4': + resolution: {integrity: sha512-MOIuHFNWUnFnqVmiXtrI+4UziMTYrcquljaI5f/T/Bc7oO7sXcfkAvgkNWEEi9xWreYwvuer3VHCuPI/lAFWbw==} + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + + '@graphql-codegen/schema-ast@4.1.0': + resolution: {integrity: sha512-kZVn0z+th9SvqxfKYgztA6PM7mhnSZaj4fiuBWvMTqA+QqQ9BBed6Pz41KuD/jr0gJtnlr2A4++/0VlpVbCTmQ==} + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + + '@graphql-codegen/typed-document-node@5.0.9': + resolution: {integrity: sha512-Wx6fyA4vpfIbfNTMiWUECGnjqzKkJdEbZHxVMIegiCBPzBYPAJV4mZZcildLAfm2FtZcgW4YKtFoTbnbXqPB3w==} + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + + '@graphql-codegen/typescript-operations@4.2.3': + resolution: {integrity: sha512-6z7avSSOr03l5SyKbeDs7MzRyGwnQFSCqQm8Om5wIuoIgXVu2gXRmcJAY/I7SLdAy9xbF4Sho7XNqieFM2CAFQ==} + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + + '@graphql-codegen/typescript-resolvers@4.2.1': + resolution: {integrity: sha512-q/ggqNSKNGG9bn49DdZrw2KokagDZmzl1EpxIfzmpHrPa3XaCLfxQuNNEUhqEXtJzQZtLfuYvGy1y+MrTU8WnA==} + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + + '@graphql-codegen/typescript@4.0.9': + resolution: {integrity: sha512-0O35DMR4d/ctuHL1Zo6mRUUzp0BoszKfeWsa6sCm/g70+S98+hEfTwZNDkQHylLxapiyjssF9uw/F+sXqejqLw==} + peerDependencies: + graphql: ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + + '@graphql-codegen/visitor-plugin-common@5.3.1': + resolution: {integrity: sha512-MktoBdNZhSmugiDjmFl1z6rEUUaqyxtFJYWnDilE7onkPgyw//O0M+TuPBJPBWdyV6J2ond0Hdqtq+rkghgSIQ==} + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + + '@graphql-tools/apollo-engine-loader@8.0.1': + resolution: {integrity: sha512-NaPeVjtrfbPXcl+MLQCJLWtqe2/E4bbAqcauEOQ+3sizw1Fc2CNmhHRF8a6W4D0ekvTRRXAMptXYgA2uConbrA==} + engines: {node: '>=16.0.0'} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@graphql-tools/batch-execute@9.0.4': + resolution: {integrity: sha512-kkebDLXgDrep5Y0gK1RN3DMUlLqNhg60OAz0lTCqrYeja6DshxLtLkj+zV4mVbBA4mQOEoBmw6g1LZs3dA84/w==} + engines: {node: '>=16.0.0'} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@graphql-tools/code-file-loader@8.1.2': + resolution: {integrity: sha512-GrLzwl1QV2PT4X4TEEfuTmZYzIZHLqoTGBjczdUzSqgCCcqwWzLB3qrJxFQfI8e5s1qZ1bhpsO9NoMn7tvpmyA==} + engines: {node: '>=16.0.0'} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@graphql-tools/delegate@10.0.16': + resolution: {integrity: sha512-no4jIdHsTrHzR6Vv1YlwbxFeBnHBwPhBpemvLVnQ7CHhAviwIUWkCOHs4Uyzc5GYuHFyKJOZEXqhOz+da3hR3A==} + engines: {node: '>=16.0.0'} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@graphql-tools/documents@1.0.1': + resolution: {integrity: sha512-aweoMH15wNJ8g7b2r4C4WRuJxZ0ca8HtNO54rkye/3duxTkW4fGBEutCx03jCIr5+a1l+4vFJNP859QnAVBVCA==} + engines: {node: '>=16.0.0'} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@graphql-tools/executor-graphql-ws@1.2.0': + resolution: {integrity: sha512-tSYC1QdrabWexLrYV0UI3uRGbde9WCY/bRhq6Jc+VXMZcfq6ea6pP5NEAVTfwbhUQ4xZvJABVVbKXtKb9uTg1w==} + engines: {node: '>=16.0.0'} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@graphql-tools/executor-http@1.1.5': + resolution: {integrity: sha512-ZAsVGUwafPc1GapLA1yoJuRx7ihpVdAv7JDHmlI2eHRQsJnMVQwcxHnjfUb/id9YAEBrP86/s4pgEoRyad3Zng==} + engines: {node: '>=16.0.0'} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@graphql-tools/executor-legacy-ws@1.1.0': + resolution: {integrity: sha512-k+6ZyiaAd8SmwuzbEOfA/LVkuI1nqidhoMw+CJ7c41QGOjSMzc0VS0UZbJyeitI0n7a+uP/Meln1wjzJ2ReDtQ==} + engines: {node: '>=16.0.0'} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + '@graphql-tools/executor@1.2.7': resolution: {integrity: sha512-oyIw69QA+PuS/g7ttZZeEpIPS5CCGiIYitGtNxaChuiK7NPb7FD1dwOEXyekQt9/2FOEqZoYNpRY0NFfx/tO9Q==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + '@graphql-tools/executor@1.3.0': + resolution: {integrity: sha512-e+rmEf/2EO4hDnbkO8mTS2FI+jGUNmYkSDKw5TgPVlO8VOKS+TXmJBK6E9v4Gc/39yVkZsffYfW/R8obJrA0mg==} + engines: {node: '>=16.0.0'} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@graphql-tools/git-loader@8.0.6': + resolution: {integrity: sha512-FQFO4H5wHAmHVyuUQrjvPE8re3qJXt50TWHuzrK3dEaief7JosmlnkLMDMbMBwtwITz9u1Wpl6doPhT2GwKtlw==} + engines: {node: '>=16.0.0'} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@graphql-tools/github-loader@8.0.1': + resolution: {integrity: sha512-W4dFLQJ5GtKGltvh/u1apWRFKBQOsDzFxO9cJkOYZj1VzHCpRF43uLST4VbCfWve+AwBqOuKr7YgkHoxpRMkcg==} + engines: {node: '>=16.0.0'} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@graphql-tools/graphql-file-loader@8.0.1': + resolution: {integrity: sha512-7gswMqWBabTSmqbaNyWSmRRpStWlcCkBc73E6NZNlh4YNuiyKOwbvSkOUYFOqFMfEL+cFsXgAvr87Vz4XrYSbA==} + engines: {node: '>=16.0.0'} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@graphql-tools/graphql-tag-pluck@8.3.1': + resolution: {integrity: sha512-ujits9tMqtWQQq4FI4+qnVPpJvSEn7ogKtyN/gfNT+ErIn6z1e4gyVGQpTK5sgAUXq1lW4gU/5fkFFC5/sL2rQ==} + engines: {node: '>=16.0.0'} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@graphql-tools/import@7.0.1': + resolution: {integrity: sha512-935uAjAS8UAeXThqHfYVr4HEAp6nHJ2sximZKO1RzUTq5WoALMAhhGARl0+ecm6X+cqNUwIChJbjtaa6P/ML0w==} + engines: {node: '>=16.0.0'} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + '@graphql-tools/jest-transform@2.0.0': resolution: {integrity: sha512-7dVVs7f9qlJp2l3CSpy+B1sbaWprNNy72/KTC6fp4k1lNtXYPP9g76D7HpNbgwvdUBRZfiPlOiztnwTcKCzUdA==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + '@graphql-tools/json-file-loader@8.0.1': + resolution: {integrity: sha512-lAy2VqxDAHjVyqeJonCP6TUemrpYdDuKt25a10X6zY2Yn3iFYGnuIDQ64cv3ytyGY6KPyPB+Kp+ZfOkNDG3FQA==} + engines: {node: '>=16.0.0'} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@graphql-tools/load@8.0.2': + resolution: {integrity: sha512-S+E/cmyVmJ3CuCNfDuNF2EyovTwdWfQScXv/2gmvJOti2rGD8jTt9GYVzXaxhblLivQR9sBUCNZu/w7j7aXUCA==} + engines: {node: '>=16.0.0'} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + '@graphql-tools/merge@9.0.4': resolution: {integrity: sha512-MivbDLUQ+4Q8G/Hp/9V72hbn810IJDEZQ57F01sHnlrrijyadibfVhaQfW/pNH+9T/l8ySZpaR/DpL5i+ruZ+g==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - '@graphql-tools/mock@9.0.3': - resolution: {integrity: sha512-wwVS7+q6R40CsagG1Iw7tY5RVCKDJrDV/39KeE1Ut6BwVJJ5GpJodWNKrso4LiI1/jCt3/yrlAcA/0IHdeJAPg==} + '@graphql-tools/mock@9.0.4': + resolution: {integrity: sha512-/pfrBoL6QkKBrJcaOZ/2FtfoAYmiQE+L6Up3hWbSWjg1XJfecjqptLTcM2Wf0dmHAFkjCK1k4QVNHMmGJ94IOA==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 @@ -1422,18 +1695,42 @@ packages: peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + '@graphql-tools/prisma-loader@8.0.4': + resolution: {integrity: sha512-hqKPlw8bOu/GRqtYr0+dINAI13HinTVYBDqhwGAPIFmLr5s+qKskzgCiwbsckdrb5LWVFmVZc+UXn80OGiyBzg==} + engines: {node: '>=16.0.0'} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@graphql-tools/relay-operation-optimizer@7.0.1': + resolution: {integrity: sha512-y0ZrQ/iyqWZlsS/xrJfSir3TbVYJTYmMOu4TaSz6F4FRDTQ3ie43BlKkhf04rC28pnUOS4BO9pDcAo1D30l5+A==} + engines: {node: '>=16.0.0'} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + '@graphql-tools/schema@10.0.4': resolution: {integrity: sha512-HuIwqbKxPaJujox25Ra4qwz0uQzlpsaBOzO6CVfzB/MemZdd+Gib8AIvfhQArK0YIN40aDran/yi+E5Xf0mQww==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + '@graphql-tools/url-loader@8.0.2': + resolution: {integrity: sha512-1dKp2K8UuFn7DFo1qX5c1cyazQv2h2ICwA9esHblEqCYrgf69Nk8N7SODmsfWg94OEaI74IqMoM12t7eIGwFzQ==} + engines: {node: '>=16.0.0'} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + '@graphql-tools/utils@10.2.1': resolution: {integrity: sha512-U8OMdkkEt3Vp3uYHU2pMc6mwId7axVAcSSmcqJcUmWNPqY2pfee5O655ybTI2kNPWAe58Zu6gLu4Oi4QT4BgWA==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + '@graphql-tools/utils@10.3.2': + resolution: {integrity: sha512-iaqOHS4f90KNADBHqVsRBjKpM6iSvsUg1q5GhWMK03loYLaDzftrEwcsl0OkSSnRhJvAsT7q4q3r3YzRoV0v1g==} + engines: {node: '>=16.0.0'} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + '@graphql-tools/webpack-loader-runtime@7.0.0': resolution: {integrity: sha512-E5Flr2NbuTH+sfiMY2HacLbczJEDmqfKC0haOsc24wN0hV3rJvvPiqYIROgILgwVSJPQIQ4cOf/XcRsatrGDvQ==} engines: {node: '>=16.0.0'} @@ -1446,6 +1743,12 @@ packages: peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + '@graphql-tools/wrap@10.0.5': + resolution: {integrity: sha512-Cbr5aYjr3HkwdPvetZp1cpDWTGdD1Owgsb3z/ClzhmrboiK86EnQDxDvOJiQkDCPWE9lNBwj8Y4HfxroY0D9DQ==} + engines: {node: '>=16.0.0'} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + '@graphql-typed-document-node/core@3.2.0': resolution: {integrity: sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==} peerDependencies: @@ -1601,6 +1904,9 @@ packages: '@jridgewell/trace-mapping@0.3.9': resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + '@kamilkisiela/fast-url-parser@1.1.4': + resolution: {integrity: sha512-gbkePEBupNydxCelHCESvFSFM8XPh1Zs/OAVRW/rKpEqPAl5PbOM90Si8mv9bvnR53uPD2s/FiRxdvSejpRJew==} + '@manypkg/find-root@1.1.0': resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==} @@ -1642,6 +1948,17 @@ packages: '@open-draft/until@2.1.0': resolution: {integrity: sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg==} + '@peculiar/asn1-schema@2.3.8': + resolution: {integrity: sha512-ULB1XqHKx1WBU/tTFIA+uARuRoBVZ4pNdOA878RDrRbBfBGcSzi5HBkdScC6ZbHn8z7L8gmKCgPC1LHRrP46tA==} + + '@peculiar/json-schema@1.1.12': + resolution: {integrity: sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w==} + engines: {node: '>=8.0.0'} + + '@peculiar/webcrypto@1.5.0': + resolution: {integrity: sha512-BRs5XUAwiyCDQMsVA9IDvDa7UBR9gAvPHgugOeGng3YN6vJ9JYonyDc0lNczErgtCWtucjR5N7VtaonboD/ezg==} + engines: {node: '>=10.12.0'} + '@pkgjs/parseargs@0.11.0': resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} @@ -2224,6 +2541,9 @@ packages: '@types/jest@29.5.12': resolution: {integrity: sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==} + '@types/js-yaml@4.0.9': + resolution: {integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==} + '@types/jsdom@20.0.1': resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==} @@ -2311,6 +2631,9 @@ packages: '@types/wrap-ansi@3.0.0': resolution: {integrity: sha512-ltIpx+kM7g/MLRZfkbL7EsCEjfzCcScLpkg37eXEtx5kmrAKBkTJwd1GIAjDSL8wTpM6Hzn5YO4pSb91BEwu1g==} + '@types/ws@8.5.11': + resolution: {integrity: sha512-4+q7P5h3SpJxaBft0Dzpbr6lmMaqh0Jr2tbhJZ/luAwvD7ohSCniYkwz/pLxuT2h0EOa6QADgJj1Ko+TzRfZ+w==} + '@types/yargs-parser@21.0.3': resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} @@ -2477,6 +2800,27 @@ packages: '@webassemblyjs/wast-printer@1.12.1': resolution: {integrity: sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==} + '@whatwg-node/events@0.0.3': + resolution: {integrity: sha512-IqnKIDWfXBJkvy/k6tzskWTc2NK3LcqHlb+KHGCrjOCH4jfQckRX0NAiIcC/vIqQkzLYw2r2CTSwAxcrtcD6lA==} + + '@whatwg-node/events@0.1.1': + resolution: {integrity: sha512-AyQEn5hIPV7Ze+xFoXVU3QTHXVbWPrzaOkxtENMPMuNL6VVHrp4hHfDt9nrQpjO7BgvuM95dMtkycX5M/DZR3w==} + engines: {node: '>=16.0.0'} + + '@whatwg-node/fetch@0.8.8': + resolution: {integrity: sha512-CdcjGC2vdKhc13KKxgsc6/616BQ7ooDIgPeTuAiE8qfCnS0mGzcfCOoZXypQSz73nxI+GWc7ZReIAVhxoE1KCg==} + + '@whatwg-node/fetch@0.9.18': + resolution: {integrity: sha512-hqoz6StCW+AjV/3N+vg0s1ah82ptdVUb9nH2ttj3UbySOXUvytWw2yqy8c1cKzyRk6mDD00G47qS3fZI9/gMjg==} + engines: {node: '>=16.0.0'} + + '@whatwg-node/node-fetch@0.3.6': + resolution: {integrity: sha512-w9wKgDO4C95qnXZRwZTfCmLWqyRnooGjcIwG0wADWjw9/HN0p7dtvtgSvItZtUyNteEvgTrd8QojNEqV6DAGTA==} + + '@whatwg-node/node-fetch@0.5.14': + resolution: {integrity: sha512-J/IQ0Hrb56sMPb3G42Wzrm9fu8+bHnb8lk7DkJ0XX7JCkSxvPEn1MmkLy7zntdbXs1gohYW42mDck0LzcjrMig==} + engines: {node: '>=16.0.0'} + '@wry/caches@1.0.1': resolution: {integrity: sha512-bXuaUNLVVkD20wcGBWRyo7j9N3TxePEWFZj2Y+r9OoUzfqmavM84+mFykRicNsBqatba5JLay1t48wxaXaWnlA==} engines: {node: '>=8'} @@ -2674,6 +3018,10 @@ packages: asn1@0.2.3: resolution: {integrity: sha512-6i37w/+EhlWlGUJff3T/Q8u1RGmP5wgbiwYnOnbOqvtrPxT63/sYFyP9RcpxtxGymtfA075IvmOnL7ycNOWl3w==} + asn1js@3.0.5: + resolution: {integrity: sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ==} + engines: {node: '>=12.0.0'} + assertion-error@1.1.0: resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} @@ -2685,6 +3033,10 @@ packages: resolution: {integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==} engines: {node: '>=4'} + astral-regex@2.0.0: + resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} + engines: {node: '>=8'} + async-limiter@1.0.1: resolution: {integrity: sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==} @@ -2700,6 +3052,10 @@ packages: asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + auto-bind@4.0.0: + resolution: {integrity: sha512-Hdw8qdNiqdJ8LqT0iK0sVzkFbzg6fhnQqqfWhBDxcHZvU75+B+ayzTy8x+k5Ix0Y92XOhOUlx74ps+bA6BeYMQ==} + engines: {node: '>=8'} + autoprefixer@10.4.19: resolution: {integrity: sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==} engines: {node: ^10 || ^12 || >=14} @@ -2754,11 +3110,19 @@ packages: babel-plugin-relay@17.0.0: resolution: {integrity: sha512-aBIEDp6jFOAO+CD+GGKv4/WOQ7cnS6hZysJI0dFbLRQXZ6XQar0lytxQ4zuqPU0RpGnUeN5htK3NTewu2TZ53A==} + babel-plugin-syntax-trailing-function-commas@7.0.0-beta.0: + resolution: {integrity: sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ==} + babel-preset-current-node-syntax@1.0.1: resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} peerDependencies: '@babel/core': ^7.0.0 + babel-preset-fbjs@3.4.0: + resolution: {integrity: sha512-9ywCsCvo1ojrw0b+XYk7aFvTH6D9064t0RIL1rtMf3nsa02Xw41MS7sZw216Im35xj/UY0PDBQsa1brUDDF1Ow==} + peerDependencies: + '@babel/core': ^7.0.0 + babel-preset-jest@29.6.3: resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -2847,6 +3211,10 @@ packages: peerDependencies: esbuild: '>=0.18' + busboy@1.6.0: + resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} + engines: {node: '>=10.16.0'} + bytes@3.0.0: resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} engines: {node: '>= 0.8'} @@ -2883,6 +3251,9 @@ packages: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} + camel-case@4.1.2: + resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} + camelcase-css@2.0.1: resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} engines: {node: '>= 6'} @@ -2898,6 +3269,9 @@ packages: caniuse-lite@1.0.30001620: resolution: {integrity: sha512-WJvYsOjd1/BYUY6SNGUosK9DUidBPDTnOARHp3fSmFO1ekdxaY6nKRttEVrfMmYi80ctS0kz1wiWmm14fVc3ew==} + capital-case@1.0.4: + resolution: {integrity: sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==} + chai@4.4.1: resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==} engines: {node: '>=4'} @@ -2926,6 +3300,12 @@ packages: resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + change-case-all@1.0.15: + resolution: {integrity: sha512-3+GIFhk3sNuvFAJKU46o26OdzudQlPNBCu1ZQi3cMeMHhty1bhDxu2WrEilVNYaGvqUtR1VSigFcJOiS13dRhQ==} + + change-case@4.1.2: + resolution: {integrity: sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==} + char-regex@1.0.2: resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} engines: {node: '>=10'} @@ -2978,6 +3358,14 @@ packages: resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} engines: {node: '>=6'} + cli-truncate@2.1.0: + resolution: {integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==} + engines: {node: '>=8'} + + cli-width@3.0.0: + resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} + engines: {node: '>= 10'} + cli-width@4.1.0: resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==} engines: {node: '>= 12'} @@ -3017,6 +3405,9 @@ packages: color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + colorette@2.0.20: + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + combined-stream@1.0.8: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} @@ -3042,6 +3433,10 @@ packages: commands-events@1.0.4: resolution: {integrity: sha512-HdP/+1Anoc7z+6L2h7nd4Imz54+LW+BjMGt30riBZrZ3ZeP/8el93wD8Jj8ltAaqVslqNgjX6qlhSBJwuDSmpg==} + common-tags@1.8.2: + resolution: {integrity: sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==} + engines: {node: '>=4.0.0'} + commondir@1.0.1: resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} @@ -3068,6 +3463,9 @@ packages: resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} engines: {node: ^14.18.0 || >=16.10.0} + constant-case@3.0.4: + resolution: {integrity: sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==} + content-disposition@0.5.2: resolution: {integrity: sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==} engines: {node: '>= 0.6'} @@ -3131,6 +3529,15 @@ packages: resolution: {integrity: sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==} engines: {node: '>=8'} + cosmiconfig@8.3.6: + resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} + engines: {node: '>=14'} + peerDependencies: + typescript: '>=4.9.5' + peerDependenciesMeta: + typescript: + optional: true + create-jest@29.7.0: resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -3212,6 +3619,9 @@ packages: dataloader@1.4.0: resolution: {integrity: sha512-68s5jYdlvasItOJnCuI2Q9s4q98g0pCyL3HrcKJu8KNugUl8ahgmZYg38ysLTgQjjXX3H8CJLkAvWrclWfcalw==} + dataloader@2.2.2: + resolution: {integrity: sha512-8YnDaaf7N3k/q5HnTJVuzSyLETjoZjVmHc4AeKAzOvKHEFQKcn64OKBfzHYtE9zGjctNM7V9I0MfnUVLpi7M5g==} + datasette@1.0.1: resolution: {integrity: sha512-aJdlCBToEJUP4M57r67r4V6tltwGKa3qetnjpBtXYIlqbX9tM9jsoDMxb4xd9AGjpp3282oHRmqI5Z8TVAU0Mg==} @@ -3219,6 +3629,9 @@ packages: resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==} engines: {node: '>=0.11'} + debounce@1.2.1: + resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==} + debug@2.6.9: resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} peerDependencies: @@ -3313,6 +3726,10 @@ packages: resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} engines: {node: '>= 0.8'} + dependency-graph@0.11.0: + resolution: {integrity: sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==} + engines: {node: '>= 0.6.0'} + dequal@2.0.3: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} engines: {node: '>=6'} @@ -3383,6 +3800,9 @@ packages: domutils@1.7.0: resolution: {integrity: sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==} + dot-case@3.0.4: + resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} + dotenv-expand@10.0.0: resolution: {integrity: sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A==} engines: {node: '>=12'} @@ -3646,6 +4066,13 @@ packages: resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} engines: {node: '>=4'} + extract-files@11.0.0: + resolution: {integrity: sha512-FuoE1qtbJ4bBVvv94CC7s0oTnKUGvQs+Rjf1L2SJFfS+HTVVjhPFtehPdQ0JiGPqVNfSSZvL5yzHHQq2Z4WNhQ==} + engines: {node: ^12.20 || >= 14.13} + + fast-decode-uri-component@1.0.1: + resolution: {integrity: sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==} + fast-deep-equal@2.0.1: resolution: {integrity: sha512-bCK/2Z4zLidyB4ReuIsvALH6w31YfAQDmXMqMx6FyfHqvBxtjC0eRumeSu4Bs3XtXwpyIywtSTrVT99BxY1f9w==} @@ -3662,6 +4089,12 @@ packages: fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + fast-querystring@1.1.2: + resolution: {integrity: sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg==} + + fast-url-parser@1.1.3: + resolution: {integrity: sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==} + fastq@1.17.1: resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} @@ -3677,6 +4110,10 @@ packages: fd-package-json@1.2.0: resolution: {integrity: sha512-45LSPmWf+gC5tdCQMNH4s9Sr00bIkiD9aN7dc5hqkrEw1geRYyDQS1v1oMHAW3ysfxfndqGsrDREHHjNNbKUfA==} + figures@3.2.0: + resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} + engines: {node: '>=8'} + file-entry-cache@6.0.1: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} @@ -3944,12 +4381,33 @@ packages: graphemer@1.4.0: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + graphql-config@5.0.3: + resolution: {integrity: sha512-BNGZaoxIBkv9yy6Y7omvsaBUHOzfFcII3UN++tpH8MGOKFPFkCPZuwx09ggANMt8FgyWP1Od8SWPmrUEZca4NQ==} + engines: {node: '>= 16.0.0'} + peerDependencies: + cosmiconfig-toml-loader: ^1.0.0 + graphql: ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + peerDependenciesMeta: + cosmiconfig-toml-loader: + optional: true + + graphql-request@6.1.0: + resolution: {integrity: sha512-p+XPfS4q7aIpKVcgmnZKhMNqhltk20hfXtkaIkTfjjmiKMJ5xrt5c743cL03y/K7y1rg3WrIC49xGiEQ4mxdNw==} + peerDependencies: + graphql: 14 - 16 + graphql-tag@2.12.6: resolution: {integrity: sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==} engines: {node: '>=10'} peerDependencies: graphql: ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + graphql-ws@5.16.0: + resolution: {integrity: sha512-Ju2RCU2dQMgSKtArPbEtsK5gNLnsQyTNIo/T7cZNp96niC1x0KdJNZV0TIoilceBPQwfb5itrGl8pkFeOUMl4A==} + engines: {node: '>=10'} + peerDependencies: + graphql: '>=0.11 <=16' + graphql@15.3.0: resolution: {integrity: sha512-GTCJtzJmkFLWRfFJuoo9RWWa/FfamUHgiFosxi/X1Ani4AVWbeyBenZTNX6dM+7WSbbFfTo/25eh0LLkwHMw2w==} engines: {node: '>= 10.x'} @@ -4013,6 +4471,9 @@ packages: resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} hasBin: true + header-case@2.0.4: + resolution: {integrity: sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==} + headers-polyfill@4.0.3: resolution: {integrity: sha512-IScLbePpkvO846sIwOtOTDjutRMWdXdJmXdMvk6gCBHxFO8d+QKOQedyZSxFTTFYRSmlgSTDtXqqq4pcenBXLQ==} @@ -4104,6 +4565,10 @@ packages: resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} engines: {node: '>= 4'} + immutable@3.7.6: + resolution: {integrity: sha512-AizQPcaofEtO11RZhPPHBOJRdo/20MKQF9mBLnVkBoyHi1/zXK8fzVdnEpSV9gxqtnh6Qomfp3F0xT5qP/vThw==} + engines: {node: '>=0.8.0'} + import-fresh@2.0.0: resolution: {integrity: sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==} engines: {node: '>=4'} @@ -4112,6 +4577,10 @@ packages: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} engines: {node: '>=6'} + import-from@4.0.0: + resolution: {integrity: sha512-P9J71vT5nLlDeV8FHs5nNxaLbrpfAV5cF5srvbZfpwpcJoM/xZR3hiv+q+SAnuSmuGbXMWud063iIMx/V/EWZQ==} + engines: {node: '>=12.2'} + import-local@3.1.0: resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==} engines: {node: '>=8'} @@ -4138,6 +4607,10 @@ packages: ini@1.3.8: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + inquirer@8.2.6: + resolution: {integrity: sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==} + engines: {node: '>=12.0.0'} + internal-slot@1.0.7: resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} engines: {node: '>= 0.4'} @@ -4153,6 +4626,10 @@ packages: resolution: {integrity: sha512-/51/TKE88Lmm7Gc4/8btclNXWS+g50wXhYJq8HWIBAGUBnoAdRu1aXeh364t/O7wXDAcTJDP8PNuNKWUDWie+A==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + is-absolute@1.0.0: + resolution: {integrity: sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==} + engines: {node: '>=0.10.0'} + is-arguments@1.1.1: resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} engines: {node: '>= 0.4'} @@ -4218,6 +4695,9 @@ packages: resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} engines: {node: '>=8'} + is-lower-case@2.0.2: + resolution: {integrity: sha512-bVcMJy4X5Og6VZfdOZstSexlEy20Sr0k/p/b2IlQJlfdKAQuMpiv5w2Ccxb8sKdRUNAG1PnHVHjFSdRDVS6NlQ==} + is-negative-zero@2.0.3: resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} engines: {node: '>= 0.4'} @@ -4260,6 +4740,10 @@ packages: resolution: {integrity: sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==} engines: {node: '>=0.10.0'} + is-relative@1.0.0: + resolution: {integrity: sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==} + engines: {node: '>=0.10.0'} + is-shared-array-buffer@1.0.3: resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} engines: {node: '>= 0.4'} @@ -4291,10 +4775,17 @@ packages: is-typedarray@1.0.0: resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} + is-unc-path@1.0.0: + resolution: {integrity: sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==} + engines: {node: '>=0.10.0'} + is-unicode-supported@0.1.0: resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} engines: {node: '>=10'} + is-upper-case@2.0.2: + resolution: {integrity: sha512-44pxmxAvnnAOwBg4tHPnkfvgjPwbc5QIsSstNU+YcJ1ovxVzCWpSGosPJOZh/a1tdl81fbgnLc9LLv+x2ywbPQ==} + is-weakref@1.0.2: resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} @@ -4319,6 +4810,11 @@ packages: resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} engines: {node: '>=0.10.0'} + isomorphic-ws@5.0.0: + resolution: {integrity: sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw==} + peerDependencies: + ws: '*' + istanbul-lib-coverage@3.2.2: resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} engines: {node: '>=8'} @@ -4537,6 +5033,9 @@ packages: joi@17.13.1: resolution: {integrity: sha512-vaBlIKCyo4FCUtCm7Eu4QZd/q02bWcxfUO6YSXAZOWF6gzcLBeba8kwotUdYJjDLW8Cz8RywsSOqiNJZW0mNvg==} + jose@5.6.3: + resolution: {integrity: sha512-1Jh//hEEwMhNYPDDLwXHa2ePWgWiFNNUadVmguAAw2IJ6sj9mNxV5tGXJNqlMkJAybF6Lgw1mISDxTePP/187g==} + joycon@3.1.1: resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} engines: {node: '>=10'} @@ -4606,6 +5105,10 @@ packages: json-stable-stringify-without-jsonify@1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + json-to-pretty-yaml@1.2.2: + resolution: {integrity: sha512-rvm6hunfCcqegwYaG5T4yKJWxc9FXFgBVrcTZ4XfSVRwa5HA/Xs+vB/Eo9treYYHCeNM0nrSUr82V/M31Urc7A==} + engines: {node: '>= 0.2.0'} + json5@2.2.3: resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} engines: {node: '>=6'} @@ -4667,6 +5170,15 @@ packages: lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + listr2@4.0.5: + resolution: {integrity: sha512-juGHV1doQdpNT3GSTs9IUN43QJb7KHdF9uqg7Vufs/tG9VTzpFphqF4pm/ICdAABGQxsyNn9CiYA3StkI6jpwA==} + engines: {node: '>=12'} + peerDependencies: + enquirer: '>= 2.3.0 < 3' + peerDependenciesMeta: + enquirer: + optional: true + load-tsconfig@0.2.5: resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -4743,6 +5255,10 @@ packages: resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} engines: {node: '>=10'} + log-update@4.0.0: + resolution: {integrity: sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==} + engines: {node: '>=10'} + loose-envify@1.4.0: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true @@ -4753,6 +5269,12 @@ packages: loupe@3.1.1: resolution: {integrity: sha512-edNu/8D5MKVfGVFRhFf8aAxiTM6Wumfz5XsaatSxlD3w4R1d/WEKUTydCdPGbl9K7QG/Ca3GnDV2sIKIpXRQcw==} + lower-case-first@2.0.2: + resolution: {integrity: sha512-EVm/rR94FJTZi3zefZ82fLWab+GX14LJN4HrWBcuo6Evmsl9hEfnqxgcHCKb9q+mNf6EVdsjx/qucYFIIB84pg==} + + lower-case@2.0.2: + resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} + lru-cache@10.2.2: resolution: {integrity: sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==} engines: {node: 14 || >=16.14} @@ -4796,6 +5318,10 @@ packages: makeerror@1.0.12: resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} + map-cache@0.2.2: + resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==} + engines: {node: '>=0.10.0'} + map-or-similar@1.5.0: resolution: {integrity: sha512-0aF7ZmVon1igznGI4VS30yugpduQW3y3GkcgGJOp7d8x8QrizhigUxjI/m2UojsXXto+jLAH3KSz+xOJTiORjg==} @@ -4822,6 +5348,15 @@ packages: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} + meros@1.3.0: + resolution: {integrity: sha512-2BNGOimxEz5hmjUG2FwoxCt5HN7BXdaWyFqEwxPTrJzVdABtrL4TiHTcsWSFAxPQ/tOnEaQEJh3qWq71QRMY+w==} + engines: {node: '>=13'} + peerDependencies: + '@types/node': '>=13' + peerDependenciesMeta: + '@types/node': + optional: true + methods@1.1.2: resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} engines: {node: '>= 0.6'} @@ -4862,6 +5397,10 @@ packages: minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + minimatch@4.2.3: + resolution: {integrity: sha512-lIUdtK5hdofgCTu3aT0sOaHsYR37viUuIc0rwnnDXImbwFRcumyLMeZaM0t0I/fgxS6s6JMfu0rLD1Wz9pv1ng==} + engines: {node: '>=10'} + minimatch@5.1.6: resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} engines: {node: '>=10'} @@ -4933,6 +5472,9 @@ packages: typescript: optional: true + mute-stream@0.0.8: + resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} + mute-stream@1.0.0: resolution: {integrity: sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -4955,6 +5497,9 @@ packages: neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + no-case@3.0.4: + resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} + nocache@2.0.0: resolution: {integrity: sha512-YdKcy2x0dDwOh+8BEuHvA+mnOKAhmMQDgKBOCUGaLpewdmsRYguYZSom3yA+/OrE61O/q+NMQANnun65xpI1Hw==} @@ -4991,6 +5536,10 @@ packages: resolution: {integrity: sha512-QDf6R8VXF56QVe1boek8an/Rb3rSNaxoFWb7Elpsv2m1+Noua1yy0F1FpKpK5VluF8oymWM4w764A4KsYL4pDg==} engines: {node: '>=0.1.97'} + normalize-path@2.1.1: + resolution: {integrity: sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==} + engines: {node: '>=0.10.0'} + normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} @@ -5133,6 +5682,10 @@ packages: resolution: {integrity: sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==} engines: {node: '>=8'} + p-map@4.0.0: + resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} + engines: {node: '>=10'} + p-try@2.2.0: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} @@ -5141,10 +5694,17 @@ packages: resolution: {integrity: sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==} engines: {node: '>=8'} + param-case@3.0.4: + resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} + parent-module@1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} + parse-filepath@1.0.2: + resolution: {integrity: sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==} + engines: {node: '>=0.8'} + parse-json@4.0.0: resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} engines: {node: '>=4'} @@ -5167,6 +5727,12 @@ packages: partof@1.0.0: resolution: {integrity: sha512-+TXdhKCySpJDynCxgAPoGVyAkiK3QPusQ63/BdU5t68QcYzyU6zkP/T7F3gkMQBVUYqdWEADKa6Kx5zg8QIKrg==} + pascal-case@3.1.2: + resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} + + path-case@3.0.4: + resolution: {integrity: sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==} + path-exists@3.0.0: resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} engines: {node: '>=4'} @@ -5190,6 +5756,14 @@ packages: path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + path-root-regex@0.1.2: + resolution: {integrity: sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==} + engines: {node: '>=0.10.0'} + + path-root@0.1.1: + resolution: {integrity: sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==} + engines: {node: '>=0.10.0'} + path-scurry@1.11.1: resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} engines: {node: '>=16 || 14 >=14.18'} @@ -5399,6 +5973,9 @@ packages: psl@1.9.0: resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} + punycode@1.4.1: + resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==} + punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} @@ -5406,6 +5983,13 @@ packages: pure-rand@6.1.0: resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==} + pvtsutils@1.3.5: + resolution: {integrity: sha512-ARvb14YB9Nm2Xi6nBq1ZX6dAM0FsJnuk+31aUp4TrcZEdKUlSqOqsxJHUPJDNE3qiIp+iUPEIeR6Je/tgV7zsA==} + + pvutils@1.1.3: + resolution: {integrity: sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ==} + engines: {node: '>=6.0.0'} + qs@6.11.0: resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} engines: {node: '>=0.6'} @@ -5567,6 +6151,9 @@ packages: resolution: {integrity: sha512-U2e/R0o40HJOQ13pwkvToqWqk6J3ASMyHmcxixVMZKfcwcpsTTOiKob215ZRh+4bqPwkNy97+V9CuzJ5hJmGtw==} hasBin: true + relay-runtime@12.0.0: + resolution: {integrity: sha512-QU6JKr1tMsry22DXNy9Whsq5rmvwr3LSZiiWV/9+DFpuTWvp+WFhobWMc8TC4OjKFfNhEZy7mOiqUAn5atQtug==} + relay-runtime@17.0.0: resolution: {integrity: sha512-7b2R3G3DP7VHq7/1ltwQfYn3KkTHIB2NNt3KijIZoNQ73avwpOXBEL0MelSXwq8L+K8lcgAW5VAT7o0LUhnJPQ==} @@ -5574,6 +6161,15 @@ packages: resolution: {integrity: sha512-gUAyHVHPPC5wdqX/LG4LWtRYtgjxyX78oanFNTMMyFEfOqdC54s3eE82imuWKbOeqYht2CrNf64Qb8vgmmtZGA==} engines: {node: '>=4'} + remedial@1.0.8: + resolution: {integrity: sha512-/62tYiOe6DzS5BqVsNpH/nkGlX45C/Sp6V+NtiN6JQNS1Viay7cWkazmRkrQrdFj2eshDe96SIQNIoMxqhzBOg==} + + remove-trailing-separator@1.1.0: + resolution: {integrity: sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==} + + remove-trailing-spaces@1.0.8: + resolution: {integrity: sha512-O3vsMYfWighyFbTd8hk8VaSj9UAGENxAtX+//ugIst2RMk5e03h6RoIS+0ylsFxY1gvmPuAY/PO4It+gPEeySA==} + require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} @@ -5632,6 +6228,9 @@ packages: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + rfdc@1.4.1: + resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} + rimraf@2.6.3: resolution: {integrity: sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==} deprecated: Rimraf versions prior to v4 are no longer supported @@ -5653,6 +6252,10 @@ packages: rrweb-cssom@0.7.0: resolution: {integrity: sha512-KlSv0pm9kgQSRxXEMgtivPJ4h826YHsuob8pSHcfSZsSXGtvpEAie8S0AnXuObEJ7nhikOb4ahwxDm0H2yW17g==} + run-async@2.4.1: + resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} + engines: {node: '>=0.12.0'} + run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} @@ -5687,6 +6290,9 @@ packages: resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} engines: {node: '>= 10.13.0'} + scuid@1.1.0: + resolution: {integrity: sha512-MuCAyrGZcTLfQoH2XoBlQ8C6bzwN88XT/0slOGz0pn8+gIP85BOAfYa44ZXQUTOwRwPU0QvgU+V+OSajl/59Xg==} + secure-compare@3.0.1: resolution: {integrity: sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw==} @@ -5711,6 +6317,9 @@ packages: resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} engines: {node: '>= 0.8.0'} + sentence-case@3.0.4: + resolution: {integrity: sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==} + serialize-javascript@6.0.2: resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} @@ -5782,6 +6391,9 @@ packages: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} + signedsource@1.0.0: + resolution: {integrity: sha512-6+eerH9fEnNmi/hyM1DXcRK3pWdoMQtlkQ+ns0ntzunjKqp5i3sKCc80ym8Fib3iaYhdJUOPdhlJWj1tvge2Ww==} + sisteransi@1.0.5: resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} @@ -5793,6 +6405,17 @@ packages: resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} engines: {node: '>=14.16'} + slice-ansi@3.0.0: + resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==} + engines: {node: '>=8'} + + slice-ansi@4.0.0: + resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} + engines: {node: '>=10'} + + snake-case@3.0.4: + resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} + source-map-js@1.2.0: resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} engines: {node: '>=0.10.0'} @@ -5830,6 +6453,9 @@ packages: split2@3.0.0: resolution: {integrity: sha512-Cp7G+nUfKJyHCrAI8kze3Q00PFGEG1pMgrAlTFlDbn+GW24evSZHJuMl+iUJx1w/NTRDeBiTgvwnf6YOt94FMw==} + sponge-case@1.0.1: + resolution: {integrity: sha512-dblb9Et4DAtiZ5YSUZHLl4XhH4uK80GhAZrVXdN4O2P4gQ40Wa5UIOPUHlA/nFd2PLblBZWUioLMMAVrgpoYcA==} + sprintf-js@1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} @@ -5865,9 +6491,16 @@ packages: resolution: {integrity: sha512-xDT9gyzAEFQNeK7P+Mj/8bNzN+fbm6/4D6ihdSzmczayjydpNjMs74HDHMY6S4Bfu6tRVyEK2ALPGnr6ZVofBA==} hasBin: true + streamsearch@1.1.0: + resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} + engines: {node: '>=10.0.0'} + strict-event-emitter@0.5.1: resolution: {integrity: sha512-vMgjE/GGEPEFnhFub6pa4FmJBRBVOLpIII2hvCZ8Kzb7K0hlHo7mQv6xYrBvCL2LtAIBwFUK8wvuJgTVSQ5MFQ==} + string-env-interpolation@1.0.1: + resolution: {integrity: sha512-78lwMoCcn0nNu8LszbP1UA7g55OeE4v7rCeWnM5B453rnNr4aq+5it3FEYtZrSEiMvHZOZ9Jlqb0OD0M2VInqg==} + string-length@4.0.2: resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} engines: {node: '>=10'} @@ -5962,6 +6595,9 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} + swap-case@2.0.2: + resolution: {integrity: sha512-kc6S2YS/2yXbtkSMunBtKdah4VFETZ8Oh6ONSmSd9bRxhqTrtARUCBUiWXH3xVPpvR7tz2CSnkuXVE42EcGnMw==} + symbol-observable@4.0.0: resolution: {integrity: sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==} engines: {node: '>=0.10'} @@ -6039,6 +6675,9 @@ packages: thenify@3.3.1: resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + through@2.3.8: + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + timer2@1.0.0: resolution: {integrity: sha512-UOZql+P2ET0da+B7V3/RImN3IhC5ghb+9cpecfUhmYGIm0z73dDr3A781nBLnFYmRzeT1AmoT4w9Lgr8n7n7xg==} @@ -6064,6 +6703,9 @@ packages: resolution: {integrity: sha512-q5nmENpTHgiPVd1cJDDc9cVoYN5x4vCvwT3FMilvKPKneCBZAxn2YWQjDF0UMcE9k0Cay1gBiDfTMU0g+mPMQA==} engines: {node: '>=14.0.0'} + title-case@3.0.3: + resolution: {integrity: sha512-e1zGYRvbffpcHIrnuqT0Dh+gEJtDaxDSoG4JAIpq4oDFyooziLBIiYQv0GBT4FUAnUop5uZ1hiIAj7oAF6sOCA==} + tmp@0.0.33: resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} engines: {node: '>=0.6.0'} @@ -6149,6 +6791,9 @@ packages: esbuild: optional: true + ts-log@2.2.5: + resolution: {integrity: sha512-PGcnJoTBnVGy6yYNFxWVNkdcAuAMstvutN9MgDJIV6L0oG8fB+ZNNy1T+wJzah8RPGor1mZuPQkVfXNDpy9eHA==} + ts-node@10.9.2: resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} hasBin: true @@ -6173,6 +6818,9 @@ packages: tslib@2.6.2: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + tslib@2.6.3: + resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} + tsscmp@1.0.6: resolution: {integrity: sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==} engines: {node: '>=0.6.x'} @@ -6276,6 +6924,10 @@ packages: unbox-primitive@1.0.2: resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + unc-path-regex@0.1.2: + resolution: {integrity: sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==} + engines: {node: '>=0.10.0'} + undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} @@ -6332,6 +6984,10 @@ packages: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} + unixify@1.0.0: + resolution: {integrity: sha512-6bc58dPYhCMHHuwxldQxO3RRNZ4eCogZ/st++0+fcC1nr0jiGUtAdBJ2qzmLQWSxbtz42pWt4QQMiZ9HvZf5cg==} + engines: {node: '>=0.10.0'} + unpipe@1.0.0: resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} engines: {node: '>= 0.8'} @@ -6350,6 +7006,12 @@ packages: peerDependencies: browserslist: '>= 4.21.0' + upper-case-first@2.0.2: + resolution: {integrity: sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==} + + upper-case@2.0.2: + resolution: {integrity: sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==} + uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} @@ -6359,6 +7021,12 @@ packages: url-parse@1.5.10: resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} + urlpattern-polyfill@10.0.0: + resolution: {integrity: sha512-H/A06tKD7sS1O1X2SshBVeA5FLycRpjqiBeqGKmBwBDBy28EnRjORxTNe269KSSr5un5qyWi1iL61wLxpd+ZOg==} + + urlpattern-polyfill@8.0.2: + resolution: {integrity: sha512-Qp95D4TPJl1kC9SKigDcqgyM2VDVO4RiJc2d4qe5GrYm+zbIQCWWKAFaJNQ4BhdFeDGwBmAxqJBwWSJDb9T3BQ==} + util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} @@ -6508,6 +7176,13 @@ packages: wcwidth@1.0.1: resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} + web-streams-polyfill@3.3.3: + resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} + engines: {node: '>= 8'} + + webcrypto-core@1.8.0: + resolution: {integrity: sha512-kR1UQNH8MD42CYuLzvibfakG5Ew5seG85dMMoAM/1LqvckxaF6pUiidLuraIu4V+YCIFabYecUZAW0TuxAoaqw==} + webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} @@ -6648,6 +7323,18 @@ packages: utf-8-validate: optional: true + ws@8.18.0: + resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + xml-name-validator@4.0.0: resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} engines: {node: '>=12'} @@ -6678,6 +7365,9 @@ packages: yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + yaml-ast-parser@0.0.43: + resolution: {integrity: sha512-2PTINUwsRqSd+s8XxKaJWQlUuEMHJQyEuh2edBbW8KNJz0SJPwUSD2zRWqezFEdN7IzAgeuYHFUCF7o8zRdZ0A==} + yaml@1.10.2: resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} engines: {node: '>= 6'} @@ -6728,7 +7418,7 @@ snapshots: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 - '@apollo/client@3.11.0(@types/react@18.3.3)(graphql@16.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@apollo/client@3.11.0(@types/react@18.3.3)(graphql-ws@5.16.0(graphql@16.9.0))(graphql@16.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@graphql-typed-document-node/core': 3.2.0(graphql@16.9.0) '@wry/caches': 1.0.1 @@ -6746,16 +7436,52 @@ snapshots: tslib: 2.6.2 zen-observable-ts: 1.2.5 optionalDependencies: + graphql-ws: 5.16.0(graphql@16.9.0) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) transitivePeerDependencies: - '@types/react' + '@ardatan/relay-compiler@12.0.0(graphql@16.9.0)': + dependencies: + '@babel/core': 7.24.5 + '@babel/generator': 7.24.10 + '@babel/parser': 7.24.8 + '@babel/runtime': 7.24.6 + '@babel/traverse': 7.24.8 + '@babel/types': 7.24.9 + babel-preset-fbjs: 3.4.0(@babel/core@7.24.5) + chalk: 4.1.2 + fb-watchman: 2.0.2 + fbjs: 3.0.5 + glob: 7.2.3 + graphql: 16.9.0 + immutable: 3.7.6 + invariant: 2.2.4 + nullthrows: 1.1.1 + relay-runtime: 12.0.0 + signedsource: 1.0.0 + yargs: 15.4.1 + transitivePeerDependencies: + - encoding + - supports-color + + '@ardatan/sync-fetch@0.0.1': + dependencies: + node-fetch: 2.7.0 + transitivePeerDependencies: + - encoding + '@babel/code-frame@7.24.6': dependencies: '@babel/highlight': 7.24.6 picocolors: 1.0.1 + '@babel/code-frame@7.24.7': + dependencies: + '@babel/highlight': 7.24.7 + picocolors: 1.0.1 + '@babel/compat-data@7.24.6': {} '@babel/core@7.24.5': @@ -6778,6 +7504,13 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/generator@7.24.10': + dependencies: + '@babel/types': 7.24.9 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 2.5.2 + '@babel/generator@7.24.5': dependencies: '@babel/types': 7.24.6 @@ -6789,6 +7522,10 @@ snapshots: dependencies: '@babel/types': 7.24.6 + '@babel/helper-annotate-as-pure@7.24.7': + dependencies: + '@babel/types': 7.24.9 + '@babel/helper-builder-binary-assignment-operator-visitor@7.24.6': dependencies: '@babel/types': 7.24.6 @@ -6834,15 +7571,28 @@ snapshots: '@babel/helper-environment-visitor@7.24.6': {} + '@babel/helper-environment-visitor@7.24.7': + dependencies: + '@babel/types': 7.24.9 + '@babel/helper-function-name@7.24.6': dependencies: '@babel/template': 7.24.6 '@babel/types': 7.24.6 + '@babel/helper-function-name@7.24.7': + dependencies: + '@babel/template': 7.24.7 + '@babel/types': 7.24.9 + '@babel/helper-hoist-variables@7.24.6': dependencies: '@babel/types': 7.24.6 + '@babel/helper-hoist-variables@7.24.7': + dependencies: + '@babel/types': 7.24.9 + '@babel/helper-member-expression-to-functions@7.24.6': dependencies: '@babel/types': 7.24.6 @@ -6851,6 +7601,13 @@ snapshots: dependencies: '@babel/types': 7.24.6 + '@babel/helper-module-imports@7.24.7': + dependencies: + '@babel/traverse': 7.24.8 + '@babel/types': 7.24.9 + transitivePeerDependencies: + - supports-color + '@babel/helper-module-transforms@7.24.6(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 @@ -6892,10 +7649,18 @@ snapshots: dependencies: '@babel/types': 7.24.6 + '@babel/helper-split-export-declaration@7.24.7': + dependencies: + '@babel/types': 7.24.9 + '@babel/helper-string-parser@7.24.6': {} + '@babel/helper-string-parser@7.24.8': {} + '@babel/helper-validator-identifier@7.24.6': {} + '@babel/helper-validator-identifier@7.24.7': {} + '@babel/helper-validator-option@7.24.6': {} '@babel/helper-wrap-function@7.24.6': @@ -6919,10 +7684,21 @@ snapshots: js-tokens: 4.0.0 picocolors: 1.0.1 + '@babel/highlight@7.24.7': + dependencies: + '@babel/helper-validator-identifier': 7.24.7 + chalk: 2.4.2 + js-tokens: 4.0.0 + picocolors: 1.0.1 + '@babel/parser@7.24.6': dependencies: '@babel/types': 7.24.6 + '@babel/parser@7.24.8': + dependencies: + '@babel/types': 7.24.9 + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.24.6(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 @@ -6947,6 +7723,21 @@ snapshots: '@babel/helper-environment-visitor': 7.24.6 '@babel/helper-plugin-utils': 7.24.7 + '@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-create-class-features-plugin': 7.24.6(@babel/core@7.24.5) + '@babel/helper-plugin-utils': 7.24.7 + + '@babel/plugin-proposal-object-rest-spread@7.20.7(@babel/core@7.24.5)': + dependencies: + '@babel/compat-data': 7.24.6 + '@babel/core': 7.24.5 + '@babel/helper-compilation-targets': 7.24.6 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.5) + '@babel/plugin-transform-parameters': 7.24.6(@babel/core@7.24.5) + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 @@ -7011,6 +7802,11 @@ snapshots: '@babel/core': 7.24.5 '@babel/helper-plugin-utils': 7.24.7 + '@babel/plugin-syntax-jsx@7.24.7(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 @@ -7299,6 +8095,22 @@ snapshots: '@babel/core': 7.24.5 '@babel/helper-plugin-utils': 7.24.7 + '@babel/plugin-transform-react-display-name@7.24.7(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.7 + + '@babel/plugin-transform-react-jsx@7.24.7(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-module-imports': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.24.5) + '@babel/types': 7.24.9 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-regenerator@7.24.6(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 @@ -7510,6 +8322,12 @@ snapshots: '@babel/parser': 7.24.6 '@babel/types': 7.24.6 + '@babel/template@7.24.7': + dependencies: + '@babel/code-frame': 7.24.7 + '@babel/parser': 7.24.8 + '@babel/types': 7.24.9 + '@babel/traverse@7.24.5': dependencies: '@babel/code-frame': 7.24.6 @@ -7525,12 +8343,33 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/traverse@7.24.8': + dependencies: + '@babel/code-frame': 7.24.7 + '@babel/generator': 7.24.10 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-function-name': 7.24.7 + '@babel/helper-hoist-variables': 7.24.7 + '@babel/helper-split-export-declaration': 7.24.7 + '@babel/parser': 7.24.8 + '@babel/types': 7.24.9 + debug: 4.3.5 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + '@babel/types@7.24.6': dependencies: '@babel/helper-string-parser': 7.24.6 '@babel/helper-validator-identifier': 7.24.6 to-fast-properties: 2.0.0 + '@babel/types@7.24.9': + dependencies: + '@babel/helper-string-parser': 7.24.8 + '@babel/helper-validator-identifier': 7.24.7 + to-fast-properties: 2.0.0 + '@base2/pretty-print-object@1.0.1': {} '@bcoe/v8-coverage@0.2.3': {} @@ -7952,6 +8791,266 @@ snapshots: '@eslint/js@8.57.0': {} + '@graphql-codegen/add@5.0.3(graphql@16.9.0)': + dependencies: + '@graphql-codegen/plugin-helpers': 5.0.4(graphql@16.9.0) + graphql: 16.9.0 + tslib: 2.6.3 + + '@graphql-codegen/cli@5.0.2(@types/node@20.14.9)(enquirer@2.4.1)(graphql@16.9.0)(typescript@5.5.2)': + dependencies: + '@babel/generator': 7.24.10 + '@babel/template': 7.24.7 + '@babel/types': 7.24.9 + '@graphql-codegen/client-preset': 4.3.2(graphql@16.9.0) + '@graphql-codegen/core': 4.0.2(graphql@16.9.0) + '@graphql-codegen/plugin-helpers': 5.0.4(graphql@16.9.0) + '@graphql-tools/apollo-engine-loader': 8.0.1(graphql@16.9.0) + '@graphql-tools/code-file-loader': 8.1.2(graphql@16.9.0) + '@graphql-tools/git-loader': 8.0.6(graphql@16.9.0) + '@graphql-tools/github-loader': 8.0.1(@types/node@20.14.9)(graphql@16.9.0) + '@graphql-tools/graphql-file-loader': 8.0.1(graphql@16.9.0) + '@graphql-tools/json-file-loader': 8.0.1(graphql@16.9.0) + '@graphql-tools/load': 8.0.2(graphql@16.9.0) + '@graphql-tools/prisma-loader': 8.0.4(@types/node@20.14.9)(graphql@16.9.0) + '@graphql-tools/url-loader': 8.0.2(@types/node@20.14.9)(graphql@16.9.0) + '@graphql-tools/utils': 10.3.2(graphql@16.9.0) + '@whatwg-node/fetch': 0.8.8 + chalk: 4.1.2 + cosmiconfig: 8.3.6(typescript@5.5.2) + debounce: 1.2.1 + detect-indent: 6.1.0 + graphql: 16.9.0 + graphql-config: 5.0.3(@types/node@20.14.9)(graphql@16.9.0)(typescript@5.5.2) + inquirer: 8.2.6 + is-glob: 4.0.3 + jiti: 1.21.0 + json-to-pretty-yaml: 1.2.2 + listr2: 4.0.5(enquirer@2.4.1) + log-symbols: 4.1.0 + micromatch: 4.0.5 + shell-quote: 1.8.1 + string-env-interpolation: 1.0.1 + ts-log: 2.2.5 + tslib: 2.6.3 + yaml: 2.4.2 + yargs: 17.7.2 + transitivePeerDependencies: + - '@types/node' + - bufferutil + - cosmiconfig-toml-loader + - encoding + - enquirer + - supports-color + - typescript + - utf-8-validate + + '@graphql-codegen/client-preset@4.3.2(graphql@16.9.0)': + dependencies: + '@babel/helper-plugin-utils': 7.24.7 + '@babel/template': 7.24.7 + '@graphql-codegen/add': 5.0.3(graphql@16.9.0) + '@graphql-codegen/gql-tag-operations': 4.0.9(graphql@16.9.0) + '@graphql-codegen/plugin-helpers': 5.0.4(graphql@16.9.0) + '@graphql-codegen/typed-document-node': 5.0.9(graphql@16.9.0) + '@graphql-codegen/typescript': 4.0.9(graphql@16.9.0) + '@graphql-codegen/typescript-operations': 4.2.3(graphql@16.9.0) + '@graphql-codegen/visitor-plugin-common': 5.3.1(graphql@16.9.0) + '@graphql-tools/documents': 1.0.1(graphql@16.9.0) + '@graphql-tools/utils': 10.3.2(graphql@16.9.0) + '@graphql-typed-document-node/core': 3.2.0(graphql@16.9.0) + graphql: 16.9.0 + tslib: 2.6.3 + transitivePeerDependencies: + - encoding + - supports-color + + '@graphql-codegen/core@4.0.2(graphql@16.9.0)': + dependencies: + '@graphql-codegen/plugin-helpers': 5.0.4(graphql@16.9.0) + '@graphql-tools/schema': 10.0.4(graphql@16.9.0) + '@graphql-tools/utils': 10.3.2(graphql@16.9.0) + graphql: 16.9.0 + tslib: 2.6.3 + + '@graphql-codegen/gql-tag-operations@4.0.9(graphql@16.9.0)': + dependencies: + '@graphql-codegen/plugin-helpers': 5.0.4(graphql@16.9.0) + '@graphql-codegen/visitor-plugin-common': 5.3.1(graphql@16.9.0) + '@graphql-tools/utils': 10.3.2(graphql@16.9.0) + auto-bind: 4.0.0 + graphql: 16.9.0 + tslib: 2.6.3 + transitivePeerDependencies: + - encoding + - supports-color + + '@graphql-codegen/plugin-helpers@5.0.4(graphql@16.9.0)': + dependencies: + '@graphql-tools/utils': 10.3.2(graphql@16.9.0) + change-case-all: 1.0.15 + common-tags: 1.8.2 + graphql: 16.9.0 + import-from: 4.0.0 + lodash: 4.17.21 + tslib: 2.6.3 + + '@graphql-codegen/schema-ast@4.1.0(graphql@16.9.0)': + dependencies: + '@graphql-codegen/plugin-helpers': 5.0.4(graphql@16.9.0) + '@graphql-tools/utils': 10.3.2(graphql@16.9.0) + graphql: 16.9.0 + tslib: 2.6.3 + + '@graphql-codegen/typed-document-node@5.0.9(graphql@16.9.0)': + dependencies: + '@graphql-codegen/plugin-helpers': 5.0.4(graphql@16.9.0) + '@graphql-codegen/visitor-plugin-common': 5.3.1(graphql@16.9.0) + auto-bind: 4.0.0 + change-case-all: 1.0.15 + graphql: 16.9.0 + tslib: 2.6.3 + transitivePeerDependencies: + - encoding + - supports-color + + '@graphql-codegen/typescript-operations@4.2.3(graphql@16.9.0)': + dependencies: + '@graphql-codegen/plugin-helpers': 5.0.4(graphql@16.9.0) + '@graphql-codegen/typescript': 4.0.9(graphql@16.9.0) + '@graphql-codegen/visitor-plugin-common': 5.3.1(graphql@16.9.0) + auto-bind: 4.0.0 + graphql: 16.9.0 + tslib: 2.6.3 + transitivePeerDependencies: + - encoding + - supports-color + + '@graphql-codegen/typescript-resolvers@4.2.1(graphql@16.9.0)': + dependencies: + '@graphql-codegen/plugin-helpers': 5.0.4(graphql@16.9.0) + '@graphql-codegen/typescript': 4.0.9(graphql@16.9.0) + '@graphql-codegen/visitor-plugin-common': 5.3.1(graphql@16.9.0) + '@graphql-tools/utils': 10.3.2(graphql@16.9.0) + auto-bind: 4.0.0 + graphql: 16.9.0 + tslib: 2.6.3 + transitivePeerDependencies: + - encoding + - supports-color + + '@graphql-codegen/typescript@4.0.9(graphql@16.9.0)': + dependencies: + '@graphql-codegen/plugin-helpers': 5.0.4(graphql@16.9.0) + '@graphql-codegen/schema-ast': 4.1.0(graphql@16.9.0) + '@graphql-codegen/visitor-plugin-common': 5.3.1(graphql@16.9.0) + auto-bind: 4.0.0 + graphql: 16.9.0 + tslib: 2.6.3 + transitivePeerDependencies: + - encoding + - supports-color + + '@graphql-codegen/visitor-plugin-common@5.3.1(graphql@16.9.0)': + dependencies: + '@graphql-codegen/plugin-helpers': 5.0.4(graphql@16.9.0) + '@graphql-tools/optimize': 2.0.0(graphql@16.9.0) + '@graphql-tools/relay-operation-optimizer': 7.0.1(graphql@16.9.0) + '@graphql-tools/utils': 10.3.2(graphql@16.9.0) + auto-bind: 4.0.0 + change-case-all: 1.0.15 + dependency-graph: 0.11.0 + graphql: 16.9.0 + graphql-tag: 2.12.6(graphql@16.9.0) + parse-filepath: 1.0.2 + tslib: 2.6.3 + transitivePeerDependencies: + - encoding + - supports-color + + '@graphql-tools/apollo-engine-loader@8.0.1(graphql@16.9.0)': + dependencies: + '@ardatan/sync-fetch': 0.0.1 + '@graphql-tools/utils': 10.3.2(graphql@16.9.0) + '@whatwg-node/fetch': 0.9.18 + graphql: 16.9.0 + tslib: 2.6.3 + transitivePeerDependencies: + - encoding + + '@graphql-tools/batch-execute@9.0.4(graphql@16.9.0)': + dependencies: + '@graphql-tools/utils': 10.3.2(graphql@16.9.0) + dataloader: 2.2.2 + graphql: 16.9.0 + tslib: 2.6.3 + value-or-promise: 1.0.12 + + '@graphql-tools/code-file-loader@8.1.2(graphql@16.9.0)': + dependencies: + '@graphql-tools/graphql-tag-pluck': 8.3.1(graphql@16.9.0) + '@graphql-tools/utils': 10.3.2(graphql@16.9.0) + globby: 11.1.0 + graphql: 16.9.0 + tslib: 2.6.3 + unixify: 1.0.0 + transitivePeerDependencies: + - supports-color + + '@graphql-tools/delegate@10.0.16(graphql@16.9.0)': + dependencies: + '@graphql-tools/batch-execute': 9.0.4(graphql@16.9.0) + '@graphql-tools/executor': 1.3.0(graphql@16.9.0) + '@graphql-tools/schema': 10.0.4(graphql@16.9.0) + '@graphql-tools/utils': 10.3.2(graphql@16.9.0) + dataloader: 2.2.2 + graphql: 16.9.0 + tslib: 2.6.3 + + '@graphql-tools/documents@1.0.1(graphql@16.9.0)': + dependencies: + graphql: 16.9.0 + lodash.sortby: 4.7.0 + tslib: 2.6.3 + + '@graphql-tools/executor-graphql-ws@1.2.0(graphql@16.9.0)': + dependencies: + '@graphql-tools/utils': 10.3.2(graphql@16.9.0) + '@types/ws': 8.5.11 + graphql: 16.9.0 + graphql-ws: 5.16.0(graphql@16.9.0) + isomorphic-ws: 5.0.0(ws@8.18.0) + tslib: 2.6.3 + ws: 8.18.0 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + '@graphql-tools/executor-http@1.1.5(@types/node@20.14.9)(graphql@16.9.0)': + dependencies: + '@graphql-tools/utils': 10.3.2(graphql@16.9.0) + '@repeaterjs/repeater': 3.0.6 + '@whatwg-node/fetch': 0.9.18 + extract-files: 11.0.0 + graphql: 16.9.0 + meros: 1.3.0(@types/node@20.14.9) + tslib: 2.6.3 + value-or-promise: 1.0.12 + transitivePeerDependencies: + - '@types/node' + + '@graphql-tools/executor-legacy-ws@1.1.0(graphql@16.9.0)': + dependencies: + '@graphql-tools/utils': 10.3.2(graphql@16.9.0) + '@types/ws': 8.5.11 + graphql: 16.9.0 + isomorphic-ws: 5.0.0(ws@8.18.0) + tslib: 2.6.3 + ws: 8.18.0 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + '@graphql-tools/executor@1.2.7(graphql@16.9.0)': dependencies: '@graphql-tools/utils': 10.2.1(graphql@16.9.0) @@ -7961,6 +9060,71 @@ snapshots: tslib: 2.6.2 value-or-promise: 1.0.12 + '@graphql-tools/executor@1.3.0(graphql@16.9.0)': + dependencies: + '@graphql-tools/utils': 10.3.2(graphql@16.9.0) + '@graphql-typed-document-node/core': 3.2.0(graphql@16.9.0) + '@repeaterjs/repeater': 3.0.6 + graphql: 16.9.0 + tslib: 2.6.3 + value-or-promise: 1.0.12 + + '@graphql-tools/git-loader@8.0.6(graphql@16.9.0)': + dependencies: + '@graphql-tools/graphql-tag-pluck': 8.3.1(graphql@16.9.0) + '@graphql-tools/utils': 10.3.2(graphql@16.9.0) + graphql: 16.9.0 + is-glob: 4.0.3 + micromatch: 4.0.5 + tslib: 2.6.3 + unixify: 1.0.0 + transitivePeerDependencies: + - supports-color + + '@graphql-tools/github-loader@8.0.1(@types/node@20.14.9)(graphql@16.9.0)': + dependencies: + '@ardatan/sync-fetch': 0.0.1 + '@graphql-tools/executor-http': 1.1.5(@types/node@20.14.9)(graphql@16.9.0) + '@graphql-tools/graphql-tag-pluck': 8.3.1(graphql@16.9.0) + '@graphql-tools/utils': 10.3.2(graphql@16.9.0) + '@whatwg-node/fetch': 0.9.18 + graphql: 16.9.0 + tslib: 2.6.3 + value-or-promise: 1.0.12 + transitivePeerDependencies: + - '@types/node' + - encoding + - supports-color + + '@graphql-tools/graphql-file-loader@8.0.1(graphql@16.9.0)': + dependencies: + '@graphql-tools/import': 7.0.1(graphql@16.9.0) + '@graphql-tools/utils': 10.3.2(graphql@16.9.0) + globby: 11.1.0 + graphql: 16.9.0 + tslib: 2.6.3 + unixify: 1.0.0 + + '@graphql-tools/graphql-tag-pluck@8.3.1(graphql@16.9.0)': + dependencies: + '@babel/core': 7.24.5 + '@babel/parser': 7.24.8 + '@babel/plugin-syntax-import-assertions': 7.24.6(@babel/core@7.24.5) + '@babel/traverse': 7.24.8 + '@babel/types': 7.24.9 + '@graphql-tools/utils': 10.3.2(graphql@16.9.0) + graphql: 16.9.0 + tslib: 2.6.3 + transitivePeerDependencies: + - supports-color + + '@graphql-tools/import@7.0.1(graphql@16.9.0)': + dependencies: + '@graphql-tools/utils': 10.3.2(graphql@16.9.0) + graphql: 16.9.0 + resolve-from: 5.0.0 + tslib: 2.6.3 + '@graphql-tools/jest-transform@2.0.0(graphql@16.9.0)': dependencies: '@graphql-tools/webpack-loader': 7.0.0(graphql@16.9.0) @@ -7971,13 +9135,29 @@ snapshots: transitivePeerDependencies: - supports-color + '@graphql-tools/json-file-loader@8.0.1(graphql@16.9.0)': + dependencies: + '@graphql-tools/utils': 10.3.2(graphql@16.9.0) + globby: 11.1.0 + graphql: 16.9.0 + tslib: 2.6.3 + unixify: 1.0.0 + + '@graphql-tools/load@8.0.2(graphql@16.9.0)': + dependencies: + '@graphql-tools/schema': 10.0.4(graphql@16.9.0) + '@graphql-tools/utils': 10.3.2(graphql@16.9.0) + graphql: 16.9.0 + p-limit: 3.1.0 + tslib: 2.6.3 + '@graphql-tools/merge@9.0.4(graphql@16.9.0)': dependencies: '@graphql-tools/utils': 10.2.1(graphql@16.9.0) graphql: 16.9.0 tslib: 2.6.2 - '@graphql-tools/mock@9.0.3(graphql@16.9.0)': + '@graphql-tools/mock@9.0.4(graphql@16.9.0)': dependencies: '@graphql-tools/schema': 10.0.4(graphql@16.9.0) '@graphql-tools/utils': 10.2.1(graphql@16.9.0) @@ -7990,13 +9170,71 @@ snapshots: graphql: 16.9.0 tslib: 2.6.2 + '@graphql-tools/prisma-loader@8.0.4(@types/node@20.14.9)(graphql@16.9.0)': + dependencies: + '@graphql-tools/url-loader': 8.0.2(@types/node@20.14.9)(graphql@16.9.0) + '@graphql-tools/utils': 10.3.2(graphql@16.9.0) + '@types/js-yaml': 4.0.9 + '@whatwg-node/fetch': 0.9.18 + chalk: 4.1.2 + debug: 4.3.5 + dotenv: 16.4.5 + graphql: 16.9.0 + graphql-request: 6.1.0(graphql@16.9.0) + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.4 + jose: 5.6.3 + js-yaml: 4.1.0 + lodash: 4.17.21 + scuid: 1.1.0 + tslib: 2.6.3 + yaml-ast-parser: 0.0.43 + transitivePeerDependencies: + - '@types/node' + - bufferutil + - encoding + - supports-color + - utf-8-validate + + '@graphql-tools/relay-operation-optimizer@7.0.1(graphql@16.9.0)': + dependencies: + '@ardatan/relay-compiler': 12.0.0(graphql@16.9.0) + '@graphql-tools/utils': 10.3.2(graphql@16.9.0) + graphql: 16.9.0 + tslib: 2.6.3 + transitivePeerDependencies: + - encoding + - supports-color + '@graphql-tools/schema@10.0.4(graphql@16.9.0)': dependencies: '@graphql-tools/merge': 9.0.4(graphql@16.9.0) '@graphql-tools/utils': 10.2.1(graphql@16.9.0) graphql: 16.9.0 - tslib: 2.6.2 + tslib: 2.6.2 + value-or-promise: 1.0.12 + + '@graphql-tools/url-loader@8.0.2(@types/node@20.14.9)(graphql@16.9.0)': + dependencies: + '@ardatan/sync-fetch': 0.0.1 + '@graphql-tools/delegate': 10.0.16(graphql@16.9.0) + '@graphql-tools/executor-graphql-ws': 1.2.0(graphql@16.9.0) + '@graphql-tools/executor-http': 1.1.5(@types/node@20.14.9)(graphql@16.9.0) + '@graphql-tools/executor-legacy-ws': 1.1.0(graphql@16.9.0) + '@graphql-tools/utils': 10.3.2(graphql@16.9.0) + '@graphql-tools/wrap': 10.0.5(graphql@16.9.0) + '@types/ws': 8.5.11 + '@whatwg-node/fetch': 0.9.18 + graphql: 16.9.0 + isomorphic-ws: 5.0.0(ws@8.18.0) + tslib: 2.6.3 value-or-promise: 1.0.12 + ws: 8.18.0 + transitivePeerDependencies: + - '@types/node' + - bufferutil + - encoding + - utf-8-validate '@graphql-tools/utils@10.2.1(graphql@16.9.0)': dependencies: @@ -8006,6 +9244,14 @@ snapshots: graphql: 16.9.0 tslib: 2.6.2 + '@graphql-tools/utils@10.3.2(graphql@16.9.0)': + dependencies: + '@graphql-typed-document-node/core': 3.2.0(graphql@16.9.0) + cross-inspect: 1.0.0 + dset: 3.1.3 + graphql: 16.9.0 + tslib: 2.6.3 + '@graphql-tools/webpack-loader-runtime@7.0.0(graphql@16.9.0)': dependencies: graphql: 16.9.0 @@ -8017,6 +9263,15 @@ snapshots: graphql: 16.9.0 tslib: 2.6.2 + '@graphql-tools/wrap@10.0.5(graphql@16.9.0)': + dependencies: + '@graphql-tools/delegate': 10.0.16(graphql@16.9.0) + '@graphql-tools/schema': 10.0.4(graphql@16.9.0) + '@graphql-tools/utils': 10.3.2(graphql@16.9.0) + graphql: 16.9.0 + tslib: 2.6.3 + value-or-promise: 1.0.12 + '@graphql-typed-document-node/core@3.2.0(graphql@16.9.0)': dependencies: graphql: 16.9.0 @@ -8287,6 +9542,8 @@ snapshots: '@jridgewell/sourcemap-codec': 1.4.15 optional: true + '@kamilkisiela/fast-url-parser@1.1.4': {} + '@manypkg/find-root@1.1.0': dependencies: '@babel/runtime': 7.24.6 @@ -8341,6 +9598,24 @@ snapshots: '@open-draft/until@2.1.0': {} + '@peculiar/asn1-schema@2.3.8': + dependencies: + asn1js: 3.0.5 + pvtsutils: 1.3.5 + tslib: 2.6.3 + + '@peculiar/json-schema@1.1.12': + dependencies: + tslib: 2.6.3 + + '@peculiar/webcrypto@1.5.0': + dependencies: + '@peculiar/asn1-schema': 2.3.8 + '@peculiar/json-schema': 1.1.12 + pvtsutils: 1.3.5 + tslib: 2.6.3 + webcrypto-core: 1.8.0 + '@pkgjs/parseargs@0.11.0': optional: true @@ -9099,6 +10374,8 @@ snapshots: expect: 29.7.0 pretty-format: 29.7.0 + '@types/js-yaml@4.0.9': {} + '@types/jsdom@20.0.1': dependencies: '@types/node': 20.14.9 @@ -9184,6 +10461,10 @@ snapshots: '@types/wrap-ansi@3.0.0': {} + '@types/ws@8.5.11': + dependencies: + '@types/node': 20.14.9 + '@types/yargs-parser@21.0.3': {} '@types/yargs@17.0.32': @@ -9440,6 +10721,39 @@ snapshots: '@webassemblyjs/ast': 1.12.1 '@xtuc/long': 4.2.2 + '@whatwg-node/events@0.0.3': {} + + '@whatwg-node/events@0.1.1': {} + + '@whatwg-node/fetch@0.8.8': + dependencies: + '@peculiar/webcrypto': 1.5.0 + '@whatwg-node/node-fetch': 0.3.6 + busboy: 1.6.0 + urlpattern-polyfill: 8.0.2 + web-streams-polyfill: 3.3.3 + + '@whatwg-node/fetch@0.9.18': + dependencies: + '@whatwg-node/node-fetch': 0.5.14 + urlpattern-polyfill: 10.0.0 + + '@whatwg-node/node-fetch@0.3.6': + dependencies: + '@whatwg-node/events': 0.0.3 + busboy: 1.6.0 + fast-querystring: 1.1.2 + fast-url-parser: 1.1.3 + tslib: 2.6.3 + + '@whatwg-node/node-fetch@0.5.14': + dependencies: + '@kamilkisiela/fast-url-parser': 1.1.4 + '@whatwg-node/events': 0.1.1 + busboy: 1.6.0 + fast-querystring: 1.1.2 + tslib: 2.6.3 + '@wry/caches@1.0.1': dependencies: tslib: 2.6.2 @@ -9639,6 +10953,12 @@ snapshots: asn1@0.2.3: {} + asn1js@3.0.5: + dependencies: + pvtsutils: 1.3.5 + pvutils: 1.1.3 + tslib: 2.6.3 + assertion-error@1.1.0: {} assertion-error@2.0.1: {} @@ -9647,6 +10967,8 @@ snapshots: dependencies: tslib: 2.6.2 + astral-regex@2.0.0: {} + async-limiter@1.0.1: {} async-retry@1.2.3: @@ -9661,6 +10983,8 @@ snapshots: asynckit@0.4.0: {} + auto-bind@4.0.0: {} + autoprefixer@10.4.19(postcss@8.4.39): dependencies: browserslist: 4.23.0 @@ -9753,6 +11077,8 @@ snapshots: cosmiconfig: 5.2.1 graphql: 15.3.0 + babel-plugin-syntax-trailing-function-commas@7.0.0-beta.0: {} + babel-preset-current-node-syntax@1.0.1(@babel/core@7.24.5): dependencies: '@babel/core': 7.24.5 @@ -9769,6 +11095,39 @@ snapshots: '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.5) '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.5) + babel-preset-fbjs@3.4.0(@babel/core@7.24.5): + dependencies: + '@babel/core': 7.24.5 + '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.24.5) + '@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.24.5) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.5) + '@babel/plugin-syntax-flow': 7.24.6(@babel/core@7.24.5) + '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.24.5) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.5) + '@babel/plugin-transform-arrow-functions': 7.24.6(@babel/core@7.24.5) + '@babel/plugin-transform-block-scoped-functions': 7.24.6(@babel/core@7.24.5) + '@babel/plugin-transform-block-scoping': 7.24.6(@babel/core@7.24.5) + '@babel/plugin-transform-classes': 7.24.6(@babel/core@7.24.5) + '@babel/plugin-transform-computed-properties': 7.24.6(@babel/core@7.24.5) + '@babel/plugin-transform-destructuring': 7.24.6(@babel/core@7.24.5) + '@babel/plugin-transform-flow-strip-types': 7.24.6(@babel/core@7.24.5) + '@babel/plugin-transform-for-of': 7.24.6(@babel/core@7.24.5) + '@babel/plugin-transform-function-name': 7.24.6(@babel/core@7.24.5) + '@babel/plugin-transform-literals': 7.24.6(@babel/core@7.24.5) + '@babel/plugin-transform-member-expression-literals': 7.24.6(@babel/core@7.24.5) + '@babel/plugin-transform-modules-commonjs': 7.24.6(@babel/core@7.24.5) + '@babel/plugin-transform-object-super': 7.24.6(@babel/core@7.24.5) + '@babel/plugin-transform-parameters': 7.24.6(@babel/core@7.24.5) + '@babel/plugin-transform-property-literals': 7.24.6(@babel/core@7.24.5) + '@babel/plugin-transform-react-display-name': 7.24.7(@babel/core@7.24.5) + '@babel/plugin-transform-react-jsx': 7.24.7(@babel/core@7.24.5) + '@babel/plugin-transform-shorthand-properties': 7.24.6(@babel/core@7.24.5) + '@babel/plugin-transform-spread': 7.24.6(@babel/core@7.24.5) + '@babel/plugin-transform-template-literals': 7.24.6(@babel/core@7.24.5) + babel-plugin-syntax-trailing-function-commas: 7.0.0-beta.0 + transitivePeerDependencies: + - supports-color + babel-preset-jest@29.6.3(@babel/core@7.24.5): dependencies: '@babel/core': 7.24.5 @@ -9884,6 +11243,10 @@ snapshots: esbuild: 0.23.0 load-tsconfig: 0.2.5 + busboy@1.6.0: + dependencies: + streamsearch: 1.1.0 + bytes@3.0.0: {} bytes@3.1.2: {} @@ -9917,6 +11280,11 @@ snapshots: callsites@3.1.0: {} + camel-case@4.1.2: + dependencies: + pascal-case: 3.1.2 + tslib: 2.6.3 + camelcase-css@2.0.1: {} camelcase@5.3.1: {} @@ -9925,6 +11293,12 @@ snapshots: caniuse-lite@1.0.30001620: {} + capital-case@1.0.4: + dependencies: + no-case: 3.0.4 + tslib: 2.6.3 + upper-case-first: 2.0.2 + chai@4.4.1: dependencies: assertion-error: 1.1.0 @@ -9967,6 +11341,34 @@ snapshots: chalk@5.3.0: {} + change-case-all@1.0.15: + dependencies: + change-case: 4.1.2 + is-lower-case: 2.0.2 + is-upper-case: 2.0.2 + lower-case: 2.0.2 + lower-case-first: 2.0.2 + sponge-case: 1.0.1 + swap-case: 2.0.2 + title-case: 3.0.3 + upper-case: 2.0.2 + upper-case-first: 2.0.2 + + change-case@4.1.2: + dependencies: + camel-case: 4.1.2 + capital-case: 1.0.4 + constant-case: 3.0.4 + dot-case: 3.0.4 + header-case: 2.0.4 + no-case: 3.0.4 + param-case: 3.0.4 + pascal-case: 3.1.2 + path-case: 3.0.4 + sentence-case: 3.0.4 + snake-case: 3.0.4 + tslib: 2.6.3 + char-regex@1.0.2: {} char-regex@2.0.1: {} @@ -10011,6 +11413,13 @@ snapshots: cli-spinners@2.9.2: {} + cli-truncate@2.1.0: + dependencies: + slice-ansi: 3.0.0 + string-width: 4.2.3 + + cli-width@3.0.0: {} + cli-width@4.1.0: {} cliui@6.0.0: @@ -10049,6 +11458,8 @@ snapshots: color-name@1.1.4: {} + colorette@2.0.20: {} + combined-stream@1.0.8: dependencies: delayed-stream: 1.0.0 @@ -10069,6 +11480,8 @@ snapshots: formats: 1.0.0 uuidv4: 2.0.0 + common-tags@1.8.2: {} + commondir@1.0.1: {} comparejs@1.0.0: {} @@ -10105,6 +11518,12 @@ snapshots: consola@3.2.3: {} + constant-case@3.0.4: + dependencies: + no-case: 3.0.4 + tslib: 2.6.3 + upper-case: 2.0.2 + content-disposition@0.5.2: {} content-disposition@0.5.4: @@ -10157,6 +11576,15 @@ snapshots: path-type: 4.0.0 yaml: 1.10.2 + cosmiconfig@8.3.6(typescript@5.5.2): + dependencies: + import-fresh: 3.3.0 + js-yaml: 4.1.0 + parse-json: 5.2.0 + path-type: 4.0.0 + optionalDependencies: + typescript: 5.5.2 + create-jest@29.7.0(@types/node@20.14.9)(ts-node@10.9.2(@swc/core@1.6.5)(@types/node@20.14.9)(typescript@5.5.2)): dependencies: '@jest/types': 29.6.3 @@ -10261,6 +11689,8 @@ snapshots: dataloader@1.4.0: {} + dataloader@2.2.2: {} + datasette@1.0.1: dependencies: comparejs: 1.0.0 @@ -10271,6 +11701,8 @@ snapshots: dependencies: '@babel/runtime': 7.24.6 + debounce@1.2.1: {} + debug@2.6.9: dependencies: ms: 2.0.0 @@ -10331,6 +11763,8 @@ snapshots: depd@2.0.0: {} + dependency-graph@0.11.0: {} + dequal@2.0.3: {} destroy@1.0.4: {} @@ -10388,6 +11822,11 @@ snapshots: dom-serializer: 0.2.2 domelementtype: 1.3.1 + dot-case@3.0.4: + dependencies: + no-case: 3.0.4 + tslib: 2.6.3 + dotenv-expand@10.0.0: {} dotenv@16.4.5: {} @@ -10853,6 +12292,10 @@ snapshots: iconv-lite: 0.4.24 tmp: 0.0.33 + extract-files@11.0.0: {} + + fast-decode-uri-component@1.0.1: {} + fast-deep-equal@2.0.1: {} fast-deep-equal@3.1.3: {} @@ -10869,6 +12312,14 @@ snapshots: fast-levenshtein@2.0.6: {} + fast-querystring@1.1.2: + dependencies: + fast-decode-uri-component: 1.0.1 + + fast-url-parser@1.1.3: + dependencies: + punycode: 1.4.1 + fastq@1.17.1: dependencies: reusify: 1.0.4 @@ -10895,6 +12346,10 @@ snapshots: dependencies: walk-up-path: 3.0.1 + figures@3.2.0: + dependencies: + escape-string-regexp: 1.0.5 + file-entry-cache@6.0.1: dependencies: flat-cache: 3.2.0 @@ -11216,11 +12671,44 @@ snapshots: graphemer@1.4.0: {} + graphql-config@5.0.3(@types/node@20.14.9)(graphql@16.9.0)(typescript@5.5.2): + dependencies: + '@graphql-tools/graphql-file-loader': 8.0.1(graphql@16.9.0) + '@graphql-tools/json-file-loader': 8.0.1(graphql@16.9.0) + '@graphql-tools/load': 8.0.2(graphql@16.9.0) + '@graphql-tools/merge': 9.0.4(graphql@16.9.0) + '@graphql-tools/url-loader': 8.0.2(@types/node@20.14.9)(graphql@16.9.0) + '@graphql-tools/utils': 10.3.2(graphql@16.9.0) + cosmiconfig: 8.3.6(typescript@5.5.2) + graphql: 16.9.0 + jiti: 1.21.0 + minimatch: 4.2.3 + string-env-interpolation: 1.0.1 + tslib: 2.6.3 + transitivePeerDependencies: + - '@types/node' + - bufferutil + - encoding + - typescript + - utf-8-validate + + graphql-request@6.1.0(graphql@16.9.0): + dependencies: + '@graphql-typed-document-node/core': 3.2.0(graphql@16.9.0) + cross-fetch: 3.1.8 + graphql: 16.9.0 + transitivePeerDependencies: + - encoding + graphql-tag@2.12.6(graphql@16.9.0): dependencies: graphql: 16.9.0 tslib: 2.6.2 + graphql-ws@5.16.0(graphql@16.9.0): + dependencies: + graphql: 16.9.0 + graphql@15.3.0: {} graphql@16.9.0: {} @@ -11280,6 +12768,11 @@ snapshots: he@1.2.0: {} + header-case@2.0.4: + dependencies: + capital-case: 1.0.4 + tslib: 2.6.3 + headers-polyfill@4.0.3: {} hoist-non-react-statics@3.3.2: @@ -11404,6 +12897,8 @@ snapshots: ignore@5.3.1: {} + immutable@3.7.6: {} + import-fresh@2.0.0: dependencies: caller-path: 2.0.0 @@ -11414,6 +12909,8 @@ snapshots: parent-module: 1.0.1 resolve-from: 4.0.0 + import-from@4.0.0: {} + import-local@3.1.0: dependencies: pkg-dir: 4.2.0 @@ -11434,6 +12931,24 @@ snapshots: ini@1.3.8: {} + inquirer@8.2.6: + dependencies: + ansi-escapes: 4.3.2 + chalk: 4.1.2 + cli-cursor: 3.1.0 + cli-width: 3.0.0 + external-editor: 3.1.0 + figures: 3.2.0 + lodash: 4.17.21 + mute-stream: 0.0.8 + ora: 5.4.1 + run-async: 2.4.1 + rxjs: 7.8.1 + string-width: 4.2.3 + strip-ansi: 6.0.1 + through: 2.3.8 + wrap-ansi: 6.2.0 + internal-slot@1.0.7: dependencies: es-errors: 1.3.0 @@ -11448,6 +12963,11 @@ snapshots: is-absolute-url@4.0.1: {} + is-absolute@1.0.0: + dependencies: + is-relative: 1.0.0 + is-windows: 1.0.2 + is-arguments@1.1.1: dependencies: call-bind: 1.0.7 @@ -11505,6 +13025,10 @@ snapshots: is-interactive@1.0.0: {} + is-lower-case@2.0.2: + dependencies: + tslib: 2.6.3 + is-negative-zero@2.0.3: {} is-node-process@1.2.0: {} @@ -11534,6 +13058,10 @@ snapshots: is-regexp@1.0.0: {} + is-relative@1.0.0: + dependencies: + is-unc-path: 1.0.0 + is-shared-array-buffer@1.0.3: dependencies: call-bind: 1.0.7 @@ -11560,8 +13088,16 @@ snapshots: is-typedarray@1.0.0: {} + is-unc-path@1.0.0: + dependencies: + unc-path-regex: 0.1.2 + is-unicode-supported@0.1.0: {} + is-upper-case@2.0.2: + dependencies: + tslib: 2.6.3 + is-weakref@1.0.2: dependencies: call-bind: 1.0.7 @@ -11578,6 +13114,10 @@ snapshots: isobject@3.0.1: {} + isomorphic-ws@5.0.0(ws@8.18.0): + dependencies: + ws: 8.18.0 + istanbul-lib-coverage@3.2.2: {} istanbul-lib-hook@3.0.0: @@ -12048,6 +13588,8 @@ snapshots: '@sideway/formula': 3.0.1 '@sideway/pinpoint': 2.0.0 + jose@5.6.3: {} + joycon@3.1.1: {} js-tokens@4.0.0: {} @@ -12167,6 +13709,11 @@ snapshots: json-stable-stringify-without-jsonify@1.0.1: {} + json-to-pretty-yaml@1.2.2: + dependencies: + remedial: 1.0.8 + remove-trailing-spaces: 1.0.8 + json5@2.2.3: {} jsonc-parser@3.2.1: {} @@ -12237,6 +13784,19 @@ snapshots: lines-and-columns@1.2.4: {} + listr2@4.0.5(enquirer@2.4.1): + dependencies: + cli-truncate: 2.1.0 + colorette: 2.0.20 + log-update: 4.0.0 + p-map: 4.0.0 + rfdc: 1.4.1 + rxjs: 7.8.1 + through: 2.3.8 + wrap-ansi: 7.0.0 + optionalDependencies: + enquirer: 2.4.1 + load-tsconfig@0.2.5: {} load-yaml-file@0.2.0: @@ -12298,6 +13858,13 @@ snapshots: chalk: 4.1.2 is-unicode-supported: 0.1.0 + log-update@4.0.0: + dependencies: + ansi-escapes: 4.3.2 + cli-cursor: 3.1.0 + slice-ansi: 4.0.0 + wrap-ansi: 6.2.0 + loose-envify@1.4.0: dependencies: js-tokens: 4.0.0 @@ -12310,6 +13877,14 @@ snapshots: dependencies: get-func-name: 2.0.2 + lower-case-first@2.0.2: + dependencies: + tslib: 2.6.3 + + lower-case@2.0.2: + dependencies: + tslib: 2.6.3 + lru-cache@10.2.2: {} lru-cache@4.1.5: @@ -12354,6 +13929,8 @@ snapshots: dependencies: tmpl: 1.0.5 + map-cache@0.2.2: {} + map-or-similar@1.5.0: {} markdown-to-jsx@7.4.7(react@18.3.1): @@ -12372,6 +13949,10 @@ snapshots: merge2@1.4.1: {} + meros@1.3.0(@types/node@20.14.9): + optionalDependencies: + '@types/node': 20.14.9 + methods@1.1.2: {} micromatch@4.0.5: @@ -12399,6 +13980,10 @@ snapshots: dependencies: brace-expansion: 1.1.11 + minimatch@4.2.3: + dependencies: + brace-expansion: 1.1.11 + minimatch@5.1.6: dependencies: brace-expansion: 2.0.1 @@ -12475,6 +14060,8 @@ snapshots: optionalDependencies: typescript: 5.5.2 + mute-stream@0.0.8: {} + mute-stream@1.0.0: {} mz@2.7.0: @@ -12491,6 +14078,11 @@ snapshots: neo-async@2.6.2: {} + no-case@3.0.4: + dependencies: + lower-case: 2.0.2 + tslib: 2.6.3 + nocache@2.0.0: {} node-dir@0.1.17: @@ -12517,6 +14109,10 @@ snapshots: node-statsd@0.1.1: {} + normalize-path@2.1.1: + dependencies: + remove-trailing-separator: 1.1.0 + normalize-path@3.0.0: {} normalize-range@0.1.2: {} @@ -12690,6 +14286,10 @@ snapshots: dependencies: aggregate-error: 3.1.0 + p-map@4.0.0: + dependencies: + aggregate-error: 3.1.0 + p-try@2.2.0: {} package-hash@4.0.0: @@ -12699,10 +14299,21 @@ snapshots: lodash.flattendeep: 4.4.0 release-zalgo: 1.0.0 + param-case@3.0.4: + dependencies: + dot-case: 3.0.4 + tslib: 2.6.3 + parent-module@1.0.1: dependencies: callsites: 3.1.0 + parse-filepath@1.0.2: + dependencies: + is-absolute: 1.0.0 + map-cache: 0.2.2 + path-root: 0.1.1 + parse-json@4.0.0: dependencies: error-ex: 1.3.2 @@ -12725,6 +14336,16 @@ snapshots: partof@1.0.0: {} + pascal-case@3.1.2: + dependencies: + no-case: 3.0.4 + tslib: 2.6.3 + + path-case@3.0.4: + dependencies: + dot-case: 3.0.4 + tslib: 2.6.3 + path-exists@3.0.0: {} path-exists@4.0.0: {} @@ -12737,6 +14358,12 @@ snapshots: path-parse@1.0.7: {} + path-root-regex@0.1.2: {} + + path-root@0.1.1: + dependencies: + path-root-regex: 0.1.2 + path-scurry@1.11.1: dependencies: lru-cache: 10.2.2 @@ -12911,10 +14538,18 @@ snapshots: psl@1.9.0: {} + punycode@1.4.1: {} + punycode@2.3.1: {} pure-rand@6.1.0: {} + pvtsutils@1.3.5: + dependencies: + tslib: 2.6.3 + + pvutils@1.1.3: {} + qs@6.11.0: dependencies: side-channel: 1.0.6 @@ -13113,6 +14748,14 @@ snapshots: relay-compiler@17.0.0: {} + relay-runtime@12.0.0: + dependencies: + '@babel/runtime': 7.24.6 + fbjs: 3.0.5 + invariant: 2.2.4 + transitivePeerDependencies: + - encoding + relay-runtime@17.0.0: dependencies: '@babel/runtime': 7.24.6 @@ -13125,6 +14768,12 @@ snapshots: dependencies: es6-error: 4.1.1 + remedial@1.0.8: {} + + remove-trailing-separator@1.1.0: {} + + remove-trailing-spaces@1.0.8: {} + require-directory@2.1.1: {} require-main-filename@2.0.0: {} @@ -13167,6 +14816,8 @@ snapshots: reusify@1.0.4: {} + rfdc@1.4.1: {} + rimraf@2.6.3: dependencies: glob: 7.2.3 @@ -13201,6 +14852,8 @@ snapshots: rrweb-cssom@0.7.0: {} + run-async@2.4.1: {} + run-parallel@1.2.0: dependencies: queue-microtask: 1.2.3 @@ -13242,6 +14895,8 @@ snapshots: ajv: 6.12.6 ajv-keywords: 3.5.2(ajv@6.12.6) + scuid@1.1.0: {} + secure-compare@3.0.1: {} semver@5.7.2: {} @@ -13286,6 +14941,12 @@ snapshots: transitivePeerDependencies: - supports-color + sentence-case@3.0.4: + dependencies: + no-case: 3.0.4 + tslib: 2.6.3 + upper-case-first: 2.0.2 + serialize-javascript@6.0.2: dependencies: randombytes: 2.1.0 @@ -13365,12 +15026,31 @@ snapshots: signal-exit@4.1.0: {} + signedsource@1.0.0: {} + sisteransi@1.0.5: {} slash@3.0.0: {} slash@5.1.0: {} + slice-ansi@3.0.0: + dependencies: + ansi-styles: 4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: 3.0.0 + + slice-ansi@4.0.0: + dependencies: + ansi-styles: 4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: 3.0.0 + + snake-case@3.0.4: + dependencies: + dot-case: 3.0.4 + tslib: 2.6.3 + source-map-js@1.2.0: {} source-map-support@0.5.13: @@ -13420,6 +15100,10 @@ snapshots: dependencies: readable-stream: 3.6.2 + sponge-case@1.0.1: + dependencies: + tslib: 2.6.3 + sprintf-js@1.0.3: {} stack-trace@0.0.10: {} @@ -13478,8 +15162,12 @@ snapshots: - supports-color - utf-8-validate + streamsearch@1.1.0: {} + strict-event-emitter@0.5.1: {} + string-env-interpolation@1.0.1: {} + string-length@4.0.2: dependencies: char-regex: 1.0.2 @@ -13583,6 +15271,10 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} + swap-case@2.0.2: + dependencies: + tslib: 2.6.3 + symbol-observable@4.0.0: {} symbol-tree@3.2.4: {} @@ -13713,6 +15405,8 @@ snapshots: dependencies: any-promise: 1.3.0 + through@2.3.8: {} + timer2@1.0.0: {} tiny-invariant@1.3.3: {} @@ -13727,6 +15421,10 @@ snapshots: tinyspy@3.0.0: {} + title-case@3.0.3: + dependencies: + tslib: 2.6.3 + tmp@0.0.33: dependencies: os-tmpdir: 1.0.2 @@ -13800,6 +15498,8 @@ snapshots: babel-jest: 29.7.0(@babel/core@7.24.5) esbuild: 0.23.0 + ts-log@2.2.5: {} + ts-node@10.9.2(@swc/core@1.6.5)(@types/node@20.14.9)(typescript@5.5.2): dependencies: '@cspotcode/source-map-support': 0.8.1 @@ -13831,6 +15531,8 @@ snapshots: tslib@2.6.2: {} + tslib@2.6.3: {} + tsscmp@1.0.6: {} tsup@8.2.0(@swc/core@1.6.5)(jiti@1.21.0)(postcss@8.4.39)(typescript@5.5.2)(yaml@2.4.2): @@ -13940,6 +15642,8 @@ snapshots: has-symbols: 1.0.3 which-boxed-primitive: 1.0.2 + unc-path-regex@0.1.2: {} + undici-types@5.26.5: {} undici@6.19.2: {} @@ -13986,6 +15690,10 @@ snapshots: universalify@2.0.1: {} + unixify@1.0.0: + dependencies: + normalize-path: 2.1.1 + unpipe@1.0.0: {} unplugin@1.10.1: @@ -14003,6 +15711,14 @@ snapshots: escalade: 3.1.2 picocolors: 1.0.1 + upper-case-first@2.0.2: + dependencies: + tslib: 2.6.3 + + upper-case@2.0.2: + dependencies: + tslib: 2.6.3 + uri-js@4.4.1: dependencies: punycode: 2.3.1 @@ -14014,6 +15730,10 @@ snapshots: querystringify: 2.2.0 requires-port: 1.0.0 + urlpattern-polyfill@10.0.0: {} + + urlpattern-polyfill@8.0.2: {} + util-deprecate@1.0.2: {} util.promisify@1.0.0: @@ -14176,6 +15896,16 @@ snapshots: dependencies: defaults: 1.0.4 + web-streams-polyfill@3.3.3: {} + + webcrypto-core@1.8.0: + dependencies: + '@peculiar/asn1-schema': 2.3.8 + '@peculiar/json-schema': 1.1.12 + asn1js: 3.0.5 + pvtsutils: 1.3.5 + tslib: 2.6.3 + webidl-conversions@3.0.1: {} webidl-conversions@4.0.2: {} @@ -14334,6 +16064,8 @@ snapshots: ws@8.17.0: {} + ws@8.18.0: {} + xml-name-validator@4.0.0: {} xml-name-validator@5.0.0: {} @@ -14352,6 +16084,8 @@ snapshots: yallist@4.0.0: {} + yaml-ast-parser@0.0.43: {} + yaml@1.10.2: {} yaml@2.4.2: {} diff --git a/src/__generated__/resolvers-types.ts b/src/__generated__/resolvers-types.ts new file mode 100644 index 0000000..ef64ffc --- /dev/null +++ b/src/__generated__/resolvers-types.ts @@ -0,0 +1,442 @@ +import type { GraphQLResolveInfo } from "graphql"; +export type Maybe = T | null; +export type InputMaybe = Maybe; +export type Exact = { + [K in keyof T]: T[K]; +}; +export type MakeOptional = Omit & { + [SubKey in K]?: Maybe; +}; +export type MakeMaybe = Omit & { + [SubKey in K]: Maybe; +}; +export type MakeEmpty< + T extends { [key: string]: unknown }, + K extends keyof T, +> = { [_ in K]?: never }; +export type Incremental = + | T + | { + [P in keyof T]?: P extends " $fragmentName" | "__typename" ? T[P] : never; + }; +export type RequireFields = Omit & { + [P in K]-?: NonNullable; +}; +/** All built-in and custom scalars, mapped to their actual values */ +export type Scalars = { + ID: { input: string; output: string }; + String: { input: string; output: string }; + Boolean: { input: boolean; output: boolean }; + Int: { input: number; output: number }; + Float: { input: number; output: number }; +}; + +/** An user's saved cart session. Only one cart can be active at a time */ +export type Cart = { + __typename?: "Cart"; + /** Items saved in the cart session */ + items?: Maybe>>; + /** The current total of all the items in the cart, before taxes and shipping */ + subtotal?: Maybe; +}; + +export type Money = { + __typename?: "Money"; + amount?: Maybe; + currency?: Maybe; +}; + +/** Returns information about a specific purchase */ +export type Order = { + __typename?: "Order"; + /** The user who made the purchase */ + buyer: User; + /** Each order has a unique id which is separate from the user or items they bought */ + id: Scalars["ID"]["output"]; + /** A list of all the items they purchased. */ + items: Array; + /** Calculate the cost to ship all the variants to the users address */ + shippingCost?: Maybe; + total?: Maybe; +}; + +/** Search filters for when showing an users previous purchases */ +export type OrderFilters = { + itemsInOrder?: InputMaybe; + orderId: Scalars["ID"]["input"]; + priceHigh?: InputMaybe; + priceLow?: InputMaybe; +}; + +/** A specific product sold by our store. This contains all the high level details but is not the purchasable item. */ +export type Product = { + __typename?: "Product"; + averageRating?: Maybe; + description?: Maybe; + id: Scalars["ID"]["output"]; + mediaUrl?: Maybe; + price?: Maybe; + reviews?: Maybe>>; + title?: Maybe; + weight?: Maybe; +}; + +/** Search filters for when returning Products */ +export type ProductSearchInput = { + titleStartsWith?: InputMaybe; +}; + +export type Query = { + __typename?: "Query"; + /** Get a specific order by id. Meant to be used for a detailed view of an order */ + order?: Maybe; + /** Get a specific product by id. Useful for the product details page or checkout page */ + product?: Maybe; + /** Top products for home display */ + products?: Maybe>>; + /** Get all available products to shop for. Optionally provide some search filters */ + searchProducts?: Maybe>>; + /** + * Get the current user from our fake "auth" headers + * Set the "x-user-id" header to the user id. + */ + viewer?: Maybe; +}; + +export type QueryOrderArgs = { + id: Scalars["ID"]["input"]; +}; + +export type QueryProductArgs = { + id: Scalars["ID"]["input"]; +}; + +export type QuerySearchProductsArgs = { + searchInput?: ProductSearchInput; +}; + +export type Review = { + __typename?: "Review"; + content?: Maybe; + id: Scalars["ID"]["output"]; + rating?: Maybe; +}; + +/** An user account in our system */ +export type User = { + __typename?: "User"; + /** The user's active cart session. Once the cart items have been purchases, they transition to an Order */ + cart?: Maybe; + id: Scalars["ID"]["output"]; + /** The users previous purchases */ + orders?: Maybe>>; + /** The users current saved shipping address */ + shippingAddress?: Maybe; + /** The users login username */ + username: Scalars["String"]["output"]; +}; + +/** An user account in our system */ +export type UserOrdersArgs = { + filters?: InputMaybe; +}; + +export type ResolverTypeWrapper = Promise | T; + +export type ResolverWithResolve = { + resolve: ResolverFn; +}; +export type Resolver = + | ResolverFn + | ResolverWithResolve; + +export type ResolverFn = ( + parent: TParent, + args: TArgs, + context: TContext, + info: GraphQLResolveInfo, +) => Promise | TResult; + +export type SubscriptionSubscribeFn = ( + parent: TParent, + args: TArgs, + context: TContext, + info: GraphQLResolveInfo, +) => AsyncIterable | Promise>; + +export type SubscriptionResolveFn = ( + parent: TParent, + args: TArgs, + context: TContext, + info: GraphQLResolveInfo, +) => TResult | Promise; + +export interface SubscriptionSubscriberObject< + TResult, + TKey extends string, + TParent, + TContext, + TArgs, +> { + subscribe: SubscriptionSubscribeFn< + { [key in TKey]: TResult }, + TParent, + TContext, + TArgs + >; + resolve?: SubscriptionResolveFn< + TResult, + { [key in TKey]: TResult }, + TContext, + TArgs + >; +} + +export interface SubscriptionResolverObject { + subscribe: SubscriptionSubscribeFn; + resolve: SubscriptionResolveFn; +} + +export type SubscriptionObject< + TResult, + TKey extends string, + TParent, + TContext, + TArgs, +> = + | SubscriptionSubscriberObject + | SubscriptionResolverObject; + +export type SubscriptionResolver< + TResult, + TKey extends string, + TParent = {}, + TContext = {}, + TArgs = {}, +> = + | (( + ...args: any[] + ) => SubscriptionObject) + | SubscriptionObject; + +export type TypeResolveFn = ( + parent: TParent, + context: TContext, + info: GraphQLResolveInfo, +) => Maybe | Promise>; + +export type IsTypeOfResolverFn = ( + obj: T, + context: TContext, + info: GraphQLResolveInfo, +) => boolean | Promise; + +export type NextResolverFn = () => Promise; + +export type DirectiveResolverFn< + TResult = {}, + TParent = {}, + TContext = {}, + TArgs = {}, +> = ( + next: NextResolverFn, + parent: TParent, + args: TArgs, + context: TContext, + info: GraphQLResolveInfo, +) => TResult | Promise; + +/** Mapping between all available schema types and the resolvers types */ +export type ResolversTypes = { + Boolean: ResolverTypeWrapper; + Cart: ResolverTypeWrapper; + Float: ResolverTypeWrapper; + ID: ResolverTypeWrapper; + Int: ResolverTypeWrapper; + Money: ResolverTypeWrapper; + Order: ResolverTypeWrapper; + OrderFilters: OrderFilters; + Product: ResolverTypeWrapper; + ProductSearchInput: ProductSearchInput; + Query: ResolverTypeWrapper<{}>; + Review: ResolverTypeWrapper; + String: ResolverTypeWrapper; + User: ResolverTypeWrapper; +}; + +/** Mapping between all available schema types and the resolvers parents */ +export type ResolversParentTypes = { + Boolean: Scalars["Boolean"]["output"]; + Cart: Cart; + Float: Scalars["Float"]["output"]; + ID: Scalars["ID"]["output"]; + Int: Scalars["Int"]["output"]; + Money: Money; + Order: Order; + OrderFilters: OrderFilters; + Product: Product; + ProductSearchInput: ProductSearchInput; + Query: {}; + Review: Review; + String: Scalars["String"]["output"]; + User: User; +}; + +export type DeferDirectiveArgs = { + if?: Maybe; + label?: Maybe; +}; + +export type DeferDirectiveResolver< + Result, + Parent, + ContextType = any, + Args = DeferDirectiveArgs, +> = DirectiveResolverFn; + +export type CartResolvers< + ContextType = any, + ParentType extends + ResolversParentTypes["Cart"] = ResolversParentTypes["Cart"], +> = { + items?: Resolver< + Maybe>>, + ParentType, + ContextType + >; + subtotal?: Resolver, ParentType, ContextType>; + __isTypeOf?: IsTypeOfResolverFn; +}; + +export type MoneyResolvers< + ContextType = any, + ParentType extends + ResolversParentTypes["Money"] = ResolversParentTypes["Money"], +> = { + amount?: Resolver, ParentType, ContextType>; + currency?: Resolver, ParentType, ContextType>; + __isTypeOf?: IsTypeOfResolverFn; +}; + +export type OrderResolvers< + ContextType = any, + ParentType extends + ResolversParentTypes["Order"] = ResolversParentTypes["Order"], +> = { + buyer?: Resolver; + id?: Resolver; + items?: Resolver, ParentType, ContextType>; + shippingCost?: Resolver< + Maybe, + ParentType, + ContextType + >; + total?: Resolver, ParentType, ContextType>; + __isTypeOf?: IsTypeOfResolverFn; +}; + +export type ProductResolvers< + ContextType = any, + ParentType extends + ResolversParentTypes["Product"] = ResolversParentTypes["Product"], +> = { + averageRating?: Resolver< + Maybe, + ParentType, + ContextType + >; + description?: Resolver< + Maybe, + ParentType, + ContextType + >; + id?: Resolver; + mediaUrl?: Resolver, ParentType, ContextType>; + price?: Resolver, ParentType, ContextType>; + reviews?: Resolver< + Maybe>>, + ParentType, + ContextType + >; + title?: Resolver, ParentType, ContextType>; + weight?: Resolver, ParentType, ContextType>; + __isTypeOf?: IsTypeOfResolverFn; +}; + +export type QueryResolvers< + ContextType = any, + ParentType extends + ResolversParentTypes["Query"] = ResolversParentTypes["Query"], +> = { + order?: Resolver< + Maybe, + ParentType, + ContextType, + RequireFields + >; + product?: Resolver< + Maybe, + ParentType, + ContextType, + RequireFields + >; + products?: Resolver< + Maybe>>, + ParentType, + ContextType + >; + searchProducts?: Resolver< + Maybe>>, + ParentType, + ContextType, + RequireFields + >; + viewer?: Resolver, ParentType, ContextType>; +}; + +export type ReviewResolvers< + ContextType = any, + ParentType extends + ResolversParentTypes["Review"] = ResolversParentTypes["Review"], +> = { + content?: Resolver, ParentType, ContextType>; + id?: Resolver; + rating?: Resolver, ParentType, ContextType>; + __isTypeOf?: IsTypeOfResolverFn; +}; + +export type UserResolvers< + ContextType = any, + ParentType extends + ResolversParentTypes["User"] = ResolversParentTypes["User"], +> = { + cart?: Resolver, ParentType, ContextType>; + id?: Resolver; + orders?: Resolver< + Maybe>>, + ParentType, + ContextType, + Partial + >; + shippingAddress?: Resolver< + Maybe, + ParentType, + ContextType + >; + username?: Resolver; + __isTypeOf?: IsTypeOfResolverFn; +}; + +export type Resolvers = { + Cart?: CartResolvers; + Money?: MoneyResolvers; + Order?: OrderResolvers; + Product?: ProductResolvers; + Query?: QueryResolvers; + Review?: ReviewResolvers; + User?: UserResolvers; +}; + +export type DirectiveResolvers = { + defer?: DeferDirectiveResolver; +}; diff --git a/src/__tests__/handlers.test.tsx b/src/__tests__/handlers.test.tsx index d84e619..ccb602b 100644 --- a/src/__tests__/handlers.test.tsx +++ b/src/__tests__/handlers.test.tsx @@ -1,15 +1,12 @@ -import { ApolloProvider } from "@apollo/client"; import { Suspense } from "react"; +import { ApolloProvider } from "@apollo/client"; +import { render, screen, waitFor } from "@testing-library/react"; import { App, AppWithDefer, makeClient, } from "../../.storybook/stories/components/apollo-client/ApolloComponent.tsx"; -import { addMocksToSchema } from "@graphql-tools/mock"; -import { makeExecutableSchema } from "@graphql-tools/schema"; -import graphqlSchema from "../../.storybook/stories/components/relay/schema.graphql"; -import { replaceSchema, replaceDelay } from "./mocks/handlers.js"; -import { render, screen, waitFor } from "@testing-library/react"; +import { replaceSchema, replaceDelay, products } from "./mocks/handlers.js"; describe("integration tests", () => { describe("single execution result response", () => { @@ -77,18 +74,14 @@ describe("integration tests", () => { }); }); it("can set a new schema via replaceSchema", async () => { - // Create an executable GraphQL schema with no resolvers - const schema = makeExecutableSchema({ typeDefs: graphqlSchema }); - - // Create a new schema with mocks - const schemaWithMocks = addMocksToSchema({ - schema, + using _restore = replaceSchema({ resolvers: { Query: { products: () => { return Array.from({ length: 6 }, (_element, id) => ({ - id, + id: `${id}`, title: `Foo bar ${id}`, + mediaUrl: `https://storage.googleapis.com/hack-the-supergraph/apollo-${products[id]}.jpg`, reviews: [ { id: `review-${id}`, @@ -101,8 +94,6 @@ describe("integration tests", () => { }, }); - using _restore = replaceSchema(schemaWithMocks); - const client = makeClient(); render( diff --git a/src/__tests__/mocks/handlers.ts b/src/__tests__/mocks/handlers.ts index ffe4491..1cf45db 100644 --- a/src/__tests__/mocks/handlers.ts +++ b/src/__tests__/mocks/handlers.ts @@ -1,20 +1,16 @@ -import { addMocksToSchema } from "@graphql-tools/mock"; -import { makeExecutableSchema } from "@graphql-tools/schema"; import { createHandler } from "../../handlers.js"; -import graphqlSchema from "../../../.storybook/stories/components/relay/schema.graphql"; +import typeDefs from "../../../.storybook/stories/components/relay/schema.graphql"; +import type { Resolvers } from "../../__generated__/resolvers-types.ts"; -const schema = makeExecutableSchema({ typeDefs: graphqlSchema }); +export const products = ["beanie", "bottle", "cap", "onesie", "shirt", "socks"]; -const products = ["beanie", "bottle", "cap", "onesie", "shirt", "socks"]; - -// Create a new schema with mocks -const schemaWithMocks = addMocksToSchema({ - schema, +const { handler, replaceSchema, replaceDelay } = createHandler({ + typeDefs, resolvers: { Query: { products: () => Array.from({ length: products.length }, (_element, id) => ({ - id, + id: `${id}`, title: products[id], mediaUrl: `https://storage.googleapis.com/hack-the-supergraph/apollo-${products[id]}.jpg`, reviews: [ @@ -28,8 +24,6 @@ const schemaWithMocks = addMocksToSchema({ }, }); -const { handler, replaceSchema, replaceDelay } = createHandler(schemaWithMocks); - const handlers = [handler]; -export { replaceSchema, replaceDelay, handlers, schemaWithMocks }; +export { replaceSchema, replaceDelay, handlers, handler }; diff --git a/src/handlers.ts b/src/handlers.ts index 7038943..41290f6 100644 --- a/src/handlers.ts +++ b/src/handlers.ts @@ -1,7 +1,13 @@ import { gql } from "graphql-tag"; import { execute } from "@graphql-tools/executor"; import { isNodeProcess } from "is-node-process"; -import type { ExecutionResult, GraphQLSchema, ASTNode } from "graphql"; +import type { + ExecutionResult, + GraphQLSchema, + ASTNode, + DocumentNode, + GraphQLResolveInfo, +} from "graphql"; import { visit, BREAK } from "graphql"; import { HttpResponse, graphql, delay as mswDelay } from "msw"; import type { @@ -9,6 +15,8 @@ import type { SingularExecutionResult, SubsequentIncrementalExecutionResult, } from "@graphql-tools/executor"; +import { makeExecutableSchema } from "@graphql-tools/schema"; +import { addMocksToSchema, type IMockStore } from "@graphql-tools/mock"; const encoder = new TextEncoder(); @@ -29,28 +37,69 @@ export function hasDirectives(names: string[], root: ASTNode, all?: boolean) { return all ? !nameSet.size : nameSet.size < uniqueCount; } -interface Options { - delay?: number | "infinite" | "real"; +type Delay = number | "infinite" | "real"; + +interface DelayOptions { + delay?: Delay; } -export const createHandler = ( - schema: GraphQLSchema, - { delay: _delay }: Options = { delay: "real" }, +type DocumentNodeAndResolversOptions = { + typeDefs: DocumentNode; + resolvers: Partial | ((store: IMockStore) => Partial); + schema?: never; +} & DelayOptions; + +type SchemaOptions = { + schema: GraphQLSchema; + typeDefs?: never; + resolvers?: never; +} & DelayOptions; + +export type CreateHandlerDefinition = + | SchemaOptions + | DocumentNodeAndResolversOptions; + +export const createHandler = ( + schemaOrDocumentAndResolvers: CreateHandlerDefinition, ) => { - let delay = _delay; + const { schema, resolvers, delay, typeDefs } = schemaOrDocumentAndResolvers; + + let executableSchema = schema ?? makeExecutableSchema({ typeDefs }); + + let schemaWithMocks = + schema ?? + addMocksToSchema({ + schema: executableSchema, + resolvers, + }); + + let _delay = delay ?? "real"; // The default node server response time in MSW's delay utility is 5ms. // See https://github.com/mswjs/msw/blob/main/src/core/delay.ts#L16 // This sometimes caused multipart responses to be batched into a single // render by React, so we'll use a longer delay of 20ms. if (_delay === "real" && isNodeProcess()) { - delay = 20; + _delay = 20; } - let testSchema: GraphQLSchema = schema; + let testSchema: GraphQLSchema = schemaWithMocks; - function replaceSchema(newSchema: GraphQLSchema) { + function replaceSchema( + newSchemaOrResolvers: Omit< + CreateHandlerDefinition, + "delay" | "typeDefs" + >, + ) { const oldSchema = testSchema; - testSchema = newSchema; + + const { schema: newSchema, resolvers: newResolvers } = newSchemaOrResolvers; + + testSchema = + newSchema ?? + addMocksToSchema({ + schema: executableSchema, + resolvers: newResolvers, + }); function restore() { testSchema = oldSchema; @@ -63,12 +112,18 @@ export const createHandler = ( }); } - function replaceDelay(newDelay: Options["delay"]) { - const oldDelay = delay; - delay = newDelay; + // TODO: + // function replaceResolvers() {} + + // TODO: + // function mergeResolvers() {} + + function replaceDelay(newDelay: Delay) { + const oldDelay = _delay; + _delay = newDelay; function restore() { - delay = oldDelay; + _delay = oldDelay; } return Object.assign(restore, { @@ -80,7 +135,7 @@ export const createHandler = ( Object.defineProperty(replaceDelay, "currentDelay", { get() { - return delay; + return _delay; }, }); @@ -156,7 +211,7 @@ export const createHandler = ( chunk, ) ) { - await mswDelay(delay); + await mswDelay(_delay); } controller.enqueue(encoder.encode(chunk)); } @@ -179,7 +234,7 @@ export const createHandler = ( variableValues: variables, }); - await mswDelay(delay); + await mswDelay(_delay); return HttpResponse.json(result as SingularExecutionResult); } diff --git a/vitest.config.ts b/vitest.config.ts index 2372f92..56f1118 100644 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -9,5 +9,10 @@ export default defineConfig({ globals: true, environment: "jsdom", setupFiles: ["./setupTests.ts"], + server: { + deps: { + fallbackCJS: true, + }, + }, }, }); From 7603bc108f50bbec604dd75772a49a32cb36a03f Mon Sep 17 00:00:00 2001 From: Alessia Bellisario Date: Wed, 31 Jul 2024 17:11:52 -0400 Subject: [PATCH 02/19] save progress --- .../stories/components/relay/schema.graphql | 67 + package.json | 2 +- pnpm-lock.yaml | 26 +- publicGitHubSchema.graphql | 64020 ++++++++++++++++ src/__tests__/handlers.test.tsx | 364 +- src/__tests__/mocks/handlers.ts | 50 +- src/handlers.ts | 182 +- 7 files changed, 64489 insertions(+), 222 deletions(-) create mode 100644 publicGitHubSchema.graphql diff --git a/.storybook/stories/components/relay/schema.graphql b/.storybook/stories/components/relay/schema.graphql index b25acda..32b5515 100644 --- a/.storybook/stories/components/relay/schema.graphql +++ b/.storybook/stories/components/relay/schema.graphql @@ -104,12 +104,79 @@ type Query { viewer: User } +scalar Date + +type EntitiesError { + message: String! +} + +type EntitiesErrorResponse { + errors: [EntitiesError!]! +} + +type EntitiesResponse { + entities: [Entity!]! +} + +union EntitiesResponseOrError = EntitiesResponse | EntitiesErrorResponse + +type Entity { + typename: String! +} + type Review { id: ID! rating: Float content: String } +interface Book { + id: ID! + title: String + publishedAt: Date +} + +interface ReadableObject { + text: String +} + +type TextBook implements Book & ReadableObject { + id: ID! + title: String + publishedAt: Date + text: String +} + +type ColoringBook implements Book { + id: ID! + title: String + publishedAt: Date + colors: [String] +} + +enum ContractVariantFailedStep { + ADD_DIRECTIVE_DEFINITIONS_IF_NOT_PRESENT + ADD_INACCESSIBLE_SPEC_PURPOSE + DIRECTIVE_DEFINITION_LOCATION_AUGMENTING + EMPTY_ENUM_MASKING + EMPTY_INPUT_OBJECT_MASKING + EMPTY_OBJECT_AND_INTERFACE_FIELD_MASKING + EMPTY_OBJECT_AND_INTERFACE_MASKING + EMPTY_UNION_MASKING + INPUT_VALIDATION + PARSING + PARSING_TAG_DIRECTIVES + PARTIAL_INTERFACE_MASKING + SCHEMA_RETRIEVAL + TAG_INHERITING + TAG_MATCHING + TO_API_SCHEMA + TO_FILTER_SCHEMA + UNKNOWN + UNREACHABLE_TYPE_MASKING + VERSION_CHECK +} + """ An user account in our system """ diff --git a/package.json b/package.json index e81b199..f7c5ba5 100644 --- a/package.json +++ b/package.json @@ -58,7 +58,6 @@ "@graphql-codegen/typescript": "4.0.9", "@graphql-codegen/typescript-resolvers": "4.2.1", "@graphql-tools/jest-transform": "2.0.0", - "@graphql-tools/merge": "9.0.4", "@playwright/test": "1.45.0", "@storybook/addon-docs": "8.2.2", "@storybook/addon-essentials": "8.2.2", @@ -118,6 +117,7 @@ }, "dependencies": { "@graphql-tools/executor": "^1.2.7", + "@graphql-tools/merge": "^9.0.4", "@graphql-tools/mock": "^9.0.4", "@graphql-tools/schema": "^10.0.4", "graphql-tag": "^2.12.6", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index dff8d66..42ad53b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -11,6 +11,9 @@ importers: '@graphql-tools/executor': specifier: ^1.2.7 version: 1.2.7(graphql@16.9.0) + '@graphql-tools/merge': + specifier: ^9.0.4 + version: 9.0.4(graphql@16.9.0) '@graphql-tools/mock': specifier: ^9.0.4 version: 9.0.4(graphql@16.9.0) @@ -45,9 +48,6 @@ importers: '@graphql-tools/jest-transform': specifier: 2.0.0 version: 2.0.0(graphql@16.9.0) - '@graphql-tools/merge': - specifier: 9.0.4 - version: 9.0.4(graphql@16.9.0) '@playwright/test': specifier: 1.45.0 version: 1.45.0 @@ -9153,9 +9153,9 @@ snapshots: '@graphql-tools/merge@9.0.4(graphql@16.9.0)': dependencies: - '@graphql-tools/utils': 10.2.1(graphql@16.9.0) + '@graphql-tools/utils': 10.3.2(graphql@16.9.0) graphql: 16.9.0 - tslib: 2.6.2 + tslib: 2.6.3 '@graphql-tools/mock@9.0.4(graphql@16.9.0)': dependencies: @@ -9168,7 +9168,7 @@ snapshots: '@graphql-tools/optimize@2.0.0(graphql@16.9.0)': dependencies: graphql: 16.9.0 - tslib: 2.6.2 + tslib: 2.6.3 '@graphql-tools/prisma-loader@8.0.4(@types/node@20.14.9)(graphql@16.9.0)': dependencies: @@ -9242,7 +9242,7 @@ snapshots: cross-inspect: 1.0.0 dset: 3.1.3 graphql: 16.9.0 - tslib: 2.6.2 + tslib: 2.6.3 '@graphql-tools/utils@10.3.2(graphql@16.9.0)': dependencies: @@ -10760,7 +10760,7 @@ snapshots: '@wry/context@0.7.4': dependencies: - tslib: 2.6.2 + tslib: 2.6.3 '@wry/equality@0.5.7': dependencies: @@ -10768,7 +10768,7 @@ snapshots: '@wry/trie@0.4.3': dependencies: - tslib: 2.6.2 + tslib: 2.6.3 '@wry/trie@0.5.0': dependencies: @@ -10965,7 +10965,7 @@ snapshots: ast-types@0.16.1: dependencies: - tslib: 2.6.2 + tslib: 2.6.3 astral-regex@2.0.0: {} @@ -11611,7 +11611,7 @@ snapshots: cross-inspect@1.0.0: dependencies: - tslib: 2.6.2 + tslib: 2.6.3 cross-spawn@5.1.0: dependencies: @@ -14681,7 +14681,7 @@ snapshots: esprima: 4.0.1 source-map: 0.6.1 tiny-invariant: 1.3.3 - tslib: 2.6.2 + tslib: 2.6.3 redent@3.0.0: dependencies: @@ -14860,7 +14860,7 @@ snapshots: rxjs@7.8.1: dependencies: - tslib: 2.6.2 + tslib: 2.6.3 safe-array-concat@1.1.2: dependencies: diff --git a/publicGitHubSchema.graphql b/publicGitHubSchema.graphql new file mode 100644 index 0000000..a8cef75 --- /dev/null +++ b/publicGitHubSchema.graphql @@ -0,0 +1,64020 @@ +directive @requiredCapabilities( + requiredCapabilities: [String!] +) on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION + +""" +Marks an element of a GraphQL schema as only available via a preview header +""" +directive @preview( + """ + The identifier of the API preview that toggles this field. + """ + toggledBy: String! +) on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION + +""" +Defines what type of global IDs are accepted for a mutation argument of type ID. +""" +directive @possibleTypes( + """ + Abstract type of accepted global ID + """ + abstractType: String + + """ + Accepted types of global IDs. + """ + concreteTypes: [String!]! +) on INPUT_FIELD_DEFINITION + +""" +Autogenerated input type of AbortQueuedMigrations +""" +input AbortQueuedMigrationsInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the organization that is running the migrations. + """ + ownerId: ID! @possibleTypes(concreteTypes: ["Organization"]) +} + +""" +Autogenerated return type of AbortQueuedMigrations. +""" +type AbortQueuedMigrationsPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Did the operation succeed? + """ + success: Boolean +} + +""" +Autogenerated input type of AbortRepositoryMigration +""" +input AbortRepositoryMigrationInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the migration to be aborted. + """ + migrationId: ID! @possibleTypes(concreteTypes: ["RepositoryMigration"]) +} + +""" +Autogenerated return type of AbortRepositoryMigration. +""" +type AbortRepositoryMigrationPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Did the operation succeed? + """ + success: Boolean +} + +""" +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! + @possibleTypes(concreteTypes: ["EnterpriseAdministratorInvitation"]) +} + +""" +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 AcceptEnterpriseMemberInvitation +""" +input AcceptEnterpriseMemberInvitationInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The id of the invitation being accepted + """ + invitationId: ID! + @possibleTypes(concreteTypes: ["EnterpriseMemberInvitation"]) +} + +""" +Autogenerated return type of AcceptEnterpriseMemberInvitation. +""" +type AcceptEnterpriseMemberInvitationPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The invitation that was accepted. + """ + invitation: EnterpriseMemberInvitation + + """ + A message confirming the result of accepting an unaffiliated member 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. + + **Upcoming Change on 2024-04-01 UTC** + **Description:** `name` will be removed. + **Reason:** Suggested topics are no longer supported + """ + name: String + + """ + The Node ID of the repository. + + **Upcoming Change on 2024-04-01 UTC** + **Description:** `repositoryId` will be removed. + **Reason:** Suggested topics are no longer supported + """ + repositoryId: ID @possibleTypes(concreteTypes: ["Repository"]) +} + +""" +Autogenerated return type of AcceptTopicSuggestion. +""" +type AcceptTopicSuggestionPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The accepted topic. + """ + topic: Topic + @deprecated( + reason: "Suggested topics are no longer supported Removal on 2024-04-01 UTC." + ) +} + +""" +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 +} + +""" +The actor's type. +""" +enum ActorType { + """ + Indicates a team actor. + """ + TEAM + + """ + Indicates a user actor. + """ + USER +} + +""" +Autogenerated input type of AddAssigneesToAssignable +""" +input AddAssigneesToAssignableInput { + """ + The id of the assignable object to add assignees to. + """ + assignableId: ID! + @possibleTypes( + concreteTypes: ["Issue", "PullRequest"] + abstractType: "Assignable" + ) + + """ + The id of users to add as assignees. + """ + assigneeIds: [ID!]! @possibleTypes(concreteTypes: ["User"]) + + """ + 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! + @possibleTypes( + concreteTypes: ["Issue", "PullRequest"] + abstractType: "IssueOrPullRequest" + ) +} + +""" +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 AddDiscussionComment +""" +input AddDiscussionCommentInput { + """ + The contents of the comment. + """ + body: String! + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The Node ID of the discussion to comment on. + """ + discussionId: ID! @possibleTypes(concreteTypes: ["Discussion"]) + + """ + The Node ID of the discussion comment within this discussion to reply to. + """ + replyToId: ID @possibleTypes(concreteTypes: ["DiscussionComment"]) +} + +""" +Autogenerated return type of AddDiscussionComment. +""" +type AddDiscussionCommentPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The newly created discussion comment. + """ + comment: DiscussionComment +} + +""" +Autogenerated input type of AddDiscussionPollVote +""" +input AddDiscussionPollVoteInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The Node ID of the discussion poll option to vote for. + """ + pollOptionId: ID! @possibleTypes(concreteTypes: ["DiscussionPollOption"]) +} + +""" +Autogenerated return type of AddDiscussionPollVote. +""" +type AddDiscussionPollVotePayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The poll option that a vote was added to. + """ + pollOption: DiscussionPollOption +} + +""" +Autogenerated input type of AddEnterpriseOrganizationMember +""" +input AddEnterpriseOrganizationMemberInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the enterprise which owns the organization. + """ + enterpriseId: ID! @possibleTypes(concreteTypes: ["Enterprise"]) + + """ + The ID of the organization the users will be added to. + """ + organizationId: ID! @possibleTypes(concreteTypes: ["Organization"]) + + """ + The role to assign the users in the organization + """ + role: OrganizationMemberRole + + """ + The IDs of the enterprise members to add. + """ + userIds: [ID!]! +} + +""" +Autogenerated return type of AddEnterpriseOrganizationMember. +""" +type AddEnterpriseOrganizationMemberPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The users who were added to the organization. + """ + users: [User!] +} + +""" +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! @possibleTypes(concreteTypes: ["Enterprise"]) + + """ + 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!]! @possibleTypes(concreteTypes: ["Label"]) + + """ + The id of the labelable object to add labels to. + """ + labelableId: ID! + @possibleTypes( + concreteTypes: ["Discussion", "Issue", "PullRequest"] + abstractType: "Labelable" + ) +} + +""" +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 + @possibleTypes( + concreteTypes: ["Issue", "PullRequest"] + abstractType: "ProjectCardItem" + ) + + """ + The note on the card. + """ + note: String + + """ + The Node ID of the ProjectColumn. + """ + projectColumnId: ID! @possibleTypes(concreteTypes: ["ProjectColumn"]) +} + +""" +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! @possibleTypes(concreteTypes: ["Project"]) +} + +""" +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 AddProjectV2DraftIssue +""" +input AddProjectV2DraftIssueInput { + """ + The IDs of the assignees of the draft issue. + """ + assigneeIds: [ID!] @possibleTypes(concreteTypes: ["User"]) + + """ + The body of the draft issue. + """ + body: String + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the Project to add the draft issue to. + """ + projectId: ID! @possibleTypes(concreteTypes: ["ProjectV2"]) + + """ + The title of the draft issue. A project item can also be created by providing + the URL of an Issue or Pull Request if you have access. + """ + title: String! +} + +""" +Autogenerated return type of AddProjectV2DraftIssue. +""" +type AddProjectV2DraftIssuePayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The draft issue added to the project. + """ + projectItem: ProjectV2Item +} + +""" +Autogenerated input type of AddProjectV2ItemById +""" +input AddProjectV2ItemByIdInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The id of the Issue or Pull Request to add. + """ + contentId: ID! + @possibleTypes( + concreteTypes: ["DraftIssue", "Issue", "PullRequest"] + abstractType: "ProjectV2ItemContent" + ) + + """ + The ID of the Project to add the item to. + """ + projectId: ID! @possibleTypes(concreteTypes: ["ProjectV2"]) +} + +""" +Autogenerated return type of AddProjectV2ItemById. +""" +type AddProjectV2ItemByIdPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The item added to the project. + """ + item: ProjectV2Item +} + +""" +Autogenerated input type of AddPullRequestReviewComment +""" +input AddPullRequestReviewCommentInput { + """ + The text of the comment. This field is required + + **Upcoming Change on 2023-10-01 UTC** + **Description:** `body` will be removed. use addPullRequestReviewThread or addPullRequestReviewThreadReply instead + **Reason:** We are deprecating the addPullRequestReviewComment mutation + """ + body: String + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The SHA of the commit to comment on. + + **Upcoming Change on 2023-10-01 UTC** + **Description:** `commitOID` will be removed. use addPullRequestReviewThread or addPullRequestReviewThreadReply instead + **Reason:** We are deprecating the addPullRequestReviewComment mutation + """ + commitOID: GitObjectID + + """ + The comment id to reply to. + + **Upcoming Change on 2023-10-01 UTC** + **Description:** `inReplyTo` will be removed. use addPullRequestReviewThread or addPullRequestReviewThreadReply instead + **Reason:** We are deprecating the addPullRequestReviewComment mutation + """ + inReplyTo: ID @possibleTypes(concreteTypes: ["PullRequestReviewComment"]) + + """ + The relative path of the file to comment on. + + **Upcoming Change on 2023-10-01 UTC** + **Description:** `path` will be removed. use addPullRequestReviewThread or addPullRequestReviewThreadReply instead + **Reason:** We are deprecating the addPullRequestReviewComment mutation + """ + path: String + + """ + The line index in the diff to comment on. + + **Upcoming Change on 2023-10-01 UTC** + **Description:** `position` will be removed. use addPullRequestReviewThread or addPullRequestReviewThreadReply instead + **Reason:** We are deprecating the addPullRequestReviewComment mutation + """ + position: Int + + """ + The node ID of the pull request reviewing + + **Upcoming Change on 2023-10-01 UTC** + **Description:** `pullRequestId` will be removed. use + addPullRequestReviewThread or addPullRequestReviewThreadReply instead + **Reason:** We are deprecating the addPullRequestReviewComment mutation + """ + pullRequestId: ID @possibleTypes(concreteTypes: ["PullRequest"]) + + """ + The Node ID of the review to modify. + + **Upcoming Change on 2023-10-01 UTC** + **Description:** `pullRequestReviewId` will be removed. use + addPullRequestReviewThread or addPullRequestReviewThreadReply instead + **Reason:** We are deprecating the addPullRequestReviewComment mutation + """ + pullRequestReviewId: ID @possibleTypes(concreteTypes: ["PullRequestReview"]) +} + +""" +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. + + **Upcoming Change on 2023-10-01 UTC** + **Description:** `comments` will be removed. use the `threads` argument instead + **Reason:** We are deprecating comment fields that use diff-relative positioning + """ + 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! @possibleTypes(concreteTypes: ["PullRequest"]) + + """ + 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, required for line-level + threads. 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 @possibleTypes(concreteTypes: ["PullRequest"]) + + """ + The Node ID of the review to modify. + """ + pullRequestReviewId: ID @possibleTypes(concreteTypes: ["PullRequestReview"]) + + """ + 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 + + """ + The level at which the comments in the corresponding thread are targeted, can be a diff line or a file + """ + subjectType: PullRequestReviewThreadSubjectType = LINE +} + +""" +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 AddPullRequestReviewThreadReply +""" +input AddPullRequestReviewThreadReplyInput { + """ + The text of the reply. + """ + body: String! + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The Node ID of the pending review to which the reply will belong. + """ + pullRequestReviewId: ID @possibleTypes(concreteTypes: ["PullRequestReview"]) + + """ + The Node ID of the thread to which this reply is being written. + """ + pullRequestReviewThreadId: ID! + @possibleTypes(concreteTypes: ["PullRequestReviewThread"]) +} + +""" +Autogenerated return type of AddPullRequestReviewThreadReply. +""" +type AddPullRequestReviewThreadReplyPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The newly created reply. + """ + comment: PullRequestReviewComment +} + +""" +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! + @possibleTypes( + concreteTypes: [ + "CommitComment" + "Discussion" + "DiscussionComment" + "Issue" + "IssueComment" + "PullRequest" + "PullRequestReview" + "PullRequestReviewComment" + "Release" + "TeamDiscussion" + "TeamDiscussionComment" + ] + abstractType: "Reactable" + ) +} + +""" +Autogenerated return type of AddReaction. +""" +type AddReactionPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The reaction object. + """ + reaction: Reaction + + """ + The reaction groups for the subject. + """ + reactionGroups: [ReactionGroup!] + + """ + 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! + @possibleTypes( + concreteTypes: ["Gist", "Repository", "Topic"] + abstractType: "Starrable" + ) +} + +""" +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 AddUpvote +""" +input AddUpvoteInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The Node ID of the discussion or comment to upvote. + """ + subjectId: ID! + @possibleTypes( + concreteTypes: ["Discussion", "DiscussionComment"] + abstractType: "Votable" + ) +} + +""" +Autogenerated return type of AddUpvote. +""" +type AddUpvotePayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The votable subject. + """ + subject: Votable +} + +""" +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! + @possibleTypes( + concreteTypes: ["Enterprise", "Organization"] + abstractType: "VerifiableDomainOwner" + ) +} + +""" +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 an 'added_to_merge_queue' event on a given pull request. +""" +type AddedToMergeQueueEvent 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 added this Pull Request to the merge queue + """ + enqueuer: User + + """ + The Node ID of the AddedToMergeQueueEvent object + """ + id: ID! + + """ + The merge queue where this pull request was added to. + """ + mergeQueue: MergeQueue + + """ + PullRequest referenced by event. + """ + pullRequest: PullRequest +} + +""" +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 + + """ + The Node ID of the AddedToProjectEvent object + """ + id: ID! + + """ + Project referenced by event. + """ + project: Project + + """ + Project card referenced by this project event. + """ + projectCard: ProjectCard + + """ + Column name referenced by this project event. + """ + projectColumnName: String! +} + +""" +Represents an announcement banner. +""" +interface AnnouncementBanner { + """ + The text of the announcement + """ + announcement: String + + """ + The date the announcement was created + """ + announcementCreatedAt: DateTime + + """ + The expiration date of the announcement, if any + """ + announcementExpiresAt: DateTime + + """ + Whether the announcement can be dismissed by the user + """ + announcementUserDismissible: Boolean +} + +""" +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 + + """ + The Node ID of the App object + """ + id: ID! + + """ + The IP addresses of the app. + """ + 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! + + """ + 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 ApproveDeployments +""" +input ApproveDeploymentsInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Optional comment for approving deployments + """ + comment: String = "" + + """ + The ids of environments to reject deployments + """ + environmentIds: [ID!]! + + """ + The node ID of the workflow run containing the pending deployments. + """ + workflowRunId: ID! @possibleTypes(concreteTypes: ["WorkflowRun"]) +} + +""" +Autogenerated return type of ApproveDeployments. +""" +type ApproveDeploymentsPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The affected deployments. + """ + deployments: [Deployment!] +} + +""" +Autogenerated input type of ApproveVerifiableDomain +""" +input ApproveVerifiableDomainInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the verifiable domain to approve. + """ + id: ID! @possibleTypes(concreteTypes: ["VerifiableDomain"]) +} + +""" +Autogenerated return type of ApproveVerifiableDomain. +""" +type ApproveVerifiableDomainPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The verifiable domain that was approved. + """ + domain: VerifiableDomain +} + +""" +Autogenerated input type of ArchiveProjectV2Item +""" +input ArchiveProjectV2ItemInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the ProjectV2Item to archive. + """ + itemId: ID! @possibleTypes(concreteTypes: ["ProjectV2Item"]) + + """ + The ID of the Project to archive the item from. + """ + projectId: ID! @possibleTypes(concreteTypes: ["ProjectV2"]) +} + +""" +Autogenerated return type of ArchiveProjectV2Item. +""" +type ArchiveProjectV2ItemPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The item archived from the project. + """ + item: ProjectV2Item +} + +""" +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! @possibleTypes(concreteTypes: ["Repository"]) +} + +""" +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! + + """ + The Node ID of the AssignedEvent object + """ + 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 + + """ + The Node ID of the AutoMergeDisabledEvent object + """ + 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 + + """ + The Node ID of the AutoMergeEnabledEvent object + """ + 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. If a merge queue is required by + the base branch, this value will be set by the merge queue when merging. + """ + commitBody: String + + """ + The commit title of the auto-merge request. If a merge queue is required by + the base branch, this value will be set by the merge queue when merging + """ + 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. If a merge queue is required by + the base branch, this value will be set by the merge queue when merging. + """ + 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 + + """ + The Node ID of the AutoRebaseEnabledEvent object + """ + 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 + + """ + The Node ID of the AutoSquashEnabledEvent object + """ + 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! + + """ + The Node ID of the AutomaticBaseChangeFailedEvent object + """ + 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! + + """ + The Node ID of the AutomaticBaseChangeSucceededEvent object + """ + id: ID! + + """ + The new base for this PR + """ + newBase: String! + + """ + The old base for this PR + """ + oldBase: String! + + """ + PullRequest referenced by event. + """ + pullRequest: PullRequest! +} + +""" +A (potentially binary) string encoded using base64. +""" +scalar Base64String + +""" +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 + + """ + The Node ID of the BaseRefChangedEvent object + """ + 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! + + """ + The Node ID of the BaseRefDeletedEvent object + """ + 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! + + """ + The Node ID of the BaseRefForcePushedEvent object + """ + id: ID! + + """ + PullRequest referenced by event. + """ + pullRequest: PullRequest! + + """ + Identifies the fully qualified ref name for the 'base_ref_force_pushed' event. + """ + ref: Ref +} + +""" +Represents non-fractional signed whole numeric values. Since the value may +exceed the size of a 32-bit integer, it's encoded as a string. +""" +scalar BigInt + +""" +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! + + """ + The Node ID of the Blob object + """ + 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 + + """ + The Node ID of the Bot object + """ + 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! +} + +""" +Types which can be actors for `BranchActorAllowance` objects. +""" +union BranchActorAllowanceActor = App | Team | User + +""" +Parameters to be used for the branch_name_pattern rule +""" +type BranchNamePatternParameters { + """ + How this rule will appear to users. + """ + name: String + + """ + If true, the rule will fail if the pattern matches. + """ + negate: Boolean! + + """ + The operator to use for matching. + """ + operator: String! + + """ + The pattern to match with. + """ + pattern: String! +} + +""" +Parameters to be used for the branch_name_pattern rule +""" +input BranchNamePatternParametersInput { + """ + How this rule will appear to users. + """ + name: String + + """ + If true, the rule will fail if the pattern matches. + """ + negate: Boolean + + """ + The operator to use for matching. + """ + operator: String! + + """ + The pattern to match with. + """ + pattern: String! +} + +""" +A branch protection rule. +""" +type BranchProtectionRule implements Node { + """ + Can this branch be deleted. + """ + allowsDeletions: Boolean! + + """ + Are force pushes allowed on this branch. + """ + allowsForcePushes: Boolean! + + """ + Is branch creation a protected operation. + """ + blocksCreations: 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! + + """ + A list of actors able to force push for this branch protection rule. + """ + bypassForcePushAllowances( + """ + 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 + ): BypassForcePushAllowanceConnection! + + """ + A list of actors able to bypass PRs for this branch protection rule. + """ + bypassPullRequestAllowances( + """ + 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 + ): BypassPullRequestAllowanceConnection! + + """ + 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! + + """ + The Node ID of the BranchProtectionRule object + """ + id: ID! + + """ + Can admins override branch protection. + """ + isAdminEnforced: Boolean! + + """ + Whether users can pull changes from upstream when the branch is locked. Set to + `true` to allow fork syncing. Set to `false` to prevent fork syncing. + """ + lockAllowsFetchAndMerge: Boolean! + + """ + Whether to set the branch as read-only. If this is true, users will not be able to push to the branch. + """ + lockBranch: 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 + + """ + Whether the most recent push must be approved by someone other than the person who pushed it + """ + requireLastPushApproval: Boolean! + + """ + Number of approving reviews required to update matching branches. + """ + requiredApprovingReviewCount: Int + + """ + List of required deployment environments that must be deployed successfully to update matching branches + """ + requiredDeploymentEnvironments: [String] + + """ + List of required status check contexts that must pass for commits to be accepted to matching branches. + """ + requiredStatusCheckContexts: [String] + + """ + List of required status checks that must pass for commits to be accepted to matching branches. + """ + requiredStatusChecks: [RequiredStatusCheckDescription!] + + """ + 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 conversations required to be resolved before merging. + """ + requiresConversationResolution: Boolean! + + """ + Does this branch require deployment to specific environments before merging + """ + requiresDeployments: 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 +} + +""" +Information about a sponsorship to make for a user or organization with a GitHub +Sponsors profile, as part of sponsoring many users or organizations at once. +""" +input BulkSponsorship { + """ + The amount to pay to the sponsorable in US dollars. Valid values: 1-12000. + """ + amount: Int! + + """ + The ID of the user or organization who is receiving the sponsorship. Required if sponsorableLogin is not given. + """ + sponsorableId: ID + @possibleTypes( + concreteTypes: ["Organization", "User"] + abstractType: "Sponsorable" + ) + + """ + The username of the user or organization who is receiving the sponsorship. Required if sponsorableId is not given. + """ + sponsorableLogin: String +} + +""" +Types that can represent a repository ruleset bypass actor. +""" +union BypassActor = App | Team + +""" +A user, team, or app who has the ability to bypass a force push requirement on a protected branch. +""" +type BypassForcePushAllowance implements Node { + """ + The actor that can force push. + """ + actor: BranchActorAllowanceActor + + """ + Identifies the branch protection rule associated with the allowed user, team, or app. + """ + branchProtectionRule: BranchProtectionRule + + """ + The Node ID of the BypassForcePushAllowance object + """ + id: ID! +} + +""" +The connection type for BypassForcePushAllowance. +""" +type BypassForcePushAllowanceConnection { + """ + A list of edges. + """ + edges: [BypassForcePushAllowanceEdge] + + """ + A list of nodes. + """ + nodes: [BypassForcePushAllowance] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type BypassForcePushAllowanceEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: BypassForcePushAllowance +} + +""" +A user, team, or app who has the ability to bypass a pull request requirement on a protected branch. +""" +type BypassPullRequestAllowance implements Node { + """ + The actor that can bypass. + """ + actor: BranchActorAllowanceActor + + """ + Identifies the branch protection rule associated with the allowed user, team, or app. + """ + branchProtectionRule: BranchProtectionRule + + """ + The Node ID of the BypassPullRequestAllowance object + """ + id: ID! +} + +""" +The connection type for BypassPullRequestAllowance. +""" +type BypassPullRequestAllowanceConnection { + """ + A list of edges. + """ + edges: [BypassPullRequestAllowanceEdge] + + """ + A list of nodes. + """ + nodes: [BypassPullRequestAllowance] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type BypassPullRequestAllowanceEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: BypassPullRequestAllowance +} + +""" +The Common Vulnerability Scoring System +""" +type CVSS { + """ + The CVSS score associated with this advisory + """ + score: Float! + + """ + The CVSS vector string associated with this advisory + """ + vectorString: String +} + +""" +A common weakness enumeration +""" +type CWE implements Node { + """ + The id of the CWE + """ + cweId: String! + + """ + A detailed description of this CWE + """ + description: String! + + """ + The Node ID of the CWE object + """ + id: ID! + + """ + The name of this CWE + """ + name: String! +} + +""" +The connection type for CWE. +""" +type CWEConnection { + """ + A list of edges. + """ + edges: [CWEEdge] + + """ + A list of nodes. + """ + nodes: [CWE] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type CWEEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: CWE +} + +""" +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! + @possibleTypes(concreteTypes: ["EnterpriseAdministratorInvitation"]) +} + +""" +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 CancelEnterpriseMemberInvitation +""" +input CancelEnterpriseMemberInvitationInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The Node ID of the pending enterprise member invitation. + """ + invitationId: ID! + @possibleTypes(concreteTypes: ["EnterpriseMemberInvitation"]) +} + +""" +Autogenerated return type of CancelEnterpriseMemberInvitation. +""" +type CancelEnterpriseMemberInvitationPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The invitation that was canceled. + """ + invitation: EnterpriseMemberInvitation + + """ + A message confirming the result of canceling an member invitation. + """ + message: String +} + +""" +Autogenerated input type of CancelSponsorship +""" +input CancelSponsorshipInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the user or organization who is acting as the sponsor, paying for + the sponsorship. Required if sponsorLogin is not given. + """ + sponsorId: ID + @possibleTypes( + concreteTypes: ["Organization", "User"] + abstractType: "Sponsor" + ) + + """ + The username of the user or organization who is acting as the sponsor, paying + for the sponsorship. Required if sponsorId is not given. + """ + sponsorLogin: String + + """ + The ID of the user or organization who is receiving the sponsorship. Required if sponsorableLogin is not given. + """ + sponsorableId: ID + @possibleTypes( + concreteTypes: ["Organization", "User"] + abstractType: "Sponsorable" + ) + + """ + The username of the user or organization who is receiving the sponsorship. Required if sponsorableId is not given. + """ + sponsorableLogin: String +} + +""" +Autogenerated return type of CancelSponsorship. +""" +type CancelSponsorshipPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The tier that was being used at the time of cancellation. + """ + sponsorsTier: SponsorsTier +} + +""" +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 @possibleTypes(concreteTypes: ["Organization"]) +} + +""" +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 & RequirableByPullRequest & 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 corresponding deployment for this job, if any + """ + deployment: Deployment + + """ + 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 + + """ + The Node ID of the CheckRun object + """ + id: ID! + + """ + Whether this is required to pass before merging for a specific pull request. + """ + isRequired( + """ + The id of the pull request this is required for + """ + pullRequestId: ID + + """ + The number of the pull request this is required for + """ + pullRequestNumber: Int + ): Boolean! + + """ + The name of the check for this check run. + """ + name: String! + + """ + Information about a pending deployment, if any, in this check run + """ + pendingDeploymentRequest: DeploymentRequest + + """ + 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! + + """ + The check run's steps + """ + steps( + """ + 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 + + """ + Step number + """ + number: Int + ): CheckStepConnection + + """ + 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 these conclusions. + """ + conclusions: [CheckConclusionState!] + + """ + Filters the check runs by this status. Superceded by statuses. + """ + status: CheckStatusState + + """ + Filters the check runs by this status. Overrides status. + """ + statuses: [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 states of a check run in a status rollup. +""" +enum CheckRunState { + """ + The check run requires action. + """ + ACTION_REQUIRED + + """ + The check run has been cancelled. + """ + CANCELLED + + """ + The check run has been completed. + """ + COMPLETED + + """ + The check run has failed. + """ + FAILURE + + """ + The check run is in progress. + """ + IN_PROGRESS + + """ + The check run was neutral. + """ + NEUTRAL + + """ + The check run is in pending state. + """ + PENDING + + """ + The check run has been queued. + """ + QUEUED + + """ + The check run was skipped. + """ + SKIPPED + + """ + The check run was marked stale by GitHub. Only GitHub can use this conclusion. + """ + STALE + + """ + The check run has failed at startup. + """ + STARTUP_FAILURE + + """ + The check run has succeeded. + """ + SUCCESS + + """ + The check run has timed out. + """ + TIMED_OUT + + """ + The check run is in waiting state. + """ + WAITING +} + +""" +Represents a count of the state of a check run. +""" +type CheckRunStateCount { + """ + The number of check runs with this state. + """ + count: Int! + + """ + The state of a check run. + """ + state: CheckRunState! +} + +""" +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 is in pending state. + """ + PENDING + + """ + 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 single check step. +""" +type CheckStep { + """ + Identifies the date and time when the check step was completed. + """ + completedAt: DateTime + + """ + The conclusion of the check step. + """ + conclusion: CheckConclusionState + + """ + A reference for the check step on the integrator's system. + """ + externalId: String + + """ + The step's name. + """ + name: String! + + """ + The index of the step in the list of steps of the parent check run. + """ + number: Int! + + """ + Number of seconds to completion. + """ + secondsToCompletion: Int + + """ + Identifies the date and time when the check step was started. + """ + startedAt: DateTime + + """ + The current status of the check step. + """ + status: CheckStatusState! +} + +""" +The connection type for CheckStep. +""" +type CheckStepConnection { + """ + A list of edges. + """ + edges: [CheckStepEdge] + + """ + A list of nodes. + """ + nodes: [CheckStep] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type CheckStepEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: CheckStep +} + +""" +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! + + """ + The user who triggered the check suite. + """ + creator: User + + """ + Identifies the primary key from the database. + """ + databaseId: Int + + """ + The Node ID of the CheckSuite object + """ + 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 workflow run associated with this check suite. + """ + workflowRun: WorkflowRun +} + +""" +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 +} + +""" +An object which can have its data claimed or claim data from another. +""" +union Claimable = Mannequin | User + +""" +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! + @possibleTypes( + concreteTypes: ["Discussion", "Issue", "PullRequest"] + abstractType: "Labelable" + ) +} + +""" +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 ClearProjectV2ItemFieldValue +""" +input ClearProjectV2ItemFieldValueInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the field to be cleared. + """ + fieldId: ID! + @possibleTypes( + concreteTypes: [ + "ProjectV2Field" + "ProjectV2IterationField" + "ProjectV2SingleSelectField" + ] + abstractType: "ProjectV2FieldConfiguration" + ) + + """ + The ID of the item to be cleared. + """ + itemId: ID! @possibleTypes(concreteTypes: ["ProjectV2Item"]) + + """ + The ID of the Project. + """ + projectId: ID! @possibleTypes(concreteTypes: ["ProjectV2"]) +} + +""" +Autogenerated return type of ClearProjectV2ItemFieldValue. +""" +type ClearProjectV2ItemFieldValuePayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The updated item. + """ + projectV2Item: ProjectV2Item +} + +""" +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! @possibleTypes(concreteTypes: ["Project"]) + + """ + The owner ID to create the project under. + """ + targetOwnerId: ID! + @possibleTypes( + concreteTypes: ["Organization", "Repository", "User"] + abstractType: "ProjectOwner" + ) +} + +""" +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! + @possibleTypes( + concreteTypes: ["Organization", "User"] + abstractType: "RepositoryOwner" + ) + + """ + The Node ID of the template repository. + """ + repositoryId: ID! @possibleTypes(concreteTypes: ["Repository"]) + + """ + 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 { + """ + Indicates 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 + + """ + Indicates if the object can be closed by the viewer. + """ + viewerCanClose: Boolean! + + """ + Indicates if the object can be reopened by the viewer. + """ + viewerCanReopen: Boolean! +} + +""" +Autogenerated input type of CloseDiscussion +""" +input CloseDiscussionInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + ID of the discussion to be closed. + """ + discussionId: ID! @possibleTypes(concreteTypes: ["Discussion"]) + + """ + The reason why the discussion is being closed. + """ + reason: DiscussionCloseReason = RESOLVED +} + +""" +Autogenerated return type of CloseDiscussion. +""" +type CloseDiscussionPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The discussion that was closed. + """ + discussion: Discussion +} + +""" +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! @possibleTypes(concreteTypes: ["Issue"]) + + """ + The reason the issue is to be closed. + """ + stateReason: IssueClosedStateReason +} + +""" +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! @possibleTypes(concreteTypes: ["PullRequest"]) +} + +""" +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! + + """ + The Node ID of the ClosedEvent object + """ + id: ID! + + """ + The HTTP path for this closed event. + """ + resourcePath: URI! + + """ + The reason the issue state was changed to closed. + """ + stateReason: IssueStateReason + + """ + The HTTP URL for this closed event. + """ + url: URI! +} + +""" +The object which triggered a `ClosedEvent`. +""" +union Closer = Commit | ProjectV2 | PullRequest + +""" +The Code of Conduct for a repository +""" +type CodeOfConduct implements Node { + """ + The body of the Code of Conduct + """ + body: String + + """ + The Node ID of the CodeOfConduct object + """ + 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 +} + +""" +Choose which tools must provide code scanning results before the reference is +updated. When configured, code scanning must be enabled and have results for +both the commit and the reference being updated. +""" +type CodeScanningParameters { + """ + Tools that must provide code scanning results for this rule to pass. + """ + codeScanningTools: [CodeScanningTool!]! +} + +""" +Choose which tools must provide code scanning results before the reference is +updated. When configured, code scanning must be enabled and have results for +both the commit and the reference being updated. +""" +input CodeScanningParametersInput { + """ + Tools that must provide code scanning results for this rule to pass. + """ + codeScanningTools: [CodeScanningToolInput!]! +} + +""" +A tool that must provide code scanning results for this rule to pass. +""" +type CodeScanningTool { + """ + The severity level at which code scanning results that raise alerts block a + reference update. For more information on alert severity levels, see... + """ + alertsThreshold: String! + + """ + The severity level at which code scanning results that raise security alerts + block a reference update. For more information on security severity levels, + see... + """ + securityAlertsThreshold: String! + + """ + The name of a code scanning tool + """ + tool: String! +} + +""" +A tool that must provide code scanning results for this rule to pass. +""" +input CodeScanningToolInput { + """ + The severity level at which code scanning results that raise alerts block a + reference update. For more information on alert severity levels, see... + """ + alertsThreshold: String! + + """ + The severity level at which code scanning results that raise security alerts + block a reference update. For more information on security severity levels, + see... + """ + securityAlertsThreshold: String! + + """ + The name of a code scanning tool + """ + tool: String! +} + +""" +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 + + """ + The Node ID of the Comment object + """ + 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 + + """ + The Node ID of the CommentDeletedEvent object + """ + 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 merged Pull Request that introduced the commit to the repository. If the + commit is not present in the default branch, additionally returns open Pull + Requests associated with the 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! + + """ + We recommend using the `changedFilesIfAvailable` field instead of + `changedFiles`, as `changedFiles` will cause your request to return an error + if GitHub is unable to calculate the number of changed files. + """ + changedFiles: Int! + @deprecated( + reason: "`changedFiles` will be removed. Use `changedFilesIfAvailable` instead. Removal on 2023-01-01 UTC." + ) + + """ + The number of changed files in this commit. If GitHub is unable to calculate + the number of changed files (for example due to a timeout), this will return + `null`. We recommend using this field instead of `changedFiles`. + """ + changedFilesIfAvailable: 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. Unexpected + results may be returned for dates not between 1970-01-01 and 2099-12-13 (inclusive). + """ + since: GitTimestamp + + """ + Allows specifying an ending time or date for fetching commits. Unexpected + results may be returned for dates not between 1970-01-01 and 2099-12-13 (inclusive). + """ + until: GitTimestamp + ): CommitHistoryConnection! + + """ + The Node ID of the Commit object + """ + 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 + @deprecated( + reason: "`pushedDate` is no longer supported. Removal on 2023-07-01 UTC." + ) + + """ + 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 +} + +""" +Parameters to be used for the commit_author_email_pattern rule +""" +type CommitAuthorEmailPatternParameters { + """ + How this rule will appear to users. + """ + name: String + + """ + If true, the rule will fail if the pattern matches. + """ + negate: Boolean! + + """ + The operator to use for matching. + """ + operator: String! + + """ + The pattern to match with. + """ + pattern: String! +} + +""" +Parameters to be used for the commit_author_email_pattern rule +""" +input CommitAuthorEmailPatternParametersInput { + """ + How this rule will appear to users. + """ + name: String + + """ + If true, the rule will fail if the pattern matches. + """ + negate: Boolean + + """ + The operator to use for matching. + """ + operator: String! + + """ + The pattern to match with. + """ + pattern: String! +} + +""" +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 + + """ + The Node ID of the CommitComment object + """ + 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. One of `abuse`, `off-topic`, + `outdated`, `resolved`, `duplicate` and `spam`. Note that the case and + formatting of these values differs from the inputs to the `MinimizeComment` mutation. + """ + 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 + + """ + The Node ID of the CommitCommentThread object + """ + 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! +} + +""" +A message to include with a new commit +""" +input CommitMessage { + """ + The body of the message. + """ + body: String + + """ + The headline of the message. + """ + headline: String! +} + +""" +Parameters to be used for the commit_message_pattern rule +""" +type CommitMessagePatternParameters { + """ + How this rule will appear to users. + """ + name: String + + """ + If true, the rule will fail if the pattern matches. + """ + negate: Boolean! + + """ + The operator to use for matching. + """ + operator: String! + + """ + The pattern to match with. + """ + pattern: String! +} + +""" +Parameters to be used for the commit_message_pattern rule +""" +input CommitMessagePatternParametersInput { + """ + How this rule will appear to users. + """ + name: String + + """ + If true, the rule will fail if the pattern matches. + """ + negate: Boolean + + """ + The operator to use for matching. + """ + operator: String! + + """ + The pattern to match with. + """ + pattern: String! +} + +""" +A git ref for a commit to be appended to. + +The ref must be a branch, i.e. its fully qualified name must start +with `refs/heads/` (although the input is not required to be fully +qualified). + +The Ref may be specified by its global node ID or by the +`repositoryNameWithOwner` and `branchName`. + +### Examples + +Specify a branch using a global node ID: + + { "id": "MDM6UmVmMTpyZWZzL2hlYWRzL21haW4=" } + +Specify a branch using `repositoryNameWithOwner` and `branchName`: + + { + "repositoryNameWithOwner": "github/graphql-client", + "branchName": "main" + } +""" +input CommittableBranch { + """ + The unqualified name of the branch to append the commit to. + """ + branchName: String + + """ + The Node ID of the Ref to be updated. + """ + id: ID + + """ + The nameWithOwner of the repository to commit to. + """ + repositoryNameWithOwner: String +} + +""" +Parameters to be used for the committer_email_pattern rule +""" +type CommitterEmailPatternParameters { + """ + How this rule will appear to users. + """ + name: String + + """ + If true, the rule will fail if the pattern matches. + """ + negate: Boolean! + + """ + The operator to use for matching. + """ + operator: String! + + """ + The pattern to match with. + """ + pattern: String! +} + +""" +Parameters to be used for the committer_email_pattern rule +""" +input CommitterEmailPatternParametersInput { + """ + How this rule will appear to users. + """ + name: String + + """ + If true, the rule will fail if the pattern matches. + """ + negate: Boolean + + """ + The operator to use for matching. + """ + operator: String! + + """ + The pattern to match with. + """ + pattern: String! +} + +""" +Represents a comparison between two commit revisions. +""" +type Comparison implements Node { + """ + The number of commits ahead of the base branch. + """ + aheadBy: Int! + + """ + The base revision of this comparison. + """ + baseTarget: GitObject! + + """ + The number of commits behind the base branch. + """ + behindBy: Int! + + """ + The commits which compose this comparison. + """ + 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 + ): ComparisonCommitConnection! + + """ + The head revision of this comparison. + """ + headTarget: GitObject! + + """ + The Node ID of the Comparison object + """ + id: ID! + + """ + The status of this comparison. + """ + status: ComparisonStatus! +} + +""" +The connection type for Commit. +""" +type ComparisonCommitConnection { + """ + The total count of authors and co-authors across all commits. + """ + authorCount: Int! + + """ + 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! +} + +""" +The status of a git comparison between two refs. +""" +enum ComparisonStatus { + """ + The head ref is ahead of the base ref. + """ + AHEAD + + """ + The head ref is behind the base ref. + """ + BEHIND + + """ + The head ref is both ahead and behind of the base ref, indicating git history has diverged. + """ + DIVERGED + + """ + The head ref and base ref are identical. + """ + IDENTICAL +} + +""" +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! + + """ + The Node ID of the ConnectedEvent object + """ + 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! +} + +""" +The Contributing Guidelines for a repository. +""" +type ContributingGuidelines { + """ + The body of the Contributing Guidelines. + """ + body: String + + """ + The HTTP path for the Contributing Guidelines. + """ + resourcePath: URI + + """ + The HTTP URL for the Contributing Guidelines. + """ + url: URI +} + +""" +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. Returns the most recently + submitted review for each PR reviewed 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! @possibleTypes(concreteTypes: ["ProjectCard"]) + + """ + The ID of the repository to create the issue in. + """ + repositoryId: ID! @possibleTypes(concreteTypes: ["Repository"]) + + """ + 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 +} + +""" +Autogenerated input type of ConvertProjectV2DraftIssueItemToIssue +""" +input ConvertProjectV2DraftIssueItemToIssueInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the draft issue ProjectV2Item to convert. + """ + itemId: ID! @possibleTypes(concreteTypes: ["ProjectV2Item"]) + + """ + The ID of the repository to create the issue in. + """ + repositoryId: ID! @possibleTypes(concreteTypes: ["Repository"]) +} + +""" +Autogenerated return type of ConvertProjectV2DraftIssueItemToIssue. +""" +type ConvertProjectV2DraftIssueItemToIssuePayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The updated project item. + """ + item: ProjectV2Item +} + +""" +Autogenerated input type of ConvertPullRequestToDraft +""" +input ConvertPullRequestToDraftInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + ID of the pull request to convert to draft + """ + pullRequestId: ID! @possibleTypes(concreteTypes: ["PullRequest"]) +} + +""" +Autogenerated return type of ConvertPullRequestToDraft. +""" +type ConvertPullRequestToDraftPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The pull request that is now a draft. + """ + pullRequest: PullRequest +} + +""" +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! + + """ + The Node ID of the ConvertToDraftEvent object + """ + 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 + + """ + The Node ID of the ConvertedNoteToIssueEvent object + """ + id: ID! + + """ + Project referenced by event. + """ + project: Project + + """ + Project card referenced by this project event. + """ + projectCard: ProjectCard + + """ + Column name referenced by this project event. + """ + projectColumnName: String! +} + +""" +Represents a 'converted_to_discussion' event on a given issue. +""" +type ConvertedToDiscussionEvent implements Node { + """ + Identifies the actor who performed the event. + """ + actor: Actor + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + The discussion that the issue was converted into. + """ + discussion: Discussion + + """ + The Node ID of the ConvertedToDiscussionEvent object + """ + id: ID! +} + +""" +Copilot endpoint information +""" +type CopilotEndpoints { + """ + Copilot API endpoint + """ + api: String! + + """ + Copilot origin tracker endpoint + """ + originTracker: String! + + """ + Copilot proxy endpoint + """ + proxy: String! + + """ + Copilot telemetry endpoint + """ + telemetry: String! +} + +""" +Autogenerated input type of CopyProjectV2 +""" +input CopyProjectV2Input { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Include draft issues in the new project + """ + includeDraftIssues: Boolean = false + + """ + The owner ID of the new project. + """ + ownerId: ID! + @possibleTypes( + concreteTypes: ["Organization", "User"] + abstractType: "OrganizationOrUser" + ) + + """ + The ID of the source Project to copy. + """ + projectId: ID! @possibleTypes(concreteTypes: ["ProjectV2"]) + + """ + The title of the project. + """ + title: String! +} + +""" +Autogenerated return type of CopyProjectV2. +""" +type CopyProjectV2Payload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The copied project. + """ + projectV2: ProjectV2 +} + +""" +Autogenerated input type of CreateAttributionInvitation +""" +input CreateAttributionInvitationInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The Node ID of the owner scoping the reattributable data. + """ + ownerId: ID! + @possibleTypes( + concreteTypes: ["Bot", "Enterprise", "Mannequin", "Organization", "User"] + abstractType: "Account" + ) + + """ + The Node ID of the account owning the data to reattribute. + """ + sourceId: ID! + @possibleTypes( + concreteTypes: ["Bot", "Enterprise", "Mannequin", "Organization", "User"] + abstractType: "Account" + ) + + """ + The Node ID of the account which may claim the data. + """ + targetId: ID! + @possibleTypes( + concreteTypes: ["Bot", "Enterprise", "Mannequin", "Organization", "User"] + abstractType: "Account" + ) +} + +""" +Autogenerated return type of CreateAttributionInvitation. +""" +type CreateAttributionInvitationPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The owner scoping the reattributable data. + """ + owner: Organization + + """ + The account owning the data to reattribute. + """ + source: Claimable + + """ + The account which may claim the data. + """ + target: Claimable +} + +""" +Autogenerated input type of CreateBranchProtectionRule +""" +input CreateBranchProtectionRuleInput { + """ + Can this branch be deleted. + """ + allowsDeletions: Boolean + + """ + Are force pushes allowed on this branch. + """ + allowsForcePushes: Boolean + + """ + Is branch creation a protected operation. + """ + blocksCreations: Boolean + + """ + A list of User, Team, or App IDs allowed to bypass force push targeting matching branches. + """ + bypassForcePushActorIds: [ID!] + + """ + A list of User, Team, or App IDs allowed to bypass pull requests targeting matching branches. + """ + bypassPullRequestActorIds: [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 override branch protection. + """ + isAdminEnforced: Boolean + + """ + Whether users can pull changes from upstream when the branch is locked. Set to + `true` to allow fork syncing. Set to `false` to prevent fork syncing. + """ + lockAllowsFetchAndMerge: Boolean + + """ + Whether to set the branch as read-only. If this is true, users will not be able to push to the branch. + """ + lockBranch: 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! @possibleTypes(concreteTypes: ["Repository"]) + + """ + Whether the most recent push must be approved by someone other than the person who pushed it + """ + requireLastPushApproval: Boolean + + """ + Number of approving reviews required to update matching branches. + """ + requiredApprovingReviewCount: Int + + """ + The list of required deployment environments + """ + requiredDeploymentEnvironments: [String!] + + """ + List of required status check contexts that must pass for commits to be accepted to matching branches. + """ + requiredStatusCheckContexts: [String!] + + """ + The list of required status checks + """ + requiredStatusChecks: [RequiredStatusCheckInput!] + + """ + 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 conversations required to be resolved before merging. + """ + requiresConversationResolution: Boolean + + """ + Are successful deployments required before merging. + """ + requiresDeployments: 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, Team, or App 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! @possibleTypes(concreteTypes: ["Repository"]) + + """ + 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! @possibleTypes(concreteTypes: ["Repository"]) +} + +""" +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 CreateCommitOnBranch +""" +input CreateCommitOnBranchInput { + """ + The Ref to be updated. Must be a branch. + """ + branch: CommittableBranch! + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The git commit oid expected at the head of the branch prior to the commit + """ + expectedHeadOid: GitObjectID! + + """ + A description of changes to files in this commit. + """ + fileChanges: FileChanges + + """ + The commit message the be included with the commit. + """ + message: CommitMessage! +} + +""" +Autogenerated return type of CreateCommitOnBranch. +""" +type CreateCommitOnBranchPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The new commit. + """ + commit: Commit + + """ + The ref which has been updated to point to the new commit. + """ + ref: Ref +} + +""" +Autogenerated input type of CreateDeployment +""" +input CreateDeploymentInput { + """ + Attempt to automatically merge the default branch into the requested ref, defaults to true. + """ + autoMerge: Boolean = true + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Short description of the deployment. + """ + description: String = "" + + """ + Name for the target deployment environment. + """ + environment: String = "production" + + """ + JSON payload with extra information about the deployment. + """ + payload: String = "{}" + + """ + The node ID of the ref to be deployed. + """ + refId: ID! @possibleTypes(concreteTypes: ["Ref"]) + + """ + The node ID of the repository. + """ + repositoryId: ID! @possibleTypes(concreteTypes: ["Repository"]) + + """ + The status contexts to verify against commit status checks. To bypass required + contexts, pass an empty array. Defaults to all unique contexts. + """ + requiredContexts: [String!] + + """ + Specifies a task to execute. + """ + task: String = "deploy" +} + +""" +Autogenerated return type of CreateDeployment. +""" +type CreateDeploymentPayload { + """ + True if the default branch has been auto-merged into the deployment ref. + """ + autoMerged: Boolean + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The new deployment. + """ + deployment: Deployment +} + +""" +Autogenerated input type of CreateDeploymentStatus +""" +input CreateDeploymentStatusInput { + """ + Adds a new inactive status to all non-transient, non-production environment + deployments with the same repository and environment name as the created + status's deployment. + """ + autoInactive: Boolean = true + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The node ID of the deployment. + """ + deploymentId: ID! @possibleTypes(concreteTypes: ["Deployment"]) + + """ + A short description of the status. Maximum length of 140 characters. + """ + description: String = "" + + """ + If provided, updates the environment of the deploy. Otherwise, does not modify the environment. + """ + environment: String + + """ + Sets the URL for accessing your environment. + """ + environmentUrl: String = "" + + """ + The log URL to associate with this status. This URL should contain + output to keep the user updated while the task is running or serve as + historical information for what happened in the deployment. + """ + logUrl: String = "" + + """ + The state of the deployment. + """ + state: DeploymentStatusState! +} + +""" +Autogenerated return type of CreateDeploymentStatus. +""" +type CreateDeploymentStatusPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The new deployment status. + """ + deploymentStatus: DeploymentStatus +} + +""" +Autogenerated input type of CreateDiscussion +""" +input CreateDiscussionInput { + """ + The body of the discussion. + """ + body: String! + + """ + The id of the discussion category to associate with this discussion. + """ + categoryId: ID! @possibleTypes(concreteTypes: ["DiscussionCategory"]) + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The id of the repository on which to create the discussion. + """ + repositoryId: ID! @possibleTypes(concreteTypes: ["Repository"]) + + """ + The title of the discussion. + """ + title: String! +} + +""" +Autogenerated return type of CreateDiscussion. +""" +type CreateDiscussionPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The discussion that was just created. + """ + discussion: Discussion +} + +""" +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! @possibleTypes(concreteTypes: ["Enterprise"]) + + """ + 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 CreateEnvironment +""" +input CreateEnvironmentInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The name of the environment. + """ + name: String! + + """ + The node ID of the repository. + """ + repositoryId: ID! @possibleTypes(concreteTypes: ["Repository"]) +} + +""" +Autogenerated return type of CreateEnvironment. +""" +type CreateEnvironmentPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The new or existing environment. + """ + environment: Environment +} + +""" +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! + @possibleTypes( + concreteTypes: ["App", "Enterprise", "Organization"] + abstractType: "IpAllowListOwner" + ) +} + +""" +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!] @possibleTypes(concreteTypes: ["User"]) + + """ + 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!] @possibleTypes(concreteTypes: ["Label"]) + + """ + The Node ID of the milestone for this issue. + """ + milestoneId: ID @possibleTypes(concreteTypes: ["Milestone"]) + + """ + An array of Node IDs for projects associated with this issue. + """ + projectIds: [ID!] @possibleTypes(concreteTypes: ["Project"]) + + """ + The Node ID of the repository. + """ + repositoryId: ID! @possibleTypes(concreteTypes: ["Repository"]) + + """ + 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 CreateLabel +""" +input CreateLabelInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + A 6 character hex code, without the leading #, identifying the color of the label. + """ + color: String! + + """ + A brief description of the label, such as its purpose. + """ + description: String + + """ + The name of the label. + """ + name: String! + + """ + The Node ID of the repository. + """ + repositoryId: ID! @possibleTypes(concreteTypes: ["Repository"]) +} + +""" +Autogenerated return type of CreateLabel. +""" +type CreateLabelPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The new label. + """ + label: Label +} + +""" +Autogenerated input type of CreateLinkedBranch +""" +input CreateLinkedBranchInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + ID of the issue to link to. + """ + issueId: ID! @possibleTypes(concreteTypes: ["Issue"]) + + """ + The name of the new branch. Defaults to issue number and title. + """ + name: String + + """ + The commit SHA to base the new branch on. + """ + oid: GitObjectID! + + """ + ID of the repository to create the branch in. Defaults to the issue repository. + """ + repositoryId: ID @possibleTypes(concreteTypes: ["Repository"]) +} + +""" +Autogenerated return type of CreateLinkedBranch. +""" +type CreateLinkedBranchPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The issue that was linked to. + """ + issue: Issue + + """ + The new branch issue reference. + """ + linkedBranch: LinkedBranch +} + +""" +Autogenerated input type of CreateMigrationSource +""" +input CreateMigrationSourceInput { + """ + The migration source access token. + """ + accessToken: String + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The GitHub personal access token of the user importing to the target repository. + """ + githubPat: String + + """ + The migration source name. + """ + name: String! + + """ + The ID of the organization that will own the migration source. + """ + ownerId: ID! @possibleTypes(concreteTypes: ["Organization"]) + + """ + The migration source type. + """ + type: MigrationSourceType! + + """ + The migration source URL, for example `https://github.com` or `https://monalisa.ghe.com`. + """ + url: String +} + +""" +Autogenerated return type of CreateMigrationSource. +""" +type CreateMigrationSourcePayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The created migration source. + """ + migrationSource: MigrationSource +} + +""" +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! + @possibleTypes( + concreteTypes: ["Organization", "Repository", "User"] + abstractType: "ProjectOwner" + ) + + """ + A list of repository IDs to create as linked repositories for the project + """ + repositoryIds: [ID!] @possibleTypes(concreteTypes: ["Repository"]) + + """ + 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 CreateProjectV2Field +""" +input CreateProjectV2FieldInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The data type of the field. + """ + dataType: ProjectV2CustomFieldType! + + """ + The name of the field. + """ + name: String! + + """ + The ID of the Project to create the field in. + """ + projectId: ID! @possibleTypes(concreteTypes: ["ProjectV2"]) + + """ + Options for a single select field. At least one value is required if data_type is SINGLE_SELECT + """ + singleSelectOptions: [ProjectV2SingleSelectFieldOptionInput!] +} + +""" +Autogenerated return type of CreateProjectV2Field. +""" +type CreateProjectV2FieldPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The new field. + """ + projectV2Field: ProjectV2FieldConfiguration +} + +""" +Autogenerated input type of CreateProjectV2 +""" +input CreateProjectV2Input { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The owner ID to create the project under. + """ + ownerId: ID! + @possibleTypes( + concreteTypes: ["Organization", "User"] + abstractType: "OrganizationOrUser" + ) + + """ + The repository to link the project to. + """ + repositoryId: ID @possibleTypes(concreteTypes: ["Repository"]) + + """ + The team to link the project to. The team will be granted read permissions. + """ + teamId: ID @possibleTypes(concreteTypes: ["Team"]) + + """ + The title of the project. + """ + title: String! +} + +""" +Autogenerated return type of CreateProjectV2. +""" +type CreateProjectV2Payload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The new project. + """ + projectV2: ProjectV2 +} + +""" +Autogenerated input type of CreateProjectV2StatusUpdate +""" +input CreateProjectV2StatusUpdateInput { + """ + The body of the status update. + """ + body: String + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the Project to create the status update in. + """ + projectId: ID! @possibleTypes(concreteTypes: ["ProjectV2"]) + + """ + The start date of the status update. + """ + startDate: Date + + """ + The status of the status update. + """ + status: ProjectV2StatusUpdateStatus + + """ + The target date of the status update. + """ + targetDate: Date +} + +""" +Autogenerated return type of CreateProjectV2StatusUpdate. +""" +type CreateProjectV2StatusUpdatePayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The status update updated in the project. + """ + statusUpdate: ProjectV2StatusUpdate +} + +""" +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! + + """ + The Node ID of the head repository. + """ + headRepositoryId: ID @possibleTypes(concreteTypes: ["Repository"]) + + """ + Indicates whether maintainers can modify the pull request. + """ + maintainerCanModify: Boolean = true + + """ + The Node ID of the repository. + """ + repositoryId: ID! @possibleTypes(concreteTypes: ["Repository"]) + + """ + 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! @possibleTypes(concreteTypes: ["Repository"]) +} + +""" +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 + @possibleTypes( + concreteTypes: ["Organization", "User"] + abstractType: "RepositoryOwner" + ) + + """ + When an organization is specified as the owner, this ID identifies the team + that should be granted access to the new repository. + """ + teamId: ID @possibleTypes(concreteTypes: ["Team"]) + + """ + 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 CreateRepositoryRuleset +""" +input CreateRepositoryRulesetInput { + """ + A list of actors that are allowed to bypass rules in this ruleset. + """ + bypassActors: [RepositoryRulesetBypassActorInput!] + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The set of conditions for this ruleset + """ + conditions: RepositoryRuleConditionsInput! + + """ + The enforcement level for this ruleset + """ + enforcement: RuleEnforcement! + + """ + The name of the ruleset. + """ + name: String! + + """ + The list of rules for this ruleset + """ + rules: [RepositoryRuleInput!] + + """ + The global relay id of the source in which a new ruleset should be created in. + """ + sourceId: ID! + @possibleTypes( + concreteTypes: ["Organization", "Repository"] + abstractType: "RuleSource" + ) + + """ + The target of the ruleset. + """ + target: RepositoryRulesetTarget +} + +""" +Autogenerated return type of CreateRepositoryRuleset. +""" +type CreateRepositoryRulesetPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The newly created Ruleset. + """ + ruleset: RepositoryRuleset +} + +""" +Autogenerated input type of CreateSponsorsListing +""" +input CreateSponsorsListingInput { + """ + The country or region where the sponsorable's bank account is located. + Required if fiscalHostLogin is not specified, ignored when fiscalHostLogin is specified. + """ + billingCountryOrRegionCode: SponsorsCountryOrRegionCode + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The email address we should use to contact you about the GitHub Sponsors + profile being created. This will not be shared publicly. Must be a verified + email address already on your GitHub account. Only relevant when the + sponsorable is yourself. Defaults to your primary email address on file if omitted. + """ + contactEmail: String + + """ + The username of the supported fiscal host's GitHub organization, if you want + to receive sponsorship payouts through a fiscal host rather than directly to a + bank account. For example, 'Open-Source-Collective' for Open Source Collective + or 'numfocus' for numFOCUS. Case insensitive. See https://docs.github.com/sponsors/receiving-sponsorships-through-github-sponsors/using-a-fiscal-host-to-receive-github-sponsors-payouts + for more information. + """ + fiscalHostLogin: String + + """ + The URL for your profile page on the fiscal host's website, e.g., + https://opencollective.com/babel or https://numfocus.org/project/bokeh. + Required if fiscalHostLogin is specified. + """ + fiscallyHostedProjectProfileUrl: String + + """ + Provide an introduction to serve as the main focus that appears on your GitHub + Sponsors profile. It's a great opportunity to help potential sponsors learn + more about you, your work, and why their sponsorship is important to you. + GitHub-flavored Markdown is supported. + """ + fullDescription: String + + """ + The country or region where the sponsorable resides. This is for tax purposes. + Required if the sponsorable is yourself, ignored when sponsorableLogin + specifies an organization. + """ + residenceCountryOrRegionCode: SponsorsCountryOrRegionCode + + """ + The username of the organization to create a GitHub Sponsors profile for, if + desired. Defaults to creating a GitHub Sponsors profile for the authenticated + user if omitted. + """ + sponsorableLogin: String +} + +""" +Autogenerated return type of CreateSponsorsListing. +""" +type CreateSponsorsListingPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The new GitHub Sponsors profile. + """ + sponsorsListing: SponsorsListing +} + +""" +Autogenerated input type of CreateSponsorsTier +""" +input CreateSponsorsTierInput { + """ + The value of the new tier in US dollars. Valid values: 1-12000. + """ + amount: Int! + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + A description of what this tier is, what perks sponsors might receive, what a sponsorship at this tier means for you, etc. + """ + description: String! + + """ + Whether sponsorships using this tier should happen monthly/yearly or just once. + """ + isRecurring: Boolean = true + + """ + Whether to make the tier available immediately for sponsors to choose. + Defaults to creating a draft tier that will not be publicly visible. + """ + publish: Boolean = false + + """ + Optional ID of the private repository that sponsors at this tier should gain + read-only access to. Must be owned by an organization. + """ + repositoryId: ID @possibleTypes(concreteTypes: ["Repository"]) + + """ + Optional name of the private repository that sponsors at this tier should gain + read-only access to. Must be owned by an organization. Necessary if + repositoryOwnerLogin is given. Will be ignored if repositoryId is given. + """ + repositoryName: String + + """ + Optional login of the organization owner of the private repository that + sponsors at this tier should gain read-only access to. Necessary if + repositoryName is given. Will be ignored if repositoryId is given. + """ + repositoryOwnerLogin: String + + """ + The ID of the user or organization who owns the GitHub Sponsors profile. + Defaults to the current user if omitted and sponsorableLogin is not given. + """ + sponsorableId: ID + @possibleTypes( + concreteTypes: ["Organization", "User"] + abstractType: "Sponsorable" + ) + + """ + The username of the user or organization who owns the GitHub Sponsors profile. + Defaults to the current user if omitted and sponsorableId is not given. + """ + sponsorableLogin: String + + """ + Optional message new sponsors at this tier will receive. + """ + welcomeMessage: String +} + +""" +Autogenerated return type of CreateSponsorsTier. +""" +type CreateSponsorsTierPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The new tier. + """ + sponsorsTier: SponsorsTier +} + +""" +Autogenerated input type of CreateSponsorship +""" +input CreateSponsorshipInput { + """ + The amount to pay to the sponsorable in US dollars. Required if a tierId is not specified. Valid values: 1-12000. + """ + amount: Int + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Whether the sponsorship should happen monthly/yearly or just this one time. Required if a tierId is not specified. + """ + isRecurring: Boolean + + """ + Specify whether others should be able to see that the sponsor is sponsoring + the sponsorable. Public visibility still does not reveal which tier is used. + """ + privacyLevel: SponsorshipPrivacy = PUBLIC + + """ + Whether the sponsor should receive email updates from the sponsorable. + """ + receiveEmails: Boolean = true + + """ + The ID of the user or organization who is acting as the sponsor, paying for + the sponsorship. Required if sponsorLogin is not given. + """ + sponsorId: ID + @possibleTypes( + concreteTypes: ["Organization", "User"] + abstractType: "Sponsor" + ) + + """ + The username of the user or organization who is acting as the sponsor, paying + for the sponsorship. Required if sponsorId is not given. + """ + sponsorLogin: String + + """ + The ID of the user or organization who is receiving the sponsorship. Required if sponsorableLogin is not given. + """ + sponsorableId: ID + @possibleTypes( + concreteTypes: ["Organization", "User"] + abstractType: "Sponsorable" + ) + + """ + The username of the user or organization who is receiving the sponsorship. Required if sponsorableId is not given. + """ + sponsorableLogin: String + + """ + The ID of one of sponsorable's existing tiers to sponsor at. Required if amount is not specified. + """ + tierId: ID @possibleTypes(concreteTypes: ["SponsorsTier"]) +} + +""" +Autogenerated return type of CreateSponsorship. +""" +type CreateSponsorshipPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The sponsorship that was started. + """ + sponsorship: Sponsorship +} + +""" +Autogenerated input type of CreateSponsorships +""" +input CreateSponsorshipsInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Specify whether others should be able to see that the sponsor is sponsoring + the sponsorables. Public visibility still does not reveal the dollar value of + the sponsorship. + """ + privacyLevel: SponsorshipPrivacy = PUBLIC + + """ + Whether the sponsor should receive email updates from the sponsorables. + """ + receiveEmails: Boolean = false + + """ + Whether the sponsorships created should continue each billing cycle for the + sponsor (monthly or annually), versus lasting only a single month. Defaults to + one-time sponsorships. + """ + recurring: Boolean = false + + """ + The username of the user or organization who is acting as the sponsor, paying for the sponsorships. + """ + sponsorLogin: String! + + """ + The list of maintainers to sponsor and for how much apiece. + """ + sponsorships: [BulkSponsorship!]! +} + +""" +Autogenerated return type of CreateSponsorships. +""" +type CreateSponsorshipsPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The users and organizations who received a sponsorship. + """ + sponsorables: [Sponsorable!] +} + +""" +Autogenerated input type of CreateTeamDiscussionComment +""" +input CreateTeamDiscussionCommentInput { + """ + The content of the comment. This field is required. + + **Upcoming Change on 2024-07-01 UTC** + **Description:** `body` will be removed. Follow the guide at + https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to + find a suitable replacement. + **Reason:** The Team Discussions feature is deprecated in favor of Organization Discussions. + """ + body: String + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the discussion to which the comment belongs. This field is required. + + **Upcoming Change on 2024-07-01 UTC** + **Description:** `discussionId` will be removed. Follow the guide at + https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to + find a suitable replacement. + **Reason:** The Team Discussions feature is deprecated in favor of Organization Discussions. + """ + discussionId: ID @possibleTypes(concreteTypes: ["TeamDiscussion"]) +} + +""" +Autogenerated return type of CreateTeamDiscussionComment. +""" +type CreateTeamDiscussionCommentPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The new comment. + """ + teamDiscussionComment: TeamDiscussionComment + @deprecated( + reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC." + ) +} + +""" +Autogenerated input type of CreateTeamDiscussion +""" +input CreateTeamDiscussionInput { + """ + The content of the discussion. This field is required. + + **Upcoming Change on 2024-07-01 UTC** + **Description:** `body` will be removed. Follow the guide at + https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to + find a suitable replacement. + **Reason:** The Team Discussions feature is deprecated in favor of Organization Discussions. + """ + 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 owners. If false or not specified, allows any organization member + to view this discussion. + + **Upcoming Change on 2024-07-01 UTC** + **Description:** `private` will be removed. Follow the guide at + https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to + find a suitable replacement. + **Reason:** The Team Discussions feature is deprecated in favor of Organization Discussions. + """ + private: Boolean + + """ + The ID of the team to which the discussion belongs. This field is required. + + **Upcoming Change on 2024-07-01 UTC** + **Description:** `teamId` will be removed. Follow the guide at + https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to + find a suitable replacement. + **Reason:** The Team Discussions feature is deprecated in favor of Organization Discussions. + """ + teamId: ID @possibleTypes(concreteTypes: ["Team"]) + + """ + The title of the discussion. This field is required. + + **Upcoming Change on 2024-07-01 UTC** + **Description:** `title` will be removed. Follow the guide at + https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to + find a suitable replacement. + **Reason:** The Team Discussions feature is deprecated in favor of Organization Discussions. + """ + 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 + @deprecated( + reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC." + ) +} + +""" +Autogenerated input type of CreateUserList +""" +input CreateUserListInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + A description of the list + """ + description: String + + """ + Whether or not the list is private + """ + isPrivate: Boolean = false + + """ + The name of the new list + """ + name: String! +} + +""" +Autogenerated return type of CreateUserList. +""" +type CreateUserListPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The list that was just created + """ + list: UserList + + """ + The user who created the list + """ + viewer: User +} + +""" +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! + + """ + The Node ID of the CrossReferencedEvent object + """ + 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. + + **Upcoming Change on 2024-04-01 UTC** + **Description:** `name` will be removed. + **Reason:** Suggested topics are no longer supported + """ + name: String + + """ + The reason why the suggested topic is declined. + + **Upcoming Change on 2024-04-01 UTC** + **Description:** `reason` will be removed. + **Reason:** Suggested topics are no longer supported + """ + reason: TopicSuggestionDeclineReason + + """ + The Node ID of the repository. + + **Upcoming Change on 2024-04-01 UTC** + **Description:** `repositoryId` will be removed. + **Reason:** Suggested topics are no longer supported + """ + repositoryId: ID @possibleTypes(concreteTypes: ["Repository"]) +} + +""" +Autogenerated return type of DeclineTopicSuggestion. +""" +type DeclineTopicSuggestionPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The declined topic. + """ + topic: Topic + @deprecated( + reason: "Suggested topics are no longer supported Removal on 2024-04-01 UTC." + ) +} + +""" +The possible base 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! + @possibleTypes(concreteTypes: ["BranchProtectionRule"]) + + """ + 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! @possibleTypes(concreteTypes: ["Deployment"]) +} + +""" +Autogenerated return type of DeleteDeployment. +""" +type DeleteDeploymentPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String +} + +""" +Autogenerated input type of DeleteDiscussionComment +""" +input DeleteDiscussionCommentInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The Node id of the discussion comment to delete. + """ + id: ID! @possibleTypes(concreteTypes: ["DiscussionComment"]) +} + +""" +Autogenerated return type of DeleteDiscussionComment. +""" +type DeleteDiscussionCommentPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The discussion comment that was just deleted. + """ + comment: DiscussionComment +} + +""" +Autogenerated input type of DeleteDiscussion +""" +input DeleteDiscussionInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The id of the discussion to delete. + """ + id: ID! @possibleTypes(concreteTypes: ["Discussion"]) +} + +""" +Autogenerated return type of DeleteDiscussion. +""" +type DeleteDiscussionPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The discussion that was just deleted. + """ + discussion: Discussion +} + +""" +Autogenerated input type of DeleteEnvironment +""" +input DeleteEnvironmentInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The Node ID of the environment to be deleted. + """ + id: ID! @possibleTypes(concreteTypes: ["Environment"]) +} + +""" +Autogenerated return type of DeleteEnvironment. +""" +type DeleteEnvironmentPayload { + """ + 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! @possibleTypes(concreteTypes: ["IpAllowListEntry"]) +} + +""" +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! @possibleTypes(concreteTypes: ["IssueComment"]) +} + +""" +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! @possibleTypes(concreteTypes: ["Issue"]) +} + +""" +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 DeleteLabel +""" +input DeleteLabelInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The Node ID of the label to be deleted. + """ + id: ID! @possibleTypes(concreteTypes: ["Label"]) +} + +""" +Autogenerated return type of DeleteLabel. +""" +type DeleteLabelPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String +} + +""" +Autogenerated input type of DeleteLinkedBranch +""" +input DeleteLinkedBranchInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the linked branch + """ + linkedBranchId: ID! @possibleTypes(concreteTypes: ["LinkedBranch"]) +} + +""" +Autogenerated return type of DeleteLinkedBranch. +""" +type DeleteLinkedBranchPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The issue the linked branch was unlinked from. + """ + issue: Issue +} + +""" +Autogenerated input type of DeletePackageVersion +""" +input DeletePackageVersionInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the package version to be deleted. + """ + packageVersionId: ID! @possibleTypes(concreteTypes: ["PackageVersion"]) +} + +""" +Autogenerated return type of DeletePackageVersion. +""" +type DeletePackageVersionPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Whether or not the operation succeeded. + """ + success: Boolean +} + +""" +Autogenerated input type of DeleteProjectCard +""" +input DeleteProjectCardInput { + """ + The id of the card to delete. + """ + cardId: ID! @possibleTypes(concreteTypes: ["ProjectCard"]) + + """ + 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! @possibleTypes(concreteTypes: ["ProjectColumn"]) +} + +""" +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! @possibleTypes(concreteTypes: ["Project"]) +} + +""" +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 DeleteProjectV2Field +""" +input DeleteProjectV2FieldInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the field to delete. + """ + fieldId: ID! + @possibleTypes( + concreteTypes: [ + "ProjectV2Field" + "ProjectV2IterationField" + "ProjectV2SingleSelectField" + ] + abstractType: "ProjectV2FieldConfiguration" + ) +} + +""" +Autogenerated return type of DeleteProjectV2Field. +""" +type DeleteProjectV2FieldPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The deleted field. + """ + projectV2Field: ProjectV2FieldConfiguration +} + +""" +Autogenerated input type of DeleteProjectV2 +""" +input DeleteProjectV2Input { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the Project to delete. + """ + projectId: ID! @possibleTypes(concreteTypes: ["ProjectV2"]) +} + +""" +Autogenerated input type of DeleteProjectV2Item +""" +input DeleteProjectV2ItemInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the item to be removed. + """ + itemId: ID! @possibleTypes(concreteTypes: ["ProjectV2Item"]) + + """ + The ID of the Project from which the item should be removed. + """ + projectId: ID! @possibleTypes(concreteTypes: ["ProjectV2"]) +} + +""" +Autogenerated return type of DeleteProjectV2Item. +""" +type DeleteProjectV2ItemPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the deleted item. + """ + deletedItemId: ID +} + +""" +Autogenerated return type of DeleteProjectV2. +""" +type DeleteProjectV2Payload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The deleted Project. + """ + projectV2: ProjectV2 +} + +""" +Autogenerated input type of DeleteProjectV2StatusUpdate +""" +input DeleteProjectV2StatusUpdateInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the status update to be removed. + """ + statusUpdateId: ID! @possibleTypes(concreteTypes: ["ProjectV2StatusUpdate"]) +} + +""" +Autogenerated return type of DeleteProjectV2StatusUpdate. +""" +type DeleteProjectV2StatusUpdatePayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the deleted status update. + """ + deletedStatusUpdateId: ID + + """ + The project the deleted status update was in. + """ + projectV2: ProjectV2 +} + +""" +Autogenerated input type of DeleteProjectV2Workflow +""" +input DeleteProjectV2WorkflowInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the workflow to be removed. + """ + workflowId: ID! @possibleTypes(concreteTypes: ["ProjectV2Workflow"]) +} + +""" +Autogenerated return type of DeleteProjectV2Workflow. +""" +type DeleteProjectV2WorkflowPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the deleted workflow. + """ + deletedWorkflowId: ID + + """ + The project the deleted workflow was in. + """ + projectV2: ProjectV2 +} + +""" +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! @possibleTypes(concreteTypes: ["PullRequestReviewComment"]) +} + +""" +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 + + """ + The deleted pull request review comment. + """ + pullRequestReviewComment: PullRequestReviewComment +} + +""" +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! @possibleTypes(concreteTypes: ["PullRequestReview"]) +} + +""" +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! @possibleTypes(concreteTypes: ["Ref"]) +} + +""" +Autogenerated return type of DeleteRef. +""" +type DeleteRefPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String +} + +""" +Autogenerated input type of DeleteRepositoryRuleset +""" +input DeleteRepositoryRulesetInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The global relay id of the repository ruleset to be deleted. + """ + repositoryRulesetId: ID! @possibleTypes(concreteTypes: ["RepositoryRuleset"]) +} + +""" +Autogenerated return type of DeleteRepositoryRuleset. +""" +type DeleteRepositoryRulesetPayload { + """ + 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! @possibleTypes(concreteTypes: ["TeamDiscussionComment"]) +} + +""" +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! @possibleTypes(concreteTypes: ["TeamDiscussion"]) +} + +""" +Autogenerated return type of DeleteTeamDiscussion. +""" +type DeleteTeamDiscussionPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String +} + +""" +Autogenerated input type of DeleteUserList +""" +input DeleteUserListInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the list to delete. + """ + listId: ID! @possibleTypes(concreteTypes: ["UserList"]) +} + +""" +Autogenerated return type of DeleteUserList. +""" +type DeleteUserListPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The owner of the list that will be deleted + """ + user: User +} + +""" +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! @possibleTypes(concreteTypes: ["VerifiableDomain"]) +} + +""" +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! + + """ + The Node ID of the DemilestonedEvent object + """ + id: ID! + + """ + Identifies the milestone title associated with the 'demilestoned' event. + """ + milestoneTitle: String! + + """ + Object referenced by event. + """ + subject: MilestoneItem! +} + +""" +A Dependabot Update for a dependency in a repository +""" +type DependabotUpdate implements RepositoryNode { + """ + The error from a dependency update + """ + error: DependabotUpdateError + + """ + The associated pull request + """ + pullRequest: PullRequest + + """ + The repository associated with this node. + """ + repository: Repository! +} + +""" +An error produced from a Dependabot Update +""" +type DependabotUpdateError { + """ + The body of the error + """ + body: String! + + """ + The error code + """ + errorType: String! + + """ + The title of the error + """ + title: String! +} + +""" +A dependency manifest entry +""" +type DependencyGraphDependency { + """ + Does the dependency itself have dependencies? + """ + hasDependencies: Boolean! + + """ + The original name of the package, as it appears in the manifest. + """ + packageLabel: String! + @deprecated( + reason: "`packageLabel` will be removed. Use normalized `packageName` field instead. Removal on 2022-10-01 UTC." + ) + + """ + The dependency package manager + """ + packageManager: String + + """ + The name of the package in the canonical form used by the package manager. + """ + packageName: String! + + """ + The repository containing the package + """ + repository: Repository + + """ + The dependency version requirements + """ + requirements: String! +} + +""" +The connection type for DependencyGraphDependency. +""" +type DependencyGraphDependencyConnection { + """ + A list of edges. + """ + edges: [DependencyGraphDependencyEdge] + + """ + A list of nodes. + """ + nodes: [DependencyGraphDependency] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type DependencyGraphDependencyEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: DependencyGraphDependency +} + +""" +The possible ecosystems of a dependency graph package. +""" +enum DependencyGraphEcosystem { + """ + GitHub Actions + """ + ACTIONS + + """ + PHP packages hosted at packagist.org + """ + COMPOSER + + """ + Go modules + """ + GO + + """ + 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 + + """ + Dart packages hosted at pub.dev + """ + PUB + + """ + Ruby gems hosted at RubyGems.org + """ + RUBYGEMS + + """ + Rust crates + """ + RUST + + """ + Swift packages + """ + SWIFT +} + +""" +Dependency manifest for a repository +""" +type DependencyGraphManifest implements Node { + """ + Path to view the manifest file blob + """ + blobPath: String! + + """ + A list of manifest dependencies + """ + dependencies( + """ + 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 + ): DependencyGraphDependencyConnection + + """ + The number of dependencies listed in the manifest + """ + dependenciesCount: Int + + """ + Is the manifest too big to parse? + """ + exceedsMaxSize: Boolean! + + """ + Fully qualified manifest filename + """ + filename: String! + + """ + The Node ID of the DependencyGraphManifest object + """ + id: ID! + + """ + Were we able to parse the manifest? + """ + parseable: Boolean! + + """ + The repository containing the manifest + """ + repository: Repository! +} + +""" +The connection type for DependencyGraphManifest. +""" +type DependencyGraphManifestConnection { + """ + A list of edges. + """ + edges: [DependencyGraphManifestEdge] + + """ + A list of nodes. + """ + nodes: [DependencyGraphManifest] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type DependencyGraphManifestEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: DependencyGraphManifest +} + +""" +A repository deploy key. +""" +type DeployKey implements Node { + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + The Node ID of the DeployKey object + """ + 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! + + """ + The Node ID of the DeployedEvent object + """ + 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 + + """ + The Node ID of the Deployment object + """ + 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! + + """ + The Node ID of the DeploymentEnvironmentChangedEvent object + """ + 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 +} + +""" +A protection rule. +""" +type DeploymentProtectionRule { + """ + Identifies the primary key from the database. + """ + databaseId: Int + + """ + Whether deployments to this environment can be approved by the user who created the deployment. + """ + preventSelfReview: Boolean + + """ + The teams or users that can review the deployment + """ + reviewers( + """ + 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 + ): DeploymentReviewerConnection! + + """ + The timeout in minutes for this protection rule. + """ + timeout: Int! + + """ + The type of protection rule. + """ + type: DeploymentProtectionRuleType! +} + +""" +The connection type for DeploymentProtectionRule. +""" +type DeploymentProtectionRuleConnection { + """ + A list of edges. + """ + edges: [DeploymentProtectionRuleEdge] + + """ + A list of nodes. + """ + nodes: [DeploymentProtectionRule] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type DeploymentProtectionRuleEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: DeploymentProtectionRule +} + +""" +The possible protection rule types. +""" +enum DeploymentProtectionRuleType { + """ + Branch policy + """ + BRANCH_POLICY + + """ + Required reviewers + """ + REQUIRED_REVIEWERS + + """ + Wait timer + """ + WAIT_TIMER +} + +""" +A request to deploy a workflow run to an environment. +""" +type DeploymentRequest { + """ + Whether or not the current user can approve the deployment + """ + currentUserCanApprove: Boolean! + + """ + The target environment of the deployment + """ + environment: Environment! + + """ + The teams or users that can review the deployment + """ + reviewers( + """ + 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 + ): DeploymentReviewerConnection! + + """ + The wait timer in minutes configured in the environment + """ + waitTimer: Int! + + """ + The wait timer in minutes configured in the environment + """ + waitTimerStartedAt: DateTime +} + +""" +The connection type for DeploymentRequest. +""" +type DeploymentRequestConnection { + """ + A list of edges. + """ + edges: [DeploymentRequestEdge] + + """ + A list of nodes. + """ + nodes: [DeploymentRequest] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type DeploymentRequestEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: DeploymentRequest +} + +""" +A deployment review. +""" +type DeploymentReview implements Node { + """ + The comment the user left. + """ + comment: String! + + """ + Identifies the primary key from the database. + """ + databaseId: Int + + """ + The environments approved or rejected + """ + environments( + """ + 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 + ): EnvironmentConnection! + + """ + The Node ID of the DeploymentReview object + """ + id: ID! + + """ + The decision of the user. + """ + state: DeploymentReviewState! + + """ + The user that reviewed the deployment. + """ + user: User! +} + +""" +The connection type for DeploymentReview. +""" +type DeploymentReviewConnection { + """ + A list of edges. + """ + edges: [DeploymentReviewEdge] + + """ + A list of nodes. + """ + nodes: [DeploymentReview] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type DeploymentReviewEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: DeploymentReview +} + +""" +The possible states for a deployment review. +""" +enum DeploymentReviewState { + """ + The deployment was approved. + """ + APPROVED + + """ + The deployment was rejected. + """ + REJECTED +} + +""" +Users and teams. +""" +union DeploymentReviewer = Team | User + +""" +The connection type for DeploymentReviewer. +""" +type DeploymentReviewerConnection { + """ + A list of edges. + """ + edges: [DeploymentReviewerEdge] + + """ + A list of nodes. + """ + nodes: [DeploymentReviewer] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type DeploymentReviewerEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: DeploymentReviewer +} + +""" +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 was successful. + """ + SUCCESS + + """ + 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 of the deployment at the time of this deployment status + """ + environment: String + + """ + Identifies the environment URL of the deployment. + """ + environmentUrl: URI + + """ + The Node ID of the DeploymentStatus object + """ + 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 +} + +""" +Autogenerated input type of DequeuePullRequest +""" +input DequeuePullRequestInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the pull request to be dequeued. + """ + id: ID! @possibleTypes(concreteTypes: ["PullRequest"]) +} + +""" +Autogenerated return type of DequeuePullRequest. +""" +type DequeuePullRequestPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The merge queue entry of the dequeued pull request. + """ + mergeQueueEntry: MergeQueueEntry +} + +""" +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! @possibleTypes(concreteTypes: ["PullRequest"]) +} + +""" +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! + + """ + The Node ID of the DisconnectedEvent object + """ + 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! +} + +""" +A discussion in a repository. +""" +type Discussion implements Closable & Comment & Deletable & Labelable & Lockable & Node & Reactable & RepositoryNode & Subscribable & Updatable & Votable { + """ + Reason that the conversation was locked. + """ + activeLockReason: LockReason + + """ + The comment chosen as this discussion's answer, if any. + """ + answer: DiscussionComment + + """ + The time when a user chose this discussion's answer, if answered. + """ + answerChosenAt: DateTime + + """ + The user who chose this discussion's answer, if answered. + """ + answerChosenBy: Actor + + """ + The actor who authored the comment. + """ + author: Actor + + """ + Author's association with the subject of the comment. + """ + authorAssociation: CommentAuthorAssociation! + + """ + The main text of the discussion post. + """ + body: String! + + """ + The body rendered to HTML. + """ + bodyHTML: HTML! + + """ + The body rendered to text. + """ + bodyText: String! + + """ + The category for this discussion. + """ + category: DiscussionCategory! + + """ + Indicates 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 + + """ + The replies to the 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 + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): DiscussionCommentConnection! + + """ + 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 Node ID of the Discussion object + """ + id: ID! + + """ + Check if this comment was edited and includes an edit with the creation data + """ + includesCreatedEdit: Boolean! + + """ + Only return answered/unanswered discussions + """ + isAnswered: 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! + + """ + The number identifying this discussion within the repository. + """ + number: Int! + + """ + The poll associated with this discussion, if one exists. + """ + poll: DiscussionPoll + + """ + 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 path for this discussion. + """ + resourcePath: URI! + + """ + Identifies the reason for the discussion's state. + """ + stateReason: DiscussionStateReason + + """ + The title of this discussion. + """ + title: String! + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! + + """ + Number of upvotes that this subject has received. + """ + upvoteCount: Int! + + """ + The 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 + + """ + Indicates if the object can be closed by the viewer. + """ + viewerCanClose: Boolean! + + """ + Check if the current viewer can delete this object. + """ + viewerCanDelete: Boolean! + + """ + Indicates if the viewer can edit labels for this object. + """ + viewerCanLabel: Boolean! + + """ + Can user react to this subject + """ + viewerCanReact: Boolean! + + """ + Indicates if the object can be reopened by the viewer. + """ + viewerCanReopen: 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! + + """ + Whether or not the current user can add or remove an upvote on this subject. + """ + viewerCanUpvote: Boolean! + + """ + Did the viewer author this comment. + """ + viewerDidAuthor: Boolean! + + """ + Whether or not the current user has already upvoted this subject. + """ + viewerHasUpvoted: Boolean! + + """ + Identifies if the viewer is watching, not watching, or ignoring the subscribable entity. + """ + viewerSubscription: SubscriptionState +} + +""" +A category for discussions in a repository. +""" +type DiscussionCategory implements Node & RepositoryNode { + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + A description of this category. + """ + description: String + + """ + An emoji representing this category. + """ + emoji: String! + + """ + This category's emoji rendered as HTML. + """ + emojiHTML: HTML! + + """ + The Node ID of the DiscussionCategory object + """ + id: ID! + + """ + Whether or not discussions in this category support choosing an answer with the markDiscussionCommentAsAnswer mutation. + """ + isAnswerable: Boolean! + + """ + The name of this category. + """ + name: String! + + """ + The repository associated with this node. + """ + repository: Repository! + + """ + The slug of this category. + """ + slug: String! + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! +} + +""" +The connection type for DiscussionCategory. +""" +type DiscussionCategoryConnection { + """ + A list of edges. + """ + edges: [DiscussionCategoryEdge] + + """ + A list of nodes. + """ + nodes: [DiscussionCategory] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type DiscussionCategoryEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: DiscussionCategory +} + +""" +The possible reasons for closing a discussion. +""" +enum DiscussionCloseReason { + """ + The discussion is a duplicate of another + """ + DUPLICATE + + """ + The discussion is no longer relevant + """ + OUTDATED + + """ + The discussion has been resolved + """ + RESOLVED +} + +""" +A comment on a discussion. +""" +type DiscussionComment implements Comment & Deletable & Minimizable & Node & Reactable & Updatable & UpdatableComment & Votable { + """ + 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 time when this replied-to comment was deleted + """ + deletedAt: DateTime + + """ + The discussion this comment was created in + """ + discussion: Discussion + + """ + The actor who edited the comment. + """ + editor: Actor + + """ + The Node ID of the DiscussionComment object + """ + id: ID! + + """ + Check if this comment was edited and includes an edit with the creation data + """ + includesCreatedEdit: Boolean! + + """ + Has this comment been chosen as the answer of its discussion? + """ + isAnswer: 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. One of `abuse`, `off-topic`, + `outdated`, `resolved`, `duplicate` and `spam`. Note that the case and + formatting of these values differs from the inputs to the `MinimizeComment` mutation. + """ + minimizedReason: String + + """ + 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 threaded replies to this comment. + """ + replies( + """ + 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 + ): DiscussionCommentConnection! + + """ + The discussion comment this comment is a reply to + """ + replyTo: DiscussionComment + + """ + The path for this discussion comment. + """ + resourcePath: URI! + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! + + """ + Number of upvotes that this subject has received. + """ + upvoteCount: Int! + + """ + The URL for this discussion 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 the current user mark this comment as an answer? + """ + viewerCanMarkAsAnswer: Boolean! + + """ + Check if the current viewer can minimize this object. + """ + viewerCanMinimize: Boolean! + + """ + Can user react to this subject + """ + viewerCanReact: Boolean! + + """ + Can the current user unmark this comment as an answer? + """ + viewerCanUnmarkAsAnswer: Boolean! + + """ + Check if the current viewer can update this object. + """ + viewerCanUpdate: Boolean! + + """ + Whether or not the current user can add or remove an upvote on this subject. + """ + viewerCanUpvote: Boolean! + + """ + Reasons why the current viewer can not update this comment. + """ + viewerCannotUpdateReasons: [CommentCannotUpdateReason!]! + + """ + Did the viewer author this comment. + """ + viewerDidAuthor: Boolean! + + """ + Whether or not the current user has already upvoted this subject. + """ + viewerHasUpvoted: Boolean! +} + +""" +The connection type for DiscussionComment. +""" +type DiscussionCommentConnection { + """ + A list of edges. + """ + edges: [DiscussionCommentEdge] + + """ + A list of nodes. + """ + nodes: [DiscussionComment] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type DiscussionCommentEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: DiscussionComment +} + +""" +The connection type for Discussion. +""" +type DiscussionConnection { + """ + A list of edges. + """ + edges: [DiscussionEdge] + + """ + A list of nodes. + """ + nodes: [Discussion] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type DiscussionEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: Discussion +} + +""" +Ways in which lists of discussions can be ordered upon return. +""" +input DiscussionOrder { + """ + The direction in which to order discussions by the specified field. + """ + direction: OrderDirection! + + """ + The field by which to order discussions. + """ + field: DiscussionOrderField! +} + +""" +Properties by which discussion connections can be ordered. +""" +enum DiscussionOrderField { + """ + Order discussions by creation time. + """ + CREATED_AT + + """ + Order discussions by most recent modification time. + """ + UPDATED_AT +} + +""" +A poll for a discussion. +""" +type DiscussionPoll implements Node { + """ + The discussion that this poll belongs to. + """ + discussion: Discussion + + """ + The Node ID of the DiscussionPoll object + """ + id: ID! + + """ + The options for this poll. + """ + options( + """ + 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 + + """ + How to order the options for the discussion poll. + """ + orderBy: DiscussionPollOptionOrder = { + field: AUTHORED_ORDER + direction: ASC + } + ): DiscussionPollOptionConnection + + """ + The question that is being asked by this poll. + """ + question: String! + + """ + The total number of votes that have been cast for this poll. + """ + totalVoteCount: Int! + + """ + Indicates if the viewer has permission to vote in this poll. + """ + viewerCanVote: Boolean! + + """ + Indicates if the viewer has voted for any option in this poll. + """ + viewerHasVoted: Boolean! +} + +""" +An option for a discussion poll. +""" +type DiscussionPollOption implements Node { + """ + The Node ID of the DiscussionPollOption object + """ + id: ID! + + """ + The text for this option. + """ + option: String! + + """ + The discussion poll that this option belongs to. + """ + poll: DiscussionPoll + + """ + The total number of votes that have been cast for this option. + """ + totalVoteCount: Int! + + """ + Indicates if the viewer has voted for this option in the poll. + """ + viewerHasVoted: Boolean! +} + +""" +The connection type for DiscussionPollOption. +""" +type DiscussionPollOptionConnection { + """ + A list of edges. + """ + edges: [DiscussionPollOptionEdge] + + """ + A list of nodes. + """ + nodes: [DiscussionPollOption] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type DiscussionPollOptionEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: DiscussionPollOption +} + +""" +Ordering options for discussion poll option connections. +""" +input DiscussionPollOptionOrder { + """ + The ordering direction. + """ + direction: OrderDirection! + + """ + The field to order poll options by. + """ + field: DiscussionPollOptionOrderField! +} + +""" +Properties by which discussion poll option connections can be ordered. +""" +enum DiscussionPollOptionOrderField { + """ + Order poll options by the order that the poll author specified when creating the poll. + """ + AUTHORED_ORDER + + """ + Order poll options by the number of votes it has. + """ + VOTE_COUNT +} + +""" +The possible states of a discussion. +""" +enum DiscussionState { + """ + A discussion that has been closed + """ + CLOSED + + """ + A discussion that is open + """ + OPEN +} + +""" +The possible state reasons of a discussion. +""" +enum DiscussionStateReason { + """ + The discussion is a duplicate of another + """ + DUPLICATE + + """ + The discussion is no longer relevant + """ + OUTDATED + + """ + The discussion was reopened + """ + REOPENED + + """ + The discussion has been resolved + """ + RESOLVED +} + +""" +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! @possibleTypes(concreteTypes: ["PullRequestReview"]) +} + +""" +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 +} + +""" +The possible reasons that a Dependabot alert was dismissed. +""" +enum DismissReason { + """ + A fix has already been started + """ + FIX_STARTED + + """ + This alert is inaccurate or incorrect + """ + INACCURATE + + """ + Vulnerable code is not actually used + """ + NOT_USED + + """ + No bandwidth to fix this + """ + NO_BANDWIDTH + + """ + Risk is tolerable to this project + """ + TOLERABLE_RISK +} + +""" +Autogenerated input type of DismissRepositoryVulnerabilityAlert +""" +input DismissRepositoryVulnerabilityAlertInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The reason the Dependabot alert is being dismissed. + """ + dismissReason: DismissReason! + + """ + The Dependabot alert ID to dismiss. + """ + repositoryVulnerabilityAlertId: ID! + @possibleTypes(concreteTypes: ["RepositoryVulnerabilityAlert"]) +} + +""" +Autogenerated return type of DismissRepositoryVulnerabilityAlert. +""" +type DismissRepositoryVulnerabilityAlertPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The Dependabot alert that was dismissed + """ + repositoryVulnerabilityAlert: RepositoryVulnerabilityAlert +} + +""" +A draft issue within a project. +""" +type DraftIssue implements Node { + """ + A list of users to assigned to this draft issue. + """ + 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 body of the draft issue. + """ + body: String! + + """ + The body of the draft issue rendered to HTML. + """ + bodyHTML: HTML! + + """ + The body of the draft issue rendered to text. + """ + bodyText: String! + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + The actor who created this draft issue. + """ + creator: Actor + + """ + The Node ID of the DraftIssue object + """ + id: ID! + + """ + List of items linked with the draft issue (currently draft issue can be linked to only one item). + """ + projectV2Items( + """ + 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 + ): ProjectV2ItemConnection! + + """ + Projects that link to this draft issue (currently draft issue can be linked to only one project). + """ + projectsV2( + """ + 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 + ): ProjectV2Connection! + + """ + The title of the draft issue + """ + title: String! + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! +} + +""" +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. NOTE: when merging with a merge queue any input + value for commit message is ignored. + """ + commitBody: String + + """ + Commit headline to use for the commit when the PR is mergable; if omitted, a + default message will be used. NOTE: when merging with a merge queue any input + value for commit headline is ignored. + """ + commitHeadline: String + + """ + The expected head OID of the pull request. + """ + expectedHeadOid: GitObjectID + + """ + The merge method to use. If omitted, defaults to `MERGE`. NOTE: when merging + with a merge queue any input value for merge method is ignored. + """ + mergeMethod: PullRequestMergeMethod = MERGE + + """ + ID of the pull request to enable auto-merge on. + """ + pullRequestId: ID! @possibleTypes(concreteTypes: ["PullRequest"]) +} + +""" +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 +} + +""" +Autogenerated input type of EnqueuePullRequest +""" +input EnqueuePullRequestInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The expected head OID of the pull request. + """ + expectedHeadOid: GitObjectID + + """ + Add the pull request to the front of the queue. + """ + jump: Boolean + + """ + The ID of the pull request to enqueue. + """ + pullRequestId: ID! @possibleTypes(concreteTypes: ["PullRequest"]) +} + +""" +Autogenerated return type of EnqueuePullRequest. +""" +type EnqueuePullRequestPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The merge queue entry for the enqueued pull request. + """ + mergeQueueEntry: MergeQueueEntry +} + +""" +An account to manage multiple organizations with consolidated policy and billing. +""" +type Enterprise implements AnnouncementBanner & Node { + """ + The text of the announcement + """ + announcement: String + + """ + The date the announcement was created + """ + announcementCreatedAt: DateTime + + """ + The expiration date of the announcement, if any + """ + announcementExpiresAt: DateTime + + """ + Whether the announcement can be dismissed by the user + """ + announcementUserDismissible: Boolean + + """ + A URL pointing to the enterprise's public avatar. + """ + avatarUrl( + """ + The size of the resulting square image. + """ + size: Int + ): URI! + + """ + The enterprise's billing email. + """ + billingEmail: String + + """ + 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! + + """ + The Node ID of the Enterprise object + """ + 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 + + """ + Only return members with this two-factor authentication status. Does not + include members who only have an account on a GitHub Enterprise Server instance. + """ + hasTwoFactorEnabled: Boolean = null + + """ + 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 + + """ + The viewer's role in an organization. + """ + viewerOrganizationRole: RoleInOrganization + ): OrganizationConnection! + + """ + Enterprise information visible to enterprise owners or enterprise owners' + personal access tokens (classic) with read:enterprise or admin:enterprise scope. + """ + ownerInfo: EnterpriseOwnerInfo + + """ + The raw content of the enterprise README. + """ + readme: String + + """ + The content of the enterprise README as HTML. + """ + readmeHTML: HTML! + + """ + 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! + + """ + 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! + + """ + The Node ID of the EnterpriseAdministratorInvitation object + """ + 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 +} + +""" +The possible values for the enterprise allow private repository forking policy value. +""" +enum EnterpriseAllowPrivateRepositoryForkingPolicyValue { + """ + Members can fork a repository to an organization within this enterprise. + """ + ENTERPRISE_ORGANIZATIONS + + """ + Members can fork a repository to their enterprise-managed user account or an organization inside this enterprise. + """ + ENTERPRISE_ORGANIZATIONS_USER_ACCOUNTS + + """ + Members can fork a repository to their user account or an organization, either inside or outside of this enterprise. + """ + EVERYWHERE + + """ + Members can fork a repository only within the same organization (intra-org). + """ + SAME_ORGANIZATION + + """ + Members can fork a repository to their user account or within the same organization. + """ + SAME_ORGANIZATION_USER_ACCOUNTS + + """ + Members can fork a repository to their user account. + """ + USER_ACCOUNTS +} + +""" +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 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 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 connection type for Enterprise. +""" +type EnterpriseConnection { + """ + A list of edges. + """ + edges: [EnterpriseEdge] + + """ + A list of nodes. + """ + nodes: [Enterprise] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +The possible values for the enterprise base 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 base 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 +} + +""" +An edge in a connection. +""" +type EnterpriseEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: Enterprise +} + +""" +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 +} + +""" +The connection type for OrganizationInvitation. +""" +type EnterpriseFailedInvitationConnection { + """ + A list of edges. + """ + edges: [EnterpriseFailedInvitationEdge] + + """ + 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! +} + +""" +A failed invitation to be a member in an enterprise organization. +""" +type EnterpriseFailedInvitationEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: OrganizationInvitation +} + +""" +An identity provider configured to provision identities for an enterprise. +Visible to enterprise owners or enterprise owners' personal access tokens +(classic) with read:enterprise or admin:enterprise scope. +""" +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 + + """ + Filter to external identities with the users login + """ + login: String + + """ + Filter to external identities with valid org membership only + """ + membersOnly: Boolean + + """ + Filter to external identities with the users userName/NameID attribute + """ + userName: String + ): ExternalIdentityConnection! + + """ + The Node ID of the EnterpriseIdentityProvider object + """ + 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! + + """ + The item at the end of the edge. + """ + node: EnterpriseMember +} + +""" +An invitation for a user to become an unaffiliated member of an enterprise. +""" +type EnterpriseMemberInvitation 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! + + """ + The Node ID of the EnterpriseMemberInvitation object + """ + id: ID! + + """ + The user who was invited to the enterprise. + """ + invitee: User + + """ + The user who created the invitation. + """ + inviter: User +} + +""" +The connection type for EnterpriseMemberInvitation. +""" +type EnterpriseMemberInvitationConnection { + """ + A list of edges. + """ + edges: [EnterpriseMemberInvitationEdge] + + """ + A list of nodes. + """ + nodes: [EnterpriseMemberInvitation] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type EnterpriseMemberInvitationEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: EnterpriseMemberInvitation +} + +""" +Ordering options for enterprise administrator invitation connections +""" +input EnterpriseMemberInvitationOrder { + """ + The ordering direction. + """ + direction: OrderDirection! + + """ + The field to order enterprise member invitations by. + """ + field: EnterpriseMemberInvitationOrderField! +} + +""" +Properties by which enterprise member invitation connections can be ordered. +""" +enum EnterpriseMemberInvitationOrderField { + """ + Order enterprise member invitations by creation time + """ + CREATED_AT +} + +""" +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 owners 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 possible values we have for filtering Platform::Objects::User#enterprises. +""" +enum EnterpriseMembershipType { + """ + Returns all enterprises in which the user is an admin. + """ + ADMIN + + """ + Returns all enterprises in which the user is a member, admin, or billing manager. + """ + ALL + + """ + Returns all enterprises in which the user is a billing manager. + """ + BILLING_MANAGER + + """ + Returns all enterprises in which the user is a member of an org that is owned by the enterprise. + """ + ORG_MEMBERSHIP +} + +""" +Ordering options for enterprises. +""" +input EnterpriseOrder { + """ + The ordering direction. + """ + direction: OrderDirection! + + """ + The field to order enterprises by. + """ + field: EnterpriseOrderField! +} + +""" +Properties by which enterprise connections can be ordered. +""" +enum EnterpriseOrderField { + """ + Order enterprises by name + """ + NAME +} + +""" +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! + + """ + 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 visible to enterprise owners or enterprise owners' +personal access tokens (classic) with read:enterprise or admin:enterprise scope. +""" +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 + + """ + Only return administrators with this two-factor authentication status. + """ + hasTwoFactorEnabled: Boolean = null + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for administrators 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 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 value for the allow private repository forking policy on the enterprise. + """ + allowPrivateRepositoryForkingSettingPolicyValue: EnterpriseAllowPrivateRepositoryForkingPolicyValue + + """ + The setting value for base repository permissions for organizations in this enterprise. + """ + defaultRepositoryPermissionSetting: EnterpriseDefaultRepositoryPermissionSettingValue! + + """ + A list of enterprise organizations configured with the provided base 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. Visible to enterprise owners or + enterprise owners' personal access tokens (classic) with admin:enterprise scope. + """ + 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 approved. + """ + isApproved: Boolean = null + + """ + Filter whether or not the domain is verified. + """ + isVerified: Boolean = null + + """ + 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! + + """ + A list of failed invitations in the enterprise. + """ + failedInvitations( + """ + 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 + ): EnterpriseFailedInvitationConnection! + + """ + 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. + Visible to enterprise owners or enterprise owners' personal access tokens + (classic) with admin:enterprise scope. + """ + 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! + + """ + The setting value for whether the enterprise has IP allow list configuration for installed GitHub Apps enabled. + """ + ipAllowListForInstalledAppsEnabledSetting: IpAllowListForInstalledAppsEnabledSettingValue! + + """ + Whether or not the base 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 or approved domains. + """ + notificationDeliveryRestrictionEnabledSetting: NotificationRestrictionSettingValue! + + """ + The OIDC Identity Provider for the enterprise. + """ + oidcProvider: OIDCProvider + + """ + 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 + + """ + Only return outside collaborators with this two-factor authentication status. + """ + hasTwoFactorEnabled: Boolean = null + + """ + 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 } + + """ + Only return outside collaborators within the organizations with these logins + """ + organizationLogins: [String!] + + """ + 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 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 + + """ + Only return invitations matching this invitation source + """ + invitationSource: OrganizationInvitationSource + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Only return invitations within the organizations with these logins + """ + organizationLogins: [String!] + + """ + The search string to look for. + """ + query: String + ): EnterprisePendingMemberInvitationConnection! + + """ + A list of pending unaffiliated member invitations for the enterprise. + """ + pendingUnaffiliatedMemberInvitations( + """ + 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 member invitations returned from the connection. + """ + orderBy: EnterpriseMemberInvitationOrder = { + field: CREATED_AT + direction: DESC + } + + """ + The search string to look for. + """ + query: String + ): EnterpriseMemberInvitationConnection! + + """ + 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 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! + + """ + The item at the end of the edge. + """ + node: OrganizationInvitation +} + +""" +A subset of repository information queryable from an enterprise. +""" +type EnterpriseRepositoryInfo implements Node { + """ + The Node ID of the EnterpriseRepositoryInfo object + """ + id: ID! + + """ + Identifies if the repository is private or internal. + """ + 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! + + """ + The Node ID of the EnterpriseServerInstallation object + """ + 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 +} + +""" +The connection type for EnterpriseServerInstallation. +""" +type EnterpriseServerInstallationMembershipConnection { + """ + A list of edges. + """ + edges: [EnterpriseServerInstallationMembershipEdge] + + """ + 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 Enterprise Server installation that a user is a member of. +""" +type EnterpriseServerInstallationMembershipEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: EnterpriseServerInstallation + + """ + The role of the user in the enterprise membership. + """ + role: EnterpriseUserAccountMembershipRole! +} + +""" +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! + + """ + The Node ID of the EnterpriseServerUserAccount object + """ + 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! + + """ + The Node ID of the EnterpriseServerUserAccountEmail object + """ + 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! + + """ + The Node ID of the EnterpriseServerUserAccountsUpload object + """ + 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! + + """ + A list of Enterprise Server installations this user is a member of. + """ + enterpriseInstallations( + """ + 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 installations returned from the connection. + """ + orderBy: EnterpriseServerInstallationOrder = { + field: HOST_NAME + direction: ASC + } + + """ + The search string to look for. + """ + query: String + + """ + The role of the user in the installation. + """ + role: EnterpriseUserAccountMembershipRole + ): EnterpriseServerInstallationMembershipConnection! + + """ + The Node ID of the EnterpriseUserAccount object + """ + 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 possible roles for enterprise membership. +""" +enum EnterpriseUserAccountMembershipRole { + """ + The user is a member of an organization in the enterprise. + """ + MEMBER + + """ + The user is an owner of an organization in the enterprise. + """ + OWNER + + """ + The user is not an owner of the enterprise, and not a member or owner of any + organizations in the enterprise; only for EMU-enabled enterprises. + """ + UNAFFILIATED +} + +""" +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 environment. +""" +type Environment implements Node { + """ + Identifies the primary key from the database. + """ + databaseId: Int + + """ + The Node ID of the Environment object + """ + id: ID! + + """ + Indicates whether or not this environment is currently pinned to the repository + """ + isPinned: Boolean + + """ + The latest completed deployment with status success, failure, or error if it exists + """ + latestCompletedDeployment: Deployment + + """ + The name of the environment + """ + name: String! + + """ + The position of the environment if it is pinned, null if it is not pinned + """ + pinnedPosition: Int + + """ + The protection rules defined for this environment + """ + protectionRules( + """ + 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 + ): DeploymentProtectionRuleConnection! +} + +""" +The connection type for Environment. +""" +type EnvironmentConnection { + """ + A list of edges. + """ + edges: [EnvironmentEdge] + + """ + A list of nodes. + """ + nodes: [Environment] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type EnvironmentEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: Environment +} + +""" +Properties by which environments connections can be ordered +""" +enum EnvironmentOrderField { + """ + Order environments by name. + """ + NAME +} + +""" +Properties by which environments connections can be ordered +""" +enum EnvironmentPinnedFilterField { + """ + All environments will be returned. + """ + ALL + + """ + Environments exclude pinned will be returned + """ + NONE + + """ + Only pinned environment will be returned + """ + ONLY +} + +""" +Ordering options for environments +""" +input Environments { + """ + The direction in which to order environments by the specified field. + """ + direction: OrderDirection! + + """ + The field to order environments by. + """ + field: EnvironmentOrderField! +} + +""" +An external identity provisioned by SAML SSO or SCIM. If SAML is configured on +the organization, the external identity is visible to (1) organization owners, +(2) organization owners' personal access tokens (classic) with read:org or +admin:org scope, (3) GitHub App with an installation token with read or write +access to members. If SAML is configured on the enterprise, the external +identity is visible to (1) enterprise owners, (2) enterprise owners' personal +access tokens (classic) with read:enterprise or admin:enterprise scope. +""" +type ExternalIdentity implements Node { + """ + The GUID for this identity + """ + guid: String! + + """ + The Node ID of the ExternalIdentity object + """ + 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 +} + +""" +An attribute for the External Identity attributes collection +""" +type ExternalIdentityAttribute { + """ + The attribute metadata as JSON + """ + metadata: String + + """ + The attribute name + """ + name: String! + + """ + The attribute value + """ + value: String! +} + +""" +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 { + """ + SAML Identity attributes + """ + attributes: [ExternalIdentityAttribute!]! + + """ + 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 +} + +""" +A command to add a file at the given path with the given contents as part of a +commit. Any existing file at that that path will be replaced. +""" +input FileAddition { + """ + The base64 encoded contents of the file + """ + contents: Base64String! + + """ + The path in the repository where the file will be located + """ + path: String! +} + +""" +A description of a set of changes to a file tree to be made as part of +a git commit, modeled as zero or more file `additions` and zero or more +file `deletions`. + +Both fields are optional; omitting both will produce a commit with no +file changes. + +`deletions` and `additions` describe changes to files identified +by their path in the git tree using unix-style path separators, i.e. +`/`. The root of a git tree is an empty string, so paths are not +slash-prefixed. + +`path` values must be unique across all `additions` and `deletions` +provided. Any duplication will result in a validation error. + +### Encoding + +File contents must be provided in full for each `FileAddition`. + +The `contents` of a `FileAddition` must be encoded using RFC 4648 +compliant base64, i.e. correct padding is required and no characters +outside the standard alphabet may be used. Invalid base64 +encoding will be rejected with a validation error. + +The encoded contents may be binary. + +For text files, no assumptions are made about the character encoding of +the file contents (after base64 decoding). No charset transcoding or +line-ending normalization will be performed; it is the client's +responsibility to manage the character encoding of files they provide. +However, for maximum compatibility we recommend using UTF-8 encoding +and ensuring that all files in a repository use a consistent +line-ending convention (`\n` or `\r\n`), and that all files end +with a newline. + +### Modeling file changes + +Each of the the five types of conceptual changes that can be made in a +git commit can be described using the `FileChanges` type as follows: + +1. New file addition: create file `hello world\n` at path `docs/README.txt`: + + { + "additions" [ + { + "path": "docs/README.txt", + "contents": base64encode("hello world\n") + } + ] + } + +2. Existing file modification: change existing `docs/README.txt` to have new + content `new content here\n`: + + { + "additions" [ + { + "path": "docs/README.txt", + "contents": base64encode("new content here\n") + } + ] + } + +3. Existing file deletion: remove existing file `docs/README.txt`. + Note that the path is required to exist -- specifying a + path that does not exist on the given branch will abort the + commit and return an error. + + { + "deletions" [ + { + "path": "docs/README.txt" + } + ] + } + + +4. File rename with no changes: rename `docs/README.txt` with + previous content `hello world\n` to the same content at + `newdocs/README.txt`: + + { + "deletions" [ + { + "path": "docs/README.txt", + } + ], + "additions" [ + { + "path": "newdocs/README.txt", + "contents": base64encode("hello world\n") + } + ] + } + + +5. File rename with changes: rename `docs/README.txt` with + previous content `hello world\n` to a file at path + `newdocs/README.txt` with content `new contents\n`: + + { + "deletions" [ + { + "path": "docs/README.txt", + } + ], + "additions" [ + { + "path": "newdocs/README.txt", + "contents": base64encode("new contents\n") + } + ] + } +""" +input FileChanges { + """ + File to add or change. + """ + additions: [FileAddition!] = [] + + """ + Files to delete. + """ + deletions: [FileDeletion!] = [] +} + +""" +A command to delete the file at the given path as part of a commit. +""" +input FileDeletion { + """ + The path to delete + """ + path: String! +} + +""" +Prevent commits that include files with specified file extensions from being +pushed to the commit graph. NOTE: This rule is in beta and subject to change +""" +type FileExtensionRestrictionParameters { + """ + The file extensions that are restricted from being pushed to the commit graph. + """ + restrictedFileExtensions: [String!]! +} + +""" +Prevent commits that include files with specified file extensions from being +pushed to the commit graph. NOTE: This rule is in beta and subject to change +""" +input FileExtensionRestrictionParametersInput { + """ + The file extensions that are restricted from being pushed to the commit graph. + """ + restrictedFileExtensions: [String!]! +} + +""" +Prevent commits that include changes in specified file paths from being pushed +to the commit graph. NOTE: This rule is in beta and subject to change +""" +type FilePathRestrictionParameters { + """ + The file paths that are restricted from being pushed to the commit graph. + """ + restrictedFilePaths: [String!]! +} + +""" +Prevent commits that include changes in specified file paths from being pushed +to the commit graph. NOTE: This rule is in beta and subject to change +""" +input FilePathRestrictionParametersInput { + """ + The file paths that are restricted from being pushed to the commit graph. + """ + restrictedFilePaths: [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 FollowOrganization +""" +input FollowOrganizationInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + ID of the organization to follow. + """ + organizationId: ID! @possibleTypes(concreteTypes: ["Organization"]) +} + +""" +Autogenerated return type of FollowOrganization. +""" +type FollowOrganizationPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The organization that was followed. + """ + organization: Organization +} + +""" +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! @possibleTypes(concreteTypes: ["User"]) +} + +""" +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 { + """ + Buy Me a Coffee funding platform. + """ + BUY_ME_A_COFFEE + + """ + Community Bridge funding platform. + """ + COMMUNITY_BRIDGE + + """ + Custom funding platform. + """ + CUSTOM + + """ + GitHub funding platform. + """ + GITHUB + + """ + IssueHunt funding platform. + """ + ISSUEHUNT + + """ + Ko-fi funding platform. + """ + KO_FI + + """ + LFX Crowdfunding funding platform. + """ + LFX_CROWDFUNDING + + """ + Liberapay funding platform. + """ + LIBERAPAY + + """ + Open Collective funding platform. + """ + OPEN_COLLECTIVE + + """ + Patreon funding platform. + """ + PATREON + + """ + Polar funding platform. + """ + POLAR + + """ + 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! + + """ + The Node ID of the Gist object + """ + 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! + + """ + The Node ID of the GistComment object + """ + 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. One of `abuse`, `off-topic`, + `outdated`, `resolved`, `duplicate` and `spam`. Note that the case and + formatting of these values differs from the inputs to the `MinimizeComment` mutation. + """ + 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 GitHub Enterprise Importer uses for outbound connections + """ + githubEnterpriseImporterIpAddresses: [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! + + """ + The Node ID of the GitObject object + """ + id: ID! + + """ + The Git object ID + """ + oid: GitObjectID! + + """ + The Repository the Git object belongs to + """ + repository: Repository! +} + +""" +A Git object ID. +""" +scalar GitObjectID + +""" +A fully qualified reference name (e.g. `refs/heads/master`). +""" +scalar GitRefname + +""" +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! +} + +""" +Autogenerated input type of GrantEnterpriseOrganizationsMigratorRole +""" +input GrantEnterpriseOrganizationsMigratorRoleInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the enterprise to which all organizations managed by it will be granted the migrator role. + """ + enterpriseId: ID! @possibleTypes(concreteTypes: ["Enterprise"]) + + """ + The login of the user to grant the migrator role + """ + login: String! +} + +""" +Autogenerated return type of GrantEnterpriseOrganizationsMigratorRole. +""" +type GrantEnterpriseOrganizationsMigratorRolePayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The organizations that had the migrator role applied to for the given user. + """ + 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 +} + +""" +Autogenerated input type of GrantMigratorRole +""" +input GrantMigratorRoleInput { + """ + The user login or Team slug to grant the migrator role. + """ + actor: String! + + """ + Specifies the type of the actor, can be either USER or TEAM. + """ + actorType: ActorType! + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the organization that the user/team belongs to. + """ + organizationId: ID! @possibleTypes(concreteTypes: ["Organization"]) +} + +""" +Autogenerated return type of GrantMigratorRole. +""" +type GrantMigratorRolePayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Did the operation succeed? + """ + success: 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! + + """ + The Node ID of the HeadRefDeletedEvent object + """ + 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! + + """ + The Node ID of the HeadRefForcePushedEvent object + """ + 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! + + """ + The Node ID of the HeadRefRestoredEvent object + """ + 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 ImportProject +""" +input ImportProjectInput { + """ + The description of Project. + """ + body: String + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + A list of columns containing issues and pull requests. + """ + columnImports: [ProjectColumnImport!]! + + """ + The name of Project. + """ + name: String! + + """ + The name of the Organization or User to create the Project under. + """ + ownerName: String! + + """ + Whether the Project is public or not. + """ + public: Boolean = false +} + +""" +Autogenerated return type of ImportProject. +""" +type ImportProjectPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The new Project! + """ + project: Project +} + +""" +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! @possibleTypes(concreteTypes: ["Enterprise"]) + + """ + 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 +} + +""" +Autogenerated input type of InviteEnterpriseMember +""" +input InviteEnterpriseMemberInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The email of the person to invite as an unaffiliated member. + """ + email: String + + """ + The ID of the enterprise to which you want to invite an unaffiliated member. + """ + enterpriseId: ID! @possibleTypes(concreteTypes: ["Enterprise"]) + + """ + The login of a user to invite as an unaffiliated member. + """ + invitee: String +} + +""" +Autogenerated return type of InviteEnterpriseMember. +""" +type InviteEnterpriseMemberPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The created enterprise member invitation. + """ + invitation: EnterpriseMemberInvitation +} + +""" +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! + + """ + The Node ID of the IpAllowListEntry object + """ + 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 +} + +""" +The possible values for the IP allow list configuration for installed GitHub Apps setting. +""" +enum IpAllowListForInstalledAppsEnabledSettingValue { + """ + The setting is disabled for the owner. + """ + DISABLED + + """ + The setting is enabled for the owner. + """ + ENABLED +} + +""" +Types that can own an IP allow list. +""" +union IpAllowListOwner = App | Enterprise | Organization + +""" +An Issue is a place to discuss ideas, enhancements, tasks, and bugs for a project. +""" +type Issue implements Assignable & Closable & Comment & Deletable & Labelable & Lockable & Node & ProjectV2Owner & Reactable & RepositoryNode & Subscribable & SubscribableThread & 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! + + """ + Indicates 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 open pull requests referenced from this issue + """ + closedByPullRequestsReferences( + """ + 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 + + """ + Include closed PRs in results + """ + includeClosedPrs: Boolean = false + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Return results ordered by state + """ + orderByState: Boolean = false + + """ + Return only manually linked PRs + """ + userLinkedOnly: Boolean = false + ): PullRequestConnection + + """ + 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 + + """ + Identifies the primary key from the database as a BigInt. + """ + fullDatabaseId: BigInt + + """ + The hovercard information for this issue + """ + hovercard( + """ + Whether or not to include notification contexts + """ + includeNotificationContexts: Boolean = true + ): Hovercard! + + """ + The Node ID of the Issue object + """ + id: ID! + + """ + Check if this comment was edited and includes an edit with the creation data + """ + includesCreatedEdit: Boolean! + + """ + Indicates whether or not this issue is currently pinned to the repository issues list + """ + isPinned: 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 + + """ + Branches linked to this issue. + """ + linkedBranches( + """ + 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 + ): LinkedBranchConnection! + + """ + `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! + + """ + List of project items associated with this issue. + """ + projectItems( + """ + 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 + + """ + Include archived items. + """ + includeArchived: Boolean = true + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): ProjectV2ItemConnection! + + """ + Find a project by number. + """ + projectV2( + """ + The project number. + """ + number: Int! + ): ProjectV2 + + """ + A list of projects under the owner. + """ + projectsV2( + """ + 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 projects based on user role. + """ + minPermissionLevel: ProjectV2PermissionLevel = READ + + """ + How to order the returned projects. + """ + orderBy: ProjectV2Order = { field: NUMBER, direction: DESC } + + """ + A project to search for under the the owner. + """ + query: String + ): ProjectV2Connection! + + """ + 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! + + """ + Identifies the reason for the issue state. + """ + stateReason: IssueStateReason + + """ + 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 issue title rendered to HTML. + """ + titleHTML: String! + + """ + A list of issues that track this issue + """ + trackedInIssues( + """ + 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 + ): IssueConnection! + + """ + A list of issues tracked inside the current issue + """ + trackedIssues( + """ + 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 + ): IssueConnection! + + """ + The number of tracked issues for this issue + """ + trackedIssuesCount( + """ + Limit the count to tracked issues with the specified states. + """ + states: [TrackedIssueStates] + ): Int! + + """ + 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 + + """ + Indicates if the object can be closed by the viewer. + """ + viewerCanClose: Boolean! + + """ + Check if the current viewer can delete this object. + """ + viewerCanDelete: Boolean! + + """ + Indicates if the viewer can edit labels for this object. + """ + viewerCanLabel: Boolean! + + """ + Can user react to this subject + """ + viewerCanReact: Boolean! + + """ + Indicates if the object can be reopened by the viewer. + """ + viewerCanReopen: 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 + + """ + Identifies the viewer's thread subscription form action. + """ + viewerThreadSubscriptionFormAction: ThreadSubscriptionFormAction + + """ + Identifies the viewer's thread subscription status. + """ + viewerThreadSubscriptionStatus: ThreadSubscriptionState +} + +""" +The possible state reasons of a closed issue. +""" +enum IssueClosedStateReason { + """ + An issue that has been closed as completed + """ + COMPLETED + + """ + An issue that has been closed as not planned + """ + NOT_PLANNED +} + +""" +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 + + """ + Identifies the primary key from the database as a BigInt. + """ + fullDatabaseId: BigInt + + """ + The Node ID of the IssueComment object + """ + 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. One of `abuse`, `off-topic`, + `outdated`, `resolved`, `duplicate` and `spam`. Note that the case and + formatting of these values differs from the inputs to the `MinimizeComment` mutation. + """ + 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 database ID. Pass in + `null` for issues with no milestone, and `*` for issues that are assigned to any milestone. + """ + milestone: 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. + """ + milestoneNumber: 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 +} + +""" +The possible state reasons of an issue. +""" +enum IssueStateReason { + """ + An issue that has been closed as completed + """ + COMPLETED + + """ + An issue that has been closed as not planned + """ + NOT_PLANNED + + """ + An issue that has been reopened + """ + REOPENED +} + +""" +A repository issue template. +""" +type IssueTemplate { + """ + The template purpose. + """ + about: String + + """ + The suggested assignees. + """ + 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 suggested issue body. + """ + body: String + + """ + The template filename. + """ + filename: String! + + """ + The suggested issue labels + """ + 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 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 + | ConvertedToDiscussionEvent + | 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 'converted_to_discussion' event on a given issue. + """ + CONVERTED_TO_DISCUSSION_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, Pull Requests, Milestones, or Discussions 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 + + """ + The Node ID of the Label object + """ + 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 + + """ + Indicates if the viewer can edit labels for this object. + """ + viewerCanLabel: Boolean! +} + +""" +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! + + """ + The Node ID of the LabeledEvent object + """ + 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 + + """ + The Node ID of the Language object + """ + 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! + + """ + The Node ID of the License object + """ + 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 + """ + 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 + """ + spdxId: String + + """ + URL to the license on + """ + 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 LinkProjectV2ToRepository +""" +input LinkProjectV2ToRepositoryInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the project to link to the repository. + """ + projectId: ID! @possibleTypes(concreteTypes: ["ProjectV2"]) + + """ + The ID of the repository to link to the project. + """ + repositoryId: ID! @possibleTypes(concreteTypes: ["Repository"]) +} + +""" +Autogenerated return type of LinkProjectV2ToRepository. +""" +type LinkProjectV2ToRepositoryPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The repository the project is linked to. + """ + repository: Repository +} + +""" +Autogenerated input type of LinkProjectV2ToTeam +""" +input LinkProjectV2ToTeamInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the project to link to the team. + """ + projectId: ID! @possibleTypes(concreteTypes: ["ProjectV2"]) + + """ + The ID of the team to link to the project. + """ + teamId: ID! @possibleTypes(concreteTypes: ["Team"]) +} + +""" +Autogenerated return type of LinkProjectV2ToTeam. +""" +type LinkProjectV2ToTeamPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The team the project is linked to + """ + team: Team +} + +""" +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! @possibleTypes(concreteTypes: ["Project"]) + + """ + The ID of the Repository to link to a Project. + """ + repositoryId: ID! @possibleTypes(concreteTypes: ["Repository"]) +} + +""" +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 +} + +""" +A branch linked to an issue. +""" +type LinkedBranch implements Node { + """ + The Node ID of the LinkedBranch object + """ + id: ID! + + """ + The branch's ref. + """ + ref: Ref +} + +""" +A list of branches linked to an issue. +""" +type LinkedBranchConnection { + """ + A list of edges. + """ + edges: [LinkedBranchEdge] + + """ + A list of nodes. + """ + nodes: [LinkedBranch] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type LinkedBranchEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: LinkedBranch +} + +""" +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! + @possibleTypes( + concreteTypes: ["Discussion", "Issue", "PullRequest"] + abstractType: "Lockable" + ) +} + +""" +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! + + """ + The Node ID of the LockedEvent object + """ + 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! + + """ + The user that has claimed the data attributed to this mannequin. + """ + claimant: User + + """ + 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 + + """ + The Node ID of the Mannequin object + """ + 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! +} + +""" +A list of mannequins. +""" +type MannequinConnection { + """ + A list of edges. + """ + edges: [MannequinEdge] + + """ + A list of nodes. + """ + nodes: [Mannequin] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +Represents a mannequin. +""" +type MannequinEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: Mannequin +} + +""" +Ordering options for mannequins. +""" +input MannequinOrder { + """ + The ordering direction. + """ + direction: OrderDirection! + + """ + The field to order mannequins by. + """ + field: MannequinOrderField! +} + +""" +Properties by which mannequins can be ordered. +""" +enum MannequinOrderField { + """ + Order mannequins why when they were created. + """ + CREATED_AT + + """ + Order mannequins alphabetically by their source login. + """ + LOGIN +} + +""" +Autogenerated input type of MarkDiscussionCommentAsAnswer +""" +input MarkDiscussionCommentAsAnswerInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The Node ID of the discussion comment to mark as an answer. + """ + id: ID! @possibleTypes(concreteTypes: ["DiscussionComment"]) +} + +""" +Autogenerated return type of MarkDiscussionCommentAsAnswer. +""" +type MarkDiscussionCommentAsAnswerPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The discussion that includes the chosen comment. + """ + discussion: Discussion +} + +""" +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! @possibleTypes(concreteTypes: ["PullRequest"]) +} + +""" +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 MarkNotificationAsDone +""" +input MarkNotificationAsDoneInput + @requiredCapabilities( + requiredCapabilities: ["access_internal_graphql_notifications"] + ) { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The NotificationThread id. + """ + id: ID! +} + +""" +Autogenerated return type of MarkNotificationAsDone. +""" +type MarkNotificationAsDonePayload + @requiredCapabilities( + requiredCapabilities: ["access_internal_graphql_notifications"] + ) { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Did the operation succeed? + """ + success: Boolean + + """ + The user that the notification belongs to. + """ + viewer: User +} + +""" +Autogenerated input type of MarkProjectV2AsTemplate +""" +input MarkProjectV2AsTemplateInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the Project to mark as a template. + """ + projectId: ID! @possibleTypes(concreteTypes: ["ProjectV2"]) +} + +""" +Autogenerated return type of MarkProjectV2AsTemplate. +""" +type MarkProjectV2AsTemplatePayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The project. + """ + projectV2: ProjectV2 +} + +""" +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! @possibleTypes(concreteTypes: ["PullRequest"]) +} + +""" +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 + + """ + The Node ID of the MarkedAsDuplicateEvent object + """ + 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 + + """ + The Node ID of the MarketplaceCategory object + """ + 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! + + """ + The Node ID of the MarketplaceListing object + """ + 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 +} + +""" +Prevent commits that include file paths that exceed a specified character limit +from being pushed to the commit graph. NOTE: This rule is in beta and subject to change +""" +type MaxFilePathLengthParameters { + """ + The maximum amount of characters allowed in file paths + """ + maxFilePathLength: Int! +} + +""" +Prevent commits that include file paths that exceed a specified character limit +from being pushed to the commit graph. NOTE: This rule is in beta and subject to change +""" +input MaxFilePathLengthParametersInput { + """ + The maximum amount of characters allowed in file paths + """ + maxFilePathLength: Int! +} + +""" +Prevent commits that exceed a specified file size limit from being pushed to the +commit. NOTE: This rule is in beta and subject to change +""" +type MaxFileSizeParameters { + """ + The maximum file size allowed in megabytes. This limit does not apply to Git Large File Storage (Git LFS). + """ + maxFileSize: Int! +} + +""" +Prevent commits that exceed a specified file size limit from being pushed to the +commit. NOTE: This rule is in beta and subject to change +""" +input MaxFileSizeParametersInput { + """ + The maximum file size allowed in megabytes. This limit does not apply to Git Large File Storage (Git LFS). + """ + maxFileSize: Int! +} + +""" +Represents a member feature request notification +""" +type MemberFeatureRequestNotification implements Node { + """ + Represents member feature request body containing entity name and the number of feature requests + """ + body: String! + + """ + The Node ID of the MemberFeatureRequestNotification object + """ + id: ID! + + """ + Represents member feature request notification title + """ + title: String! + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! +} + +""" +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 + + """ + The Node ID of the MembersCanDeleteReposClearAuditEntry object + """ + 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 + + """ + The Node ID of the MembersCanDeleteReposDisableAuditEntry object + """ + 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 + + """ + The Node ID of the MembersCanDeleteReposEnableAuditEntry object + """ + 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 + + """ + The Node ID of the MentionedEvent object + """ + 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! @possibleTypes(concreteTypes: ["Repository"]) +} + +""" +Autogenerated return type of MergeBranch. +""" +type MergeBranchPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The resulting merge Commit. + """ + mergeCommit: Commit +} + +""" +The possible default commit messages for merges. +""" +enum MergeCommitMessage { + """ + Default to a blank commit message. + """ + BLANK + + """ + Default to the pull request's body. + """ + PR_BODY + + """ + Default to the pull request's title. + """ + PR_TITLE +} + +""" +The possible default commit titles for merges. +""" +enum MergeCommitTitle { + """ + Default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + """ + MERGE_MESSAGE + + """ + Default to the pull request's title. + """ + PR_TITLE +} + +""" +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! @possibleTypes(concreteTypes: ["PullRequest"]) +} + +""" +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 +} + +""" +The queue of pull request entries to be merged into a protected branch in a repository. +""" +type MergeQueue implements Node { + """ + The configuration for this merge queue + """ + configuration: MergeQueueConfiguration + + """ + The entries in the queue + """ + entries( + """ + 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 + ): MergeQueueEntryConnection + + """ + The Node ID of the MergeQueue object + """ + id: ID! + + """ + The estimated time in seconds until a newly added entry would be merged + """ + nextEntryEstimatedTimeToMerge: Int + + """ + The repository this merge queue belongs to + """ + repository: Repository + + """ + The HTTP path for this merge queue + """ + resourcePath: URI! + + """ + The HTTP URL for this merge queue + """ + url: URI! +} + +""" +Configuration for a MergeQueue +""" +type MergeQueueConfiguration { + """ + The amount of time in minutes to wait for a check response before considering it a failure. + """ + checkResponseTimeout: Int + + """ + The maximum number of entries to build at once. + """ + maximumEntriesToBuild: Int + + """ + The maximum number of entries to merge at once. + """ + maximumEntriesToMerge: Int + + """ + The merge method to use for this queue. + """ + mergeMethod: PullRequestMergeMethod + + """ + The strategy to use when merging entries. + """ + mergingStrategy: MergeQueueMergingStrategy + + """ + The minimum number of entries required to merge at once. + """ + minimumEntriesToMerge: Int + + """ + The amount of time in minutes to wait before ignoring the minumum number of + entries in the queue requirement and merging a collection of entries + """ + minimumEntriesToMergeWaitTime: Int +} + +""" +Entries in a MergeQueue +""" +type MergeQueueEntry implements Node { + """ + The base commit for this entry + """ + baseCommit: Commit + + """ + The date and time this entry was added to the merge queue + """ + enqueuedAt: DateTime! + + """ + The actor that enqueued this entry + """ + enqueuer: Actor! + + """ + The estimated time in seconds until this entry will be merged + """ + estimatedTimeToMerge: Int + + """ + The head commit for this entry + """ + headCommit: Commit + + """ + The Node ID of the MergeQueueEntry object + """ + id: ID! + + """ + Whether this pull request should jump the queue + """ + jump: Boolean! + + """ + The merge queue that this entry belongs to + """ + mergeQueue: MergeQueue + + """ + The position of this entry in the queue + """ + position: Int! + + """ + The pull request that will be added to a merge group + """ + pullRequest: PullRequest + + """ + Does this pull request need to be deployed on its own + """ + solo: Boolean! + + """ + The state of this entry in the queue + """ + state: MergeQueueEntryState! +} + +""" +The connection type for MergeQueueEntry. +""" +type MergeQueueEntryConnection { + """ + A list of edges. + """ + edges: [MergeQueueEntryEdge] + + """ + A list of nodes. + """ + nodes: [MergeQueueEntry] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type MergeQueueEntryEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: MergeQueueEntry +} + +""" +The possible states for a merge queue entry. +""" +enum MergeQueueEntryState { + """ + The entry is currently waiting for checks to pass. + """ + AWAITING_CHECKS + + """ + The entry is currently locked. + """ + LOCKED + + """ + The entry is currently mergeable. + """ + MERGEABLE + + """ + The entry is currently queued. + """ + QUEUED + + """ + The entry is currently unmergeable. + """ + UNMERGEABLE +} + +""" +When set to ALLGREEN, the merge commit created by merge queue for each PR in the +group must pass all required checks to merge. When set to HEADGREEN, only the +commit at the head of the merge group, i.e. the commit containing changes from +all of the PRs in the group, must pass its required checks to merge. +""" +enum MergeQueueGroupingStrategy { + """ + The merge commit created by merge queue for each PR in the group must pass all required checks to merge + """ + ALLGREEN + + """ + Only the commit at the head of the merge group must pass its required checks to merge. + """ + HEADGREEN +} + +""" +Method to use when merging changes from queued pull requests. +""" +enum MergeQueueMergeMethod { + """ + Merge commit + """ + MERGE + + """ + Rebase and merge + """ + REBASE + + """ + Squash and merge + """ + SQUASH +} + +""" +The possible merging strategies for a merge queue. +""" +enum MergeQueueMergingStrategy { + """ + Entries only allowed to merge if they are passing. + """ + ALLGREEN + + """ + Failing Entires are allowed to merge if they are with a passing entry. + """ + HEADGREEN +} + +""" +Merges must be performed via a merge queue. +""" +type MergeQueueParameters { + """ + Maximum time for a required status check to report a conclusion. After this + much time has elapsed, checks that have not reported a conclusion will be + assumed to have failed + """ + checkResponseTimeoutMinutes: Int! + + """ + When set to ALLGREEN, the merge commit created by merge queue for each PR in + the group must pass all required checks to merge. When set to HEADGREEN, only + the commit at the head of the merge group, i.e. the commit containing changes + from all of the PRs in the group, must pass its required checks to merge. + """ + groupingStrategy: MergeQueueGroupingStrategy! + + """ + Limit the number of queued pull requests requesting checks and workflow runs at the same time. + """ + maxEntriesToBuild: Int! + + """ + The maximum number of PRs that will be merged together in a group. + """ + maxEntriesToMerge: Int! + + """ + Method to use when merging changes from queued pull requests. + """ + mergeMethod: MergeQueueMergeMethod! + + """ + The minimum number of PRs that will be merged together in a group. + """ + minEntriesToMerge: Int! + + """ + The time merge queue should wait after the first PR is added to the queue for + the minimum group size to be met. After this time has elapsed, the minimum + group size will be ignored and a smaller group will be merged. + """ + minEntriesToMergeWaitMinutes: Int! +} + +""" +Merges must be performed via a merge queue. +""" +input MergeQueueParametersInput { + """ + Maximum time for a required status check to report a conclusion. After this + much time has elapsed, checks that have not reported a conclusion will be + assumed to have failed + """ + checkResponseTimeoutMinutes: Int! + + """ + When set to ALLGREEN, the merge commit created by merge queue for each PR in + the group must pass all required checks to merge. When set to HEADGREEN, only + the commit at the head of the merge group, i.e. the commit containing changes + from all of the PRs in the group, must pass its required checks to merge. + """ + groupingStrategy: MergeQueueGroupingStrategy! + + """ + Limit the number of queued pull requests requesting checks and workflow runs at the same time. + """ + maxEntriesToBuild: Int! + + """ + The maximum number of PRs that will be merged together in a group. + """ + maxEntriesToMerge: Int! + + """ + Method to use when merging changes from queued pull requests. + """ + mergeMethod: MergeQueueMergeMethod! + + """ + The minimum number of PRs that will be merged together in a group. + """ + minEntriesToMerge: Int! + + """ + The time merge queue should wait after the first PR is added to the queue for + the minimum group size to be met. After this time has elapsed, the minimum + group size will be ignored and a smaller group will be merged. + """ + minEntriesToMergeWaitMinutes: Int! +} + +""" +Detailed status information about a pull request merge. +""" +enum MergeStateStatus { + """ + The head ref is out of date. + """ + BEHIND + + """ + The merge is blocked. + """ + BLOCKED + + """ + Mergeable and passing commit status. + """ + CLEAN + + """ + The merge commit cannot be cleanly created. + """ + DIRTY + + """ + The merge is blocked due to the pull request being a draft. + """ + DRAFT + @deprecated( + reason: "DRAFT state will be removed from this enum and `isDraft` should be used instead Use PullRequest.isDraft instead. Removal on 2021-01-01 UTC." + ) + + """ + Mergeable with passing commit status and pre-receive hooks. + """ + HAS_HOOKS + + """ + The state cannot currently be determined. + """ + UNKNOWN + + """ + Mergeable with non-passing commit status. + """ + UNSTABLE +} + +""" +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! + + """ + The Node ID of the MergedEvent object + """ + 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 GitHub Enterprise Importer (GEI) migration. +""" +interface Migration { + """ + The migration flag to continue on error. + """ + continueOnError: Boolean! + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + Identifies the primary key from the database. + """ + databaseId: String + + """ + The reason the migration failed. + """ + failureReason: String + + """ + The Node ID of the Migration object + """ + id: ID! + + """ + The URL for the migration log (expires 1 day after migration completes). + """ + migrationLogUrl: URI + + """ + The migration source. + """ + migrationSource: MigrationSource! + + """ + The target repository name. + """ + repositoryName: String! + + """ + The migration source URL, for example `https://github.com` or `https://monalisa.ghe.com`. + """ + sourceUrl: URI! + + """ + The migration state. + """ + state: MigrationState! + + """ + The number of warnings encountered for this migration. To review the warnings, + check the [Migration Log](https://docs.github.com/migrations/using-github-enterprise-importer/completing-your-migration-with-github-enterprise-importer/accessing-your-migration-logs-for-github-enterprise-importer). + """ + warningsCount: Int! +} + +""" +A GitHub Enterprise Importer (GEI) migration source. +""" +type MigrationSource implements Node { + """ + The Node ID of the MigrationSource object + """ + id: ID! + + """ + The migration source name. + """ + name: String! + + """ + The migration source type. + """ + type: MigrationSourceType! + + """ + The migration source URL, for example `https://github.com` or `https://monalisa.ghe.com`. + """ + url: URI! +} + +""" +Represents the different GitHub Enterprise Importer (GEI) migration sources. +""" +enum MigrationSourceType { + """ + An Azure DevOps migration source. + """ + AZURE_DEVOPS + + """ + A Bitbucket Server migration source. + """ + BITBUCKET_SERVER + + """ + A GitHub Migration API source. + """ + GITHUB_ARCHIVE +} + +""" +The GitHub Enterprise Importer (GEI) migration state. +""" +enum MigrationState { + """ + The migration has failed. + """ + FAILED + + """ + The migration has invalid credentials. + """ + FAILED_VALIDATION + + """ + The migration is in progress. + """ + IN_PROGRESS + + """ + The migration has not started. + """ + NOT_STARTED + + """ + The migration needs to have its credentials validated. + """ + PENDING_VALIDATION + + """ + The migration has been queued. + """ + QUEUED + + """ + The migration has succeeded. + """ + SUCCEEDED +} + +""" +Represents a Milestone object on a given repository. +""" +type Milestone implements Closable & Node & UniformResourceLocatable { + """ + Indicates 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 + + """ + The Node ID of the Milestone object + """ + 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! + + """ + Indicates if the object can be closed by the viewer. + """ + viewerCanClose: Boolean! + + """ + Indicates if the object can be reopened by the viewer. + """ + viewerCanReopen: Boolean! +} + +""" +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! + + """ + The Node ID of the MilestonedEvent object + """ + 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. One of `abuse`, `off-topic`, + `outdated`, `resolved`, `duplicate` and `spam`. Note that the case and + formatting of these values differs from the inputs to the `MinimizeComment` mutation. + """ + 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! + @possibleTypes( + concreteTypes: [ + "CommitComment" + "DiscussionComment" + "GistComment" + "IssueComment" + "PullRequestReview" + "PullRequestReviewComment" + ] + abstractType: "Minimizable" + ) +} + +""" +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 @possibleTypes(concreteTypes: ["ProjectCard"]) + + """ + The id of the card to move. + """ + cardId: ID! @possibleTypes(concreteTypes: ["ProjectCard"]) + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The id of the column to move it into. + """ + columnId: ID! @possibleTypes(concreteTypes: ["ProjectColumn"]) +} + +""" +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 @possibleTypes(concreteTypes: ["ProjectColumn"]) + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The id of the column to move. + """ + columnId: ID! @possibleTypes(concreteTypes: ["ProjectColumn"]) +} + +""" +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 + + """ + The Node ID of the MovedColumnsInProjectEvent object + """ + id: ID! + + """ + Column name the issue or pull request was moved from. + """ + previousProjectColumnName: String! + + """ + Project referenced by event. + """ + project: Project + + """ + Project card referenced by this project event. + """ + projectCard: ProjectCard + + """ + Column name the issue or pull request was moved to. + """ + projectColumnName: String! +} + +""" +The root query for implementing GraphQL mutations. +""" +type Mutation { + """ + Clear all of a customer's queued migrations + """ + abortQueuedMigrations( + """ + Parameters for AbortQueuedMigrations + """ + input: AbortQueuedMigrationsInput! + ): AbortQueuedMigrationsPayload + + """ + Abort a repository migration queued or in progress. + """ + abortRepositoryMigration( + """ + Parameters for AbortRepositoryMigration + """ + input: AbortRepositoryMigrationInput! + ): AbortRepositoryMigrationPayload + + """ + Accepts a pending invitation for a user to become an administrator of an enterprise. + """ + acceptEnterpriseAdministratorInvitation( + """ + Parameters for AcceptEnterpriseAdministratorInvitation + """ + input: AcceptEnterpriseAdministratorInvitationInput! + ): AcceptEnterpriseAdministratorInvitationPayload + + """ + Accepts a pending invitation for a user to become an unaffiliated member of an enterprise. + """ + acceptEnterpriseMemberInvitation( + """ + Parameters for AcceptEnterpriseMemberInvitation + """ + input: AcceptEnterpriseMemberInvitationInput! + ): AcceptEnterpriseMemberInvitationPayload + + """ + Applies a suggested topic to the repository. + """ + acceptTopicSuggestion( + """ + Parameters for AcceptTopicSuggestion + """ + input: AcceptTopicSuggestionInput! + ): AcceptTopicSuggestionPayload + + """ + Adds assignees to an assignable object. + """ + addAssigneesToAssignable( + """ + Parameters for AddAssigneesToAssignable + """ + input: AddAssigneesToAssignableInput! + ): AddAssigneesToAssignablePayload + + """ + Adds a comment to an Issue or Pull Request. + """ + addComment( + """ + Parameters for AddComment + """ + input: AddCommentInput! + ): AddCommentPayload + + """ + Adds a comment to a Discussion, possibly as a reply to another comment. + """ + addDiscussionComment( + """ + Parameters for AddDiscussionComment + """ + input: AddDiscussionCommentInput! + ): AddDiscussionCommentPayload + + """ + Vote for an option in a discussion poll. + """ + addDiscussionPollVote( + """ + Parameters for AddDiscussionPollVote + """ + input: AddDiscussionPollVoteInput! + ): AddDiscussionPollVotePayload + + """ + Adds enterprise members to an organization within the enterprise. + """ + addEnterpriseOrganizationMember( + """ + Parameters for AddEnterpriseOrganizationMember + """ + input: AddEnterpriseOrganizationMemberInput! + ): AddEnterpriseOrganizationMemberPayload + + """ + Adds a support entitlement to an enterprise member. + """ + addEnterpriseSupportEntitlement( + """ + Parameters for AddEnterpriseSupportEntitlement + """ + input: AddEnterpriseSupportEntitlementInput! + ): AddEnterpriseSupportEntitlementPayload + + """ + Adds labels to a labelable object. + """ + addLabelsToLabelable( + """ + Parameters for AddLabelsToLabelable + """ + input: AddLabelsToLabelableInput! + ): AddLabelsToLabelablePayload + + """ + Adds a card to a ProjectColumn. Either `contentId` or `note` must be provided but **not** both. + """ + addProjectCard( + """ + Parameters for AddProjectCard + """ + input: AddProjectCardInput! + ): AddProjectCardPayload + + """ + Adds a column to a Project. + """ + addProjectColumn( + """ + Parameters for AddProjectColumn + """ + input: AddProjectColumnInput! + ): AddProjectColumnPayload + + """ + Creates a new draft issue and add it to a Project. + """ + addProjectV2DraftIssue( + """ + Parameters for AddProjectV2DraftIssue + """ + input: AddProjectV2DraftIssueInput! + ): AddProjectV2DraftIssuePayload + + """ + Links an existing content instance to a Project. + """ + addProjectV2ItemById( + """ + Parameters for AddProjectV2ItemById + """ + input: AddProjectV2ItemByIdInput! + ): AddProjectV2ItemByIdPayload + + """ + Adds a review to a Pull Request. + """ + addPullRequestReview( + """ + Parameters for AddPullRequestReview + """ + input: AddPullRequestReviewInput! + ): AddPullRequestReviewPayload + + """ + Adds a comment to a review. + """ + addPullRequestReviewComment( + """ + Parameters for AddPullRequestReviewComment + """ + input: AddPullRequestReviewCommentInput! + ): AddPullRequestReviewCommentPayload + + """ + Adds a new thread to a pending Pull Request Review. + """ + addPullRequestReviewThread( + """ + Parameters for AddPullRequestReviewThread + """ + input: AddPullRequestReviewThreadInput! + ): AddPullRequestReviewThreadPayload + + """ + Adds a reply to an existing Pull Request Review Thread. + """ + addPullRequestReviewThreadReply( + """ + Parameters for AddPullRequestReviewThreadReply + """ + input: AddPullRequestReviewThreadReplyInput! + ): AddPullRequestReviewThreadReplyPayload + + """ + Adds a reaction to a subject. + """ + addReaction( + """ + Parameters for AddReaction + """ + input: AddReactionInput! + ): AddReactionPayload + + """ + Adds a star to a Starrable. + """ + addStar( + """ + Parameters for AddStar + """ + input: AddStarInput! + ): AddStarPayload + + """ + Add an upvote to a discussion or discussion comment. + """ + addUpvote( + """ + Parameters for AddUpvote + """ + input: AddUpvoteInput! + ): AddUpvotePayload + + """ + Adds a verifiable domain to an owning account. + """ + addVerifiableDomain( + """ + Parameters for AddVerifiableDomain + """ + input: AddVerifiableDomainInput! + ): AddVerifiableDomainPayload + + """ + Approve all pending deployments under one or more environments + """ + approveDeployments( + """ + Parameters for ApproveDeployments + """ + input: ApproveDeploymentsInput! + ): ApproveDeploymentsPayload + + """ + Approve a verifiable domain for notification delivery. + """ + approveVerifiableDomain( + """ + Parameters for ApproveVerifiableDomain + """ + input: ApproveVerifiableDomainInput! + ): ApproveVerifiableDomainPayload + + """ + Archives a ProjectV2Item + """ + archiveProjectV2Item( + """ + Parameters for ArchiveProjectV2Item + """ + input: ArchiveProjectV2ItemInput! + ): ArchiveProjectV2ItemPayload + + """ + Marks a repository as archived. + """ + archiveRepository( + """ + Parameters for ArchiveRepository + """ + input: ArchiveRepositoryInput! + ): ArchiveRepositoryPayload + + """ + Cancels a pending invitation for an administrator to join an enterprise. + """ + cancelEnterpriseAdminInvitation( + """ + Parameters for CancelEnterpriseAdminInvitation + """ + input: CancelEnterpriseAdminInvitationInput! + ): CancelEnterpriseAdminInvitationPayload + + """ + Cancels a pending invitation for an unaffiliated member to join an enterprise. + """ + cancelEnterpriseMemberInvitation( + """ + Parameters for CancelEnterpriseMemberInvitation + """ + input: CancelEnterpriseMemberInvitationInput! + ): CancelEnterpriseMemberInvitationPayload + + """ + Cancel an active sponsorship. + """ + cancelSponsorship( + """ + Parameters for CancelSponsorship + """ + input: CancelSponsorshipInput! + ): CancelSponsorshipPayload + + """ + Update your status on GitHub. + """ + changeUserStatus( + """ + Parameters for ChangeUserStatus + """ + input: ChangeUserStatusInput! + ): ChangeUserStatusPayload + + """ + Clears all labels from a labelable object. + """ + clearLabelsFromLabelable( + """ + Parameters for ClearLabelsFromLabelable + """ + input: ClearLabelsFromLabelableInput! + ): ClearLabelsFromLabelablePayload + + """ + This mutation clears the value of a field for an item in a Project. Currently + only text, number, date, assignees, labels, single-select, iteration and + milestone fields are supported. + """ + clearProjectV2ItemFieldValue( + """ + Parameters for ClearProjectV2ItemFieldValue + """ + input: ClearProjectV2ItemFieldValueInput! + ): ClearProjectV2ItemFieldValuePayload + + """ + Creates a new project by cloning configuration from an existing project. + """ + cloneProject( + """ + Parameters for CloneProject + """ + input: CloneProjectInput! + ): CloneProjectPayload + + """ + Create a new repository with the same files and directory structure as a template repository. + """ + cloneTemplateRepository( + """ + Parameters for CloneTemplateRepository + """ + input: CloneTemplateRepositoryInput! + ): CloneTemplateRepositoryPayload + + """ + Close a discussion. + """ + closeDiscussion( + """ + Parameters for CloseDiscussion + """ + input: CloseDiscussionInput! + ): CloseDiscussionPayload + + """ + Close an issue. + """ + closeIssue( + """ + Parameters for CloseIssue + """ + input: CloseIssueInput! + ): CloseIssuePayload + + """ + Close a pull request. + """ + closePullRequest( + """ + Parameters for ClosePullRequest + """ + input: ClosePullRequestInput! + ): ClosePullRequestPayload + + """ + Convert a project note card to one associated with a newly created issue. + """ + convertProjectCardNoteToIssue( + """ + Parameters for ConvertProjectCardNoteToIssue + """ + input: ConvertProjectCardNoteToIssueInput! + ): ConvertProjectCardNoteToIssuePayload + + """ + Converts a projectV2 draft issue item to an issue. + """ + convertProjectV2DraftIssueItemToIssue( + """ + Parameters for ConvertProjectV2DraftIssueItemToIssue + """ + input: ConvertProjectV2DraftIssueItemToIssueInput! + ): ConvertProjectV2DraftIssueItemToIssuePayload + + """ + Converts a pull request to draft + """ + convertPullRequestToDraft( + """ + Parameters for ConvertPullRequestToDraft + """ + input: ConvertPullRequestToDraftInput! + ): ConvertPullRequestToDraftPayload + + """ + Copy a project. + """ + copyProjectV2( + """ + Parameters for CopyProjectV2 + """ + input: CopyProjectV2Input! + ): CopyProjectV2Payload + + """ + Invites a user to claim reattributable data + """ + createAttributionInvitation( + """ + Parameters for CreateAttributionInvitation + """ + input: CreateAttributionInvitationInput! + ): CreateAttributionInvitationPayload + + """ + Create a new branch protection rule + """ + createBranchProtectionRule( + """ + Parameters for CreateBranchProtectionRule + """ + input: CreateBranchProtectionRuleInput! + ): CreateBranchProtectionRulePayload + + """ + Create a check run. + """ + createCheckRun( + """ + Parameters for CreateCheckRun + """ + input: CreateCheckRunInput! + ): CreateCheckRunPayload + + """ + Create a check suite + """ + createCheckSuite( + """ + Parameters for CreateCheckSuite + """ + input: CreateCheckSuiteInput! + ): CreateCheckSuitePayload + + """ + Appends a commit to the given branch as the authenticated user. + + This mutation creates a commit whose parent is the HEAD of the provided + branch and also updates that branch to point to the new commit. + It can be thought of as similar to `git commit`. + + ### Locating a Branch + + Commits are appended to a `branch` of type `Ref`. + This must refer to a git branch (i.e. the fully qualified path must + begin with `refs/heads/`, although including this prefix is optional. + + Callers may specify the `branch` to commit to either by its global node + ID or by passing both of `repositoryNameWithOwner` and `refName`. For + more details see the documentation for `CommittableBranch`. + + ### Describing Changes + + `fileChanges` are specified as a `FilesChanges` object describing + `FileAdditions` and `FileDeletions`. + + Please see the documentation for `FileChanges` for more information on + how to use this argument to describe any set of file changes. + + ### Authorship + + Similar to the web commit interface, this mutation does not support + specifying the author or committer of the commit and will not add + support for this in the future. + + A commit created by a successful execution of this mutation will be + authored by the owner of the credential which authenticates the API + request. The committer will be identical to that of commits authored + using the web interface. + + If you need full control over author and committer information, please + use the Git Database REST API instead. + + ### Commit Signing + + Commits made using this mutation are automatically signed by GitHub if + supported and will be marked as verified in the user interface. + """ + createCommitOnBranch( + """ + Parameters for CreateCommitOnBranch + """ + input: CreateCommitOnBranchInput! + ): CreateCommitOnBranchPayload + + """ + Creates a new deployment event. + """ + createDeployment( + """ + Parameters for CreateDeployment + """ + input: CreateDeploymentInput! + ): CreateDeploymentPayload + + """ + Create a deployment status. + """ + createDeploymentStatus( + """ + Parameters for CreateDeploymentStatus + """ + input: CreateDeploymentStatusInput! + ): CreateDeploymentStatusPayload + + """ + Create a discussion. + """ + createDiscussion( + """ + Parameters for CreateDiscussion + """ + input: CreateDiscussionInput! + ): CreateDiscussionPayload + + """ + Creates an organization as part of an enterprise account. A personal access + token used to create an organization is implicitly permitted to update the + organization it created, if the organization is part of an enterprise that has + SAML enabled or uses Enterprise Managed Users. If the organization is not part + of such an enterprise, and instead has SAML enabled for it individually, the + token will then require SAML authorization to continue working against that organization. + """ + createEnterpriseOrganization( + """ + Parameters for CreateEnterpriseOrganization + """ + input: CreateEnterpriseOrganizationInput! + ): CreateEnterpriseOrganizationPayload + + """ + Creates an environment or simply returns it if already exists. + """ + createEnvironment( + """ + Parameters for CreateEnvironment + """ + input: CreateEnvironmentInput! + ): CreateEnvironmentPayload + + """ + Creates a new IP allow list entry. + """ + createIpAllowListEntry( + """ + Parameters for CreateIpAllowListEntry + """ + input: CreateIpAllowListEntryInput! + ): CreateIpAllowListEntryPayload + + """ + Creates a new issue. + """ + createIssue( + """ + Parameters for CreateIssue + """ + input: CreateIssueInput! + ): CreateIssuePayload + + """ + Creates a new label. + """ + createLabel( + """ + Parameters for CreateLabel + """ + input: CreateLabelInput! + ): CreateLabelPayload + + """ + Create a branch linked to an issue. + """ + createLinkedBranch( + """ + Parameters for CreateLinkedBranch + """ + input: CreateLinkedBranchInput! + ): CreateLinkedBranchPayload + + """ + Creates a GitHub Enterprise Importer (GEI) migration source. + """ + createMigrationSource( + """ + Parameters for CreateMigrationSource + """ + input: CreateMigrationSourceInput! + ): CreateMigrationSourcePayload + + """ + Creates a new project. + """ + createProject( + """ + Parameters for CreateProject + """ + input: CreateProjectInput! + ): CreateProjectPayload + + """ + Creates a new project. + """ + createProjectV2( + """ + Parameters for CreateProjectV2 + """ + input: CreateProjectV2Input! + ): CreateProjectV2Payload + + """ + Create a new project field. + """ + createProjectV2Field( + """ + Parameters for CreateProjectV2Field + """ + input: CreateProjectV2FieldInput! + ): CreateProjectV2FieldPayload + + """ + Creates a status update within a Project. + """ + createProjectV2StatusUpdate( + """ + Parameters for CreateProjectV2StatusUpdate + """ + input: CreateProjectV2StatusUpdateInput! + ): CreateProjectV2StatusUpdatePayload + + """ + Create a new pull request + """ + createPullRequest( + """ + Parameters for CreatePullRequest + """ + input: CreatePullRequestInput! + ): CreatePullRequestPayload + + """ + Create a new Git Ref. + """ + createRef( + """ + Parameters for CreateRef + """ + input: CreateRefInput! + ): CreateRefPayload + + """ + Create a new repository. + """ + createRepository( + """ + Parameters for CreateRepository + """ + input: CreateRepositoryInput! + ): CreateRepositoryPayload + + """ + Create a repository ruleset + """ + createRepositoryRuleset( + """ + Parameters for CreateRepositoryRuleset + """ + input: CreateRepositoryRulesetInput! + ): CreateRepositoryRulesetPayload + + """ + Create a GitHub Sponsors profile to allow others to sponsor you or your organization. + """ + createSponsorsListing( + """ + Parameters for CreateSponsorsListing + """ + input: CreateSponsorsListingInput! + ): CreateSponsorsListingPayload + + """ + Create a new payment tier for your GitHub Sponsors profile. + """ + createSponsorsTier( + """ + Parameters for CreateSponsorsTier + """ + input: CreateSponsorsTierInput! + ): CreateSponsorsTierPayload + + """ + Start a new sponsorship of a maintainer in GitHub Sponsors, or reactivate a past sponsorship. + """ + createSponsorship( + """ + Parameters for CreateSponsorship + """ + input: CreateSponsorshipInput! + ): CreateSponsorshipPayload + + """ + Make many sponsorships for different sponsorable users or organizations at + once. Can only sponsor those who have a public GitHub Sponsors profile. + """ + createSponsorships( + """ + Parameters for CreateSponsorships + """ + input: CreateSponsorshipsInput! + ): CreateSponsorshipsPayload + + """ + Creates a new team discussion. + """ + createTeamDiscussion( + """ + Parameters for CreateTeamDiscussion + """ + input: CreateTeamDiscussionInput! + ): CreateTeamDiscussionPayload + + """ + Creates a new team discussion comment. + """ + createTeamDiscussionComment( + """ + Parameters for CreateTeamDiscussionComment + """ + input: CreateTeamDiscussionCommentInput! + ): CreateTeamDiscussionCommentPayload + + """ + Creates a new user list. + """ + createUserList( + """ + Parameters for CreateUserList + """ + input: CreateUserListInput! + ): CreateUserListPayload + + """ + Rejects a suggested topic for the repository. + """ + declineTopicSuggestion( + """ + Parameters for DeclineTopicSuggestion + """ + input: DeclineTopicSuggestionInput! + ): DeclineTopicSuggestionPayload + + """ + Delete a branch protection rule + """ + deleteBranchProtectionRule( + """ + Parameters for DeleteBranchProtectionRule + """ + input: DeleteBranchProtectionRuleInput! + ): DeleteBranchProtectionRulePayload + + """ + Deletes a deployment. + """ + deleteDeployment( + """ + Parameters for DeleteDeployment + """ + input: DeleteDeploymentInput! + ): DeleteDeploymentPayload + + """ + Delete a discussion and all of its replies. + """ + deleteDiscussion( + """ + Parameters for DeleteDiscussion + """ + input: DeleteDiscussionInput! + ): DeleteDiscussionPayload + + """ + Delete a discussion comment. If it has replies, wipe it instead. + """ + deleteDiscussionComment( + """ + Parameters for DeleteDiscussionComment + """ + input: DeleteDiscussionCommentInput! + ): DeleteDiscussionCommentPayload + + """ + Deletes an environment + """ + deleteEnvironment( + """ + Parameters for DeleteEnvironment + """ + input: DeleteEnvironmentInput! + ): DeleteEnvironmentPayload + + """ + Deletes an IP allow list entry. + """ + deleteIpAllowListEntry( + """ + Parameters for DeleteIpAllowListEntry + """ + input: DeleteIpAllowListEntryInput! + ): DeleteIpAllowListEntryPayload + + """ + Deletes an Issue object. + """ + deleteIssue( + """ + Parameters for DeleteIssue + """ + input: DeleteIssueInput! + ): DeleteIssuePayload + + """ + Deletes an IssueComment object. + """ + deleteIssueComment( + """ + Parameters for DeleteIssueComment + """ + input: DeleteIssueCommentInput! + ): DeleteIssueCommentPayload + + """ + Deletes a label. + """ + deleteLabel( + """ + Parameters for DeleteLabel + """ + input: DeleteLabelInput! + ): DeleteLabelPayload + + """ + Unlink a branch from an issue. + """ + deleteLinkedBranch( + """ + Parameters for DeleteLinkedBranch + """ + input: DeleteLinkedBranchInput! + ): DeleteLinkedBranchPayload + + """ + Delete a package version. + """ + deletePackageVersion( + """ + Parameters for DeletePackageVersion + """ + input: DeletePackageVersionInput! + ): DeletePackageVersionPayload + + """ + Deletes a project. + """ + deleteProject( + """ + Parameters for DeleteProject + """ + input: DeleteProjectInput! + ): DeleteProjectPayload + + """ + Deletes a project card. + """ + deleteProjectCard( + """ + Parameters for DeleteProjectCard + """ + input: DeleteProjectCardInput! + ): DeleteProjectCardPayload + + """ + Deletes a project column. + """ + deleteProjectColumn( + """ + Parameters for DeleteProjectColumn + """ + input: DeleteProjectColumnInput! + ): DeleteProjectColumnPayload + + """ + Delete a project. + """ + deleteProjectV2( + """ + Parameters for DeleteProjectV2 + """ + input: DeleteProjectV2Input! + ): DeleteProjectV2Payload + + """ + Delete a project field. + """ + deleteProjectV2Field( + """ + Parameters for DeleteProjectV2Field + """ + input: DeleteProjectV2FieldInput! + ): DeleteProjectV2FieldPayload + + """ + Deletes an item from a Project. + """ + deleteProjectV2Item( + """ + Parameters for DeleteProjectV2Item + """ + input: DeleteProjectV2ItemInput! + ): DeleteProjectV2ItemPayload + + """ + Deletes a project status update. + """ + deleteProjectV2StatusUpdate( + """ + Parameters for DeleteProjectV2StatusUpdate + """ + input: DeleteProjectV2StatusUpdateInput! + ): DeleteProjectV2StatusUpdatePayload + + """ + Deletes a project workflow. + """ + deleteProjectV2Workflow( + """ + Parameters for DeleteProjectV2Workflow + """ + input: DeleteProjectV2WorkflowInput! + ): DeleteProjectV2WorkflowPayload + + """ + Deletes a pull request review. + """ + deletePullRequestReview( + """ + Parameters for DeletePullRequestReview + """ + input: DeletePullRequestReviewInput! + ): DeletePullRequestReviewPayload + + """ + Deletes a pull request review comment. + """ + deletePullRequestReviewComment( + """ + Parameters for DeletePullRequestReviewComment + """ + input: DeletePullRequestReviewCommentInput! + ): DeletePullRequestReviewCommentPayload + + """ + Delete a Git Ref. + """ + deleteRef( + """ + Parameters for DeleteRef + """ + input: DeleteRefInput! + ): DeleteRefPayload + + """ + Delete a repository ruleset + """ + deleteRepositoryRuleset( + """ + Parameters for DeleteRepositoryRuleset + """ + input: DeleteRepositoryRulesetInput! + ): DeleteRepositoryRulesetPayload + + """ + Deletes a team discussion. + """ + deleteTeamDiscussion( + """ + Parameters for DeleteTeamDiscussion + """ + input: DeleteTeamDiscussionInput! + ): DeleteTeamDiscussionPayload + + """ + Deletes a team discussion comment. + """ + deleteTeamDiscussionComment( + """ + Parameters for DeleteTeamDiscussionComment + """ + input: DeleteTeamDiscussionCommentInput! + ): DeleteTeamDiscussionCommentPayload + + """ + Deletes a user list. + """ + deleteUserList( + """ + Parameters for DeleteUserList + """ + input: DeleteUserListInput! + ): DeleteUserListPayload + + """ + Deletes a verifiable domain. + """ + deleteVerifiableDomain( + """ + Parameters for DeleteVerifiableDomain + """ + input: DeleteVerifiableDomainInput! + ): DeleteVerifiableDomainPayload + + """ + Remove a pull request from the merge queue. + """ + dequeuePullRequest( + """ + Parameters for DequeuePullRequest + """ + input: DequeuePullRequestInput! + ): DequeuePullRequestPayload + + """ + Disable auto merge on the given pull request + """ + disablePullRequestAutoMerge( + """ + Parameters for DisablePullRequestAutoMerge + """ + input: DisablePullRequestAutoMergeInput! + ): DisablePullRequestAutoMergePayload + + """ + Dismisses an approved or rejected pull request review. + """ + dismissPullRequestReview( + """ + Parameters for DismissPullRequestReview + """ + input: DismissPullRequestReviewInput! + ): DismissPullRequestReviewPayload + + """ + Dismisses the Dependabot alert. + """ + dismissRepositoryVulnerabilityAlert( + """ + Parameters for DismissRepositoryVulnerabilityAlert + """ + input: DismissRepositoryVulnerabilityAlertInput! + ): DismissRepositoryVulnerabilityAlertPayload + + """ + Enable the default auto-merge on a pull request. + """ + enablePullRequestAutoMerge( + """ + Parameters for EnablePullRequestAutoMerge + """ + input: EnablePullRequestAutoMergeInput! + ): EnablePullRequestAutoMergePayload + + """ + Add a pull request to the merge queue. + """ + enqueuePullRequest( + """ + Parameters for EnqueuePullRequest + """ + input: EnqueuePullRequestInput! + ): EnqueuePullRequestPayload + + """ + Follow an organization. + """ + followOrganization( + """ + Parameters for FollowOrganization + """ + input: FollowOrganizationInput! + ): FollowOrganizationPayload + + """ + Follow a user. + """ + followUser( + """ + Parameters for FollowUser + """ + input: FollowUserInput! + ): FollowUserPayload + + """ + Grant the migrator role to a user for all organizations under an enterprise account. + """ + grantEnterpriseOrganizationsMigratorRole( + """ + Parameters for GrantEnterpriseOrganizationsMigratorRole + """ + input: GrantEnterpriseOrganizationsMigratorRoleInput! + ): GrantEnterpriseOrganizationsMigratorRolePayload + + """ + Grant the migrator role to a user or a team. + """ + grantMigratorRole( + """ + Parameters for GrantMigratorRole + """ + input: GrantMigratorRoleInput! + ): GrantMigratorRolePayload + + """ + Creates a new project by importing columns and a list of issues/PRs. + """ + importProject( + """ + Parameters for ImportProject + """ + input: ImportProjectInput! + ): ImportProjectPayload + + """ + Invite someone to become an administrator of the enterprise. + """ + inviteEnterpriseAdmin( + """ + Parameters for InviteEnterpriseAdmin + """ + input: InviteEnterpriseAdminInput! + ): InviteEnterpriseAdminPayload + + """ + Invite someone to become an unaffiliated member of the enterprise. + """ + inviteEnterpriseMember( + """ + Parameters for InviteEnterpriseMember + """ + input: InviteEnterpriseMemberInput! + ): InviteEnterpriseMemberPayload + + """ + Links a project to a repository. + """ + linkProjectV2ToRepository( + """ + Parameters for LinkProjectV2ToRepository + """ + input: LinkProjectV2ToRepositoryInput! + ): LinkProjectV2ToRepositoryPayload + + """ + Links a project to a team. + """ + linkProjectV2ToTeam( + """ + Parameters for LinkProjectV2ToTeam + """ + input: LinkProjectV2ToTeamInput! + ): LinkProjectV2ToTeamPayload + + """ + Creates a repository link for a project. + """ + linkRepositoryToProject( + """ + Parameters for LinkRepositoryToProject + """ + input: LinkRepositoryToProjectInput! + ): LinkRepositoryToProjectPayload + + """ + Lock a lockable object + """ + lockLockable( + """ + Parameters for LockLockable + """ + input: LockLockableInput! + ): LockLockablePayload + + """ + Mark a discussion comment as the chosen answer for discussions in an answerable category. + """ + markDiscussionCommentAsAnswer( + """ + Parameters for MarkDiscussionCommentAsAnswer + """ + input: MarkDiscussionCommentAsAnswerInput! + ): MarkDiscussionCommentAsAnswerPayload + + """ + Mark a pull request file as viewed + """ + markFileAsViewed( + """ + Parameters for MarkFileAsViewed + """ + input: MarkFileAsViewedInput! + ): MarkFileAsViewedPayload + + """ + Marks a notification as done + """ + markNotificationAsDone( + """ + Parameters for MarkNotificationAsDone + """ + input: MarkNotificationAsDoneInput! + ): MarkNotificationAsDonePayload + + """ + Mark a project as a template. Note that only projects which are owned by an Organization can be marked as a template. + """ + markProjectV2AsTemplate( + """ + Parameters for MarkProjectV2AsTemplate + """ + input: MarkProjectV2AsTemplateInput! + ): MarkProjectV2AsTemplatePayload + + """ + Marks a pull request ready for review. + """ + markPullRequestReadyForReview( + """ + Parameters for MarkPullRequestReadyForReview + """ + input: MarkPullRequestReadyForReviewInput! + ): MarkPullRequestReadyForReviewPayload + + """ + Merge a head into a branch. + """ + mergeBranch( + """ + Parameters for MergeBranch + """ + input: MergeBranchInput! + ): MergeBranchPayload + + """ + Merge a pull request. + """ + mergePullRequest( + """ + Parameters for MergePullRequest + """ + input: MergePullRequestInput! + ): MergePullRequestPayload + + """ + Minimizes a comment on an Issue, Commit, Pull Request, or Gist + """ + minimizeComment( + """ + Parameters for MinimizeComment + """ + input: MinimizeCommentInput! + ): MinimizeCommentPayload + + """ + Moves a project card to another place. + """ + moveProjectCard( + """ + Parameters for MoveProjectCard + """ + input: MoveProjectCardInput! + ): MoveProjectCardPayload + + """ + Moves a project column to another place. + """ + moveProjectColumn( + """ + Parameters for MoveProjectColumn + """ + input: MoveProjectColumnInput! + ): MoveProjectColumnPayload + + """ + Pin an environment to a repository + """ + pinEnvironment( + """ + Parameters for PinEnvironment + """ + input: PinEnvironmentInput! + ): PinEnvironmentPayload + + """ + Pin an issue to a repository + """ + pinIssue( + """ + Parameters for PinIssue + """ + input: PinIssueInput! + ): PinIssuePayload + + """ + Publish an existing sponsorship tier that is currently still a draft to a GitHub Sponsors profile. + """ + publishSponsorsTier( + """ + Parameters for PublishSponsorsTier + """ + input: PublishSponsorsTierInput! + ): PublishSponsorsTierPayload + + """ + Regenerates the identity provider recovery codes for an enterprise + """ + regenerateEnterpriseIdentityProviderRecoveryCodes( + """ + Parameters for RegenerateEnterpriseIdentityProviderRecoveryCodes + """ + input: RegenerateEnterpriseIdentityProviderRecoveryCodesInput! + ): RegenerateEnterpriseIdentityProviderRecoveryCodesPayload + + """ + Regenerates a verifiable domain's verification token. + """ + regenerateVerifiableDomainToken( + """ + Parameters for RegenerateVerifiableDomainToken + """ + input: RegenerateVerifiableDomainTokenInput! + ): RegenerateVerifiableDomainTokenPayload + + """ + Reject all pending deployments under one or more environments + """ + rejectDeployments( + """ + Parameters for RejectDeployments + """ + input: RejectDeploymentsInput! + ): RejectDeploymentsPayload + + """ + Removes assignees from an assignable object. + """ + removeAssigneesFromAssignable( + """ + Parameters for RemoveAssigneesFromAssignable + """ + input: RemoveAssigneesFromAssignableInput! + ): RemoveAssigneesFromAssignablePayload + + """ + Removes an administrator from the enterprise. + """ + removeEnterpriseAdmin( + """ + Parameters for RemoveEnterpriseAdmin + """ + input: RemoveEnterpriseAdminInput! + ): RemoveEnterpriseAdminPayload + + """ + Removes the identity provider from an enterprise. Owners of enterprises both + with and without Enterprise Managed Users may use this mutation. + """ + removeEnterpriseIdentityProvider( + """ + Parameters for RemoveEnterpriseIdentityProvider + """ + input: RemoveEnterpriseIdentityProviderInput! + ): RemoveEnterpriseIdentityProviderPayload + + """ + Removes a user from all organizations within the enterprise + """ + removeEnterpriseMember( + """ + Parameters for RemoveEnterpriseMember + """ + input: RemoveEnterpriseMemberInput! + ): RemoveEnterpriseMemberPayload + + """ + Removes an organization from the enterprise + """ + removeEnterpriseOrganization( + """ + Parameters for RemoveEnterpriseOrganization + """ + input: RemoveEnterpriseOrganizationInput! + ): RemoveEnterpriseOrganizationPayload + + """ + Removes a support entitlement from an enterprise member. + """ + removeEnterpriseSupportEntitlement( + """ + Parameters for RemoveEnterpriseSupportEntitlement + """ + input: RemoveEnterpriseSupportEntitlementInput! + ): RemoveEnterpriseSupportEntitlementPayload + + """ + Removes labels from a Labelable object. + """ + removeLabelsFromLabelable( + """ + Parameters for RemoveLabelsFromLabelable + """ + input: RemoveLabelsFromLabelableInput! + ): RemoveLabelsFromLabelablePayload + + """ + Removes outside collaborator from all repositories in an organization. + """ + removeOutsideCollaborator( + """ + Parameters for RemoveOutsideCollaborator + """ + input: RemoveOutsideCollaboratorInput! + ): RemoveOutsideCollaboratorPayload + + """ + Removes a reaction from a subject. + """ + removeReaction( + """ + Parameters for RemoveReaction + """ + input: RemoveReactionInput! + ): RemoveReactionPayload + + """ + Removes a star from a Starrable. + """ + removeStar( + """ + Parameters for RemoveStar + """ + input: RemoveStarInput! + ): RemoveStarPayload + + """ + Remove an upvote to a discussion or discussion comment. + """ + removeUpvote( + """ + Parameters for RemoveUpvote + """ + input: RemoveUpvoteInput! + ): RemoveUpvotePayload + + """ + Reopen a discussion. + """ + reopenDiscussion( + """ + Parameters for ReopenDiscussion + """ + input: ReopenDiscussionInput! + ): ReopenDiscussionPayload + + """ + Reopen a issue. + """ + reopenIssue( + """ + Parameters for ReopenIssue + """ + input: ReopenIssueInput! + ): ReopenIssuePayload + + """ + Reopen a pull request. + """ + reopenPullRequest( + """ + Parameters for ReopenPullRequest + """ + input: ReopenPullRequestInput! + ): ReopenPullRequestPayload + + """ + Reorder a pinned repository environment + """ + reorderEnvironment( + """ + Parameters for ReorderEnvironment + """ + input: ReorderEnvironmentInput! + ): ReorderEnvironmentPayload + + """ + Set review requests on a pull request. + """ + requestReviews( + """ + Parameters for RequestReviews + """ + input: RequestReviewsInput! + ): RequestReviewsPayload + + """ + Rerequests an existing check suite. + """ + rerequestCheckSuite( + """ + Parameters for RerequestCheckSuite + """ + input: RerequestCheckSuiteInput! + ): RerequestCheckSuitePayload + + """ + Marks a review thread as resolved. + """ + resolveReviewThread( + """ + Parameters for ResolveReviewThread + """ + input: ResolveReviewThreadInput! + ): ResolveReviewThreadPayload + + """ + Retire a published payment tier from your GitHub Sponsors profile so it cannot be used to start new sponsorships. + """ + retireSponsorsTier( + """ + Parameters for RetireSponsorsTier + """ + input: RetireSponsorsTierInput! + ): RetireSponsorsTierPayload + + """ + Create a pull request that reverts the changes from a merged pull request. + """ + revertPullRequest( + """ + Parameters for RevertPullRequest + """ + input: RevertPullRequestInput! + ): RevertPullRequestPayload + + """ + Revoke the migrator role to a user for all organizations under an enterprise account. + """ + revokeEnterpriseOrganizationsMigratorRole( + """ + Parameters for RevokeEnterpriseOrganizationsMigratorRole + """ + input: RevokeEnterpriseOrganizationsMigratorRoleInput! + ): RevokeEnterpriseOrganizationsMigratorRolePayload + + """ + Revoke the migrator role from a user or a team. + """ + revokeMigratorRole( + """ + Parameters for RevokeMigratorRole + """ + input: RevokeMigratorRoleInput! + ): RevokeMigratorRolePayload + + """ + Creates or updates the identity provider for an enterprise. + """ + setEnterpriseIdentityProvider( + """ + Parameters for SetEnterpriseIdentityProvider + """ + input: SetEnterpriseIdentityProviderInput! + ): SetEnterpriseIdentityProviderPayload + + """ + Set an organization level interaction limit for an organization's public repositories. + """ + setOrganizationInteractionLimit( + """ + Parameters for SetOrganizationInteractionLimit + """ + input: SetOrganizationInteractionLimitInput! + ): SetOrganizationInteractionLimitPayload + + """ + Sets an interaction limit setting for a repository. + """ + setRepositoryInteractionLimit( + """ + Parameters for SetRepositoryInteractionLimit + """ + input: SetRepositoryInteractionLimitInput! + ): SetRepositoryInteractionLimitPayload + + """ + Set a user level interaction limit for an user's public repositories. + """ + setUserInteractionLimit( + """ + Parameters for SetUserInteractionLimit + """ + input: SetUserInteractionLimitInput! + ): SetUserInteractionLimitPayload + + """ + Starts a GitHub Enterprise Importer organization migration. + """ + startOrganizationMigration( + """ + Parameters for StartOrganizationMigration + """ + input: StartOrganizationMigrationInput! + ): StartOrganizationMigrationPayload + + """ + Starts a GitHub Enterprise Importer (GEI) repository migration. + """ + startRepositoryMigration( + """ + Parameters for StartRepositoryMigration + """ + input: StartRepositoryMigrationInput! + ): StartRepositoryMigrationPayload + + """ + Submits a pending pull request review. + """ + submitPullRequestReview( + """ + Parameters for SubmitPullRequestReview + """ + input: SubmitPullRequestReviewInput! + ): SubmitPullRequestReviewPayload + + """ + Transfer an organization from one enterprise to another enterprise. + """ + transferEnterpriseOrganization( + """ + Parameters for TransferEnterpriseOrganization + """ + input: TransferEnterpriseOrganizationInput! + ): TransferEnterpriseOrganizationPayload + + """ + Transfer an issue to a different repository + """ + transferIssue( + """ + Parameters for TransferIssue + """ + input: TransferIssueInput! + ): TransferIssuePayload + + """ + Unarchives a ProjectV2Item + """ + unarchiveProjectV2Item( + """ + Parameters for UnarchiveProjectV2Item + """ + input: UnarchiveProjectV2ItemInput! + ): UnarchiveProjectV2ItemPayload + + """ + Unarchives a repository. + """ + unarchiveRepository( + """ + Parameters for UnarchiveRepository + """ + input: UnarchiveRepositoryInput! + ): UnarchiveRepositoryPayload + + """ + Unfollow an organization. + """ + unfollowOrganization( + """ + Parameters for UnfollowOrganization + """ + input: UnfollowOrganizationInput! + ): UnfollowOrganizationPayload + + """ + Unfollow a user. + """ + unfollowUser( + """ + Parameters for UnfollowUser + """ + input: UnfollowUserInput! + ): UnfollowUserPayload + + """ + Unlinks a project from a repository. + """ + unlinkProjectV2FromRepository( + """ + Parameters for UnlinkProjectV2FromRepository + """ + input: UnlinkProjectV2FromRepositoryInput! + ): UnlinkProjectV2FromRepositoryPayload + + """ + Unlinks a project to a team. + """ + unlinkProjectV2FromTeam( + """ + Parameters for UnlinkProjectV2FromTeam + """ + input: UnlinkProjectV2FromTeamInput! + ): UnlinkProjectV2FromTeamPayload + + """ + Deletes a repository link from a project. + """ + unlinkRepositoryFromProject( + """ + Parameters for UnlinkRepositoryFromProject + """ + input: UnlinkRepositoryFromProjectInput! + ): UnlinkRepositoryFromProjectPayload + + """ + Unlock a lockable object + """ + unlockLockable( + """ + Parameters for UnlockLockable + """ + input: UnlockLockableInput! + ): UnlockLockablePayload + + """ + Unmark a discussion comment as the chosen answer for discussions in an answerable category. + """ + unmarkDiscussionCommentAsAnswer( + """ + Parameters for UnmarkDiscussionCommentAsAnswer + """ + input: UnmarkDiscussionCommentAsAnswerInput! + ): UnmarkDiscussionCommentAsAnswerPayload + + """ + Unmark a pull request file as viewed + """ + unmarkFileAsViewed( + """ + Parameters for UnmarkFileAsViewed + """ + input: UnmarkFileAsViewedInput! + ): UnmarkFileAsViewedPayload + + """ + Unmark an issue as a duplicate of another issue. + """ + unmarkIssueAsDuplicate( + """ + Parameters for UnmarkIssueAsDuplicate + """ + input: UnmarkIssueAsDuplicateInput! + ): UnmarkIssueAsDuplicatePayload + + """ + Unmark a project as a template. + """ + unmarkProjectV2AsTemplate( + """ + Parameters for UnmarkProjectV2AsTemplate + """ + input: UnmarkProjectV2AsTemplateInput! + ): UnmarkProjectV2AsTemplatePayload + + """ + Unminimizes a comment on an Issue, Commit, Pull Request, or Gist + """ + unminimizeComment( + """ + Parameters for UnminimizeComment + """ + input: UnminimizeCommentInput! + ): UnminimizeCommentPayload + + """ + Unpin a pinned issue from a repository + """ + unpinIssue( + """ + Parameters for UnpinIssue + """ + input: UnpinIssueInput! + ): UnpinIssuePayload + + """ + Marks a review thread as unresolved. + """ + unresolveReviewThread( + """ + Parameters for UnresolveReviewThread + """ + input: UnresolveReviewThreadInput! + ): UnresolveReviewThreadPayload + + """ + Unsubscribes from notifications + """ + unsubscribeFromNotifications( + """ + Parameters for UnsubscribeFromNotifications + """ + input: UnsubscribeFromNotificationsInput! + ): UnsubscribeFromNotificationsPayload + + """ + Update a branch protection rule + """ + updateBranchProtectionRule( + """ + Parameters for UpdateBranchProtectionRule + """ + input: UpdateBranchProtectionRuleInput! + ): UpdateBranchProtectionRulePayload + + """ + Update a check run + """ + updateCheckRun( + """ + Parameters for UpdateCheckRun + """ + input: UpdateCheckRunInput! + ): UpdateCheckRunPayload + + """ + Modifies the settings of an existing check suite + """ + updateCheckSuitePreferences( + """ + Parameters for UpdateCheckSuitePreferences + """ + input: UpdateCheckSuitePreferencesInput! + ): UpdateCheckSuitePreferencesPayload + + """ + Update a discussion + """ + updateDiscussion( + """ + Parameters for UpdateDiscussion + """ + input: UpdateDiscussionInput! + ): UpdateDiscussionPayload + + """ + Update the contents of a comment on a Discussion + """ + updateDiscussionComment( + """ + Parameters for UpdateDiscussionComment + """ + input: UpdateDiscussionCommentInput! + ): UpdateDiscussionCommentPayload + + """ + Updates the role of an enterprise administrator. + """ + updateEnterpriseAdministratorRole( + """ + Parameters for UpdateEnterpriseAdministratorRole + """ + input: UpdateEnterpriseAdministratorRoleInput! + ): UpdateEnterpriseAdministratorRolePayload + + """ + Sets whether private repository forks are enabled for an enterprise. + """ + updateEnterpriseAllowPrivateRepositoryForkingSetting( + """ + Parameters for UpdateEnterpriseAllowPrivateRepositoryForkingSetting + """ + input: UpdateEnterpriseAllowPrivateRepositoryForkingSettingInput! + ): UpdateEnterpriseAllowPrivateRepositoryForkingSettingPayload + + """ + Sets the base repository permission for organizations in an enterprise. + """ + updateEnterpriseDefaultRepositoryPermissionSetting( + """ + Parameters for UpdateEnterpriseDefaultRepositoryPermissionSetting + """ + input: UpdateEnterpriseDefaultRepositoryPermissionSettingInput! + ): UpdateEnterpriseDefaultRepositoryPermissionSettingPayload + + """ + Sets whether organization members with admin permissions on a repository can change repository visibility. + """ + updateEnterpriseMembersCanChangeRepositoryVisibilitySetting( + """ + Parameters for UpdateEnterpriseMembersCanChangeRepositoryVisibilitySetting + """ + input: UpdateEnterpriseMembersCanChangeRepositoryVisibilitySettingInput! + ): UpdateEnterpriseMembersCanChangeRepositoryVisibilitySettingPayload + + """ + Sets the members can create repositories setting for an enterprise. + """ + updateEnterpriseMembersCanCreateRepositoriesSetting( + """ + Parameters for UpdateEnterpriseMembersCanCreateRepositoriesSetting + """ + input: UpdateEnterpriseMembersCanCreateRepositoriesSettingInput! + ): UpdateEnterpriseMembersCanCreateRepositoriesSettingPayload + + """ + Sets the members can delete issues setting for an enterprise. + """ + updateEnterpriseMembersCanDeleteIssuesSetting( + """ + Parameters for UpdateEnterpriseMembersCanDeleteIssuesSetting + """ + input: UpdateEnterpriseMembersCanDeleteIssuesSettingInput! + ): UpdateEnterpriseMembersCanDeleteIssuesSettingPayload + + """ + Sets the members can delete repositories setting for an enterprise. + """ + updateEnterpriseMembersCanDeleteRepositoriesSetting( + """ + Parameters for UpdateEnterpriseMembersCanDeleteRepositoriesSetting + """ + input: UpdateEnterpriseMembersCanDeleteRepositoriesSettingInput! + ): UpdateEnterpriseMembersCanDeleteRepositoriesSettingPayload + + """ + Sets whether members can invite collaborators are enabled for an enterprise. + """ + updateEnterpriseMembersCanInviteCollaboratorsSetting( + """ + Parameters for UpdateEnterpriseMembersCanInviteCollaboratorsSetting + """ + input: UpdateEnterpriseMembersCanInviteCollaboratorsSettingInput! + ): UpdateEnterpriseMembersCanInviteCollaboratorsSettingPayload + + """ + Sets whether or not an organization owner can make purchases. + """ + updateEnterpriseMembersCanMakePurchasesSetting( + """ + Parameters for UpdateEnterpriseMembersCanMakePurchasesSetting + """ + input: UpdateEnterpriseMembersCanMakePurchasesSettingInput! + ): UpdateEnterpriseMembersCanMakePurchasesSettingPayload + + """ + Sets the members can update protected branches setting for an enterprise. + """ + updateEnterpriseMembersCanUpdateProtectedBranchesSetting( + """ + Parameters for UpdateEnterpriseMembersCanUpdateProtectedBranchesSetting + """ + input: UpdateEnterpriseMembersCanUpdateProtectedBranchesSettingInput! + ): UpdateEnterpriseMembersCanUpdateProtectedBranchesSettingPayload + + """ + Sets the members can view dependency insights for an enterprise. + """ + updateEnterpriseMembersCanViewDependencyInsightsSetting( + """ + Parameters for UpdateEnterpriseMembersCanViewDependencyInsightsSetting + """ + input: UpdateEnterpriseMembersCanViewDependencyInsightsSettingInput! + ): UpdateEnterpriseMembersCanViewDependencyInsightsSettingPayload + + """ + Sets whether organization projects are enabled for an enterprise. + """ + updateEnterpriseOrganizationProjectsSetting( + """ + Parameters for UpdateEnterpriseOrganizationProjectsSetting + """ + input: UpdateEnterpriseOrganizationProjectsSettingInput! + ): UpdateEnterpriseOrganizationProjectsSettingPayload + + """ + Updates the role of an enterprise owner with an organization. + """ + updateEnterpriseOwnerOrganizationRole( + """ + Parameters for UpdateEnterpriseOwnerOrganizationRole + """ + input: UpdateEnterpriseOwnerOrganizationRoleInput! + ): UpdateEnterpriseOwnerOrganizationRolePayload + + """ + Updates an enterprise's profile. + """ + updateEnterpriseProfile( + """ + Parameters for UpdateEnterpriseProfile + """ + input: UpdateEnterpriseProfileInput! + ): UpdateEnterpriseProfilePayload + + """ + Sets whether repository projects are enabled for a enterprise. + """ + updateEnterpriseRepositoryProjectsSetting( + """ + Parameters for UpdateEnterpriseRepositoryProjectsSetting + """ + input: UpdateEnterpriseRepositoryProjectsSettingInput! + ): UpdateEnterpriseRepositoryProjectsSettingPayload + + """ + Sets whether team discussions are enabled for an enterprise. + """ + updateEnterpriseTeamDiscussionsSetting( + """ + Parameters for UpdateEnterpriseTeamDiscussionsSetting + """ + input: UpdateEnterpriseTeamDiscussionsSettingInput! + ): UpdateEnterpriseTeamDiscussionsSettingPayload + + """ + Sets whether two factor authentication is required for all users in an enterprise. + """ + updateEnterpriseTwoFactorAuthenticationRequiredSetting( + """ + Parameters for UpdateEnterpriseTwoFactorAuthenticationRequiredSetting + """ + input: UpdateEnterpriseTwoFactorAuthenticationRequiredSettingInput! + ): UpdateEnterpriseTwoFactorAuthenticationRequiredSettingPayload + + """ + Updates an environment. + """ + updateEnvironment( + """ + Parameters for UpdateEnvironment + """ + input: UpdateEnvironmentInput! + ): UpdateEnvironmentPayload + + """ + Sets whether an IP allow list is enabled on an owner. + """ + updateIpAllowListEnabledSetting( + """ + Parameters for UpdateIpAllowListEnabledSetting + """ + input: UpdateIpAllowListEnabledSettingInput! + ): UpdateIpAllowListEnabledSettingPayload + + """ + Updates an IP allow list entry. + """ + updateIpAllowListEntry( + """ + Parameters for UpdateIpAllowListEntry + """ + input: UpdateIpAllowListEntryInput! + ): UpdateIpAllowListEntryPayload + + """ + Sets whether IP allow list configuration for installed GitHub Apps is enabled on an owner. + """ + updateIpAllowListForInstalledAppsEnabledSetting( + """ + Parameters for UpdateIpAllowListForInstalledAppsEnabledSetting + """ + input: UpdateIpAllowListForInstalledAppsEnabledSettingInput! + ): UpdateIpAllowListForInstalledAppsEnabledSettingPayload + + """ + Updates an Issue. + """ + updateIssue( + """ + Parameters for UpdateIssue + """ + input: UpdateIssueInput! + ): UpdateIssuePayload + + """ + Updates an IssueComment object. + """ + updateIssueComment( + """ + Parameters for UpdateIssueComment + """ + input: UpdateIssueCommentInput! + ): UpdateIssueCommentPayload + + """ + Updates an existing label. + """ + updateLabel( + """ + Parameters for UpdateLabel + """ + input: UpdateLabelInput! + ): UpdateLabelPayload + + """ + Update the setting to restrict notifications to only verified or approved domains available to an owner. + """ + updateNotificationRestrictionSetting( + """ + Parameters for UpdateNotificationRestrictionSetting + """ + input: UpdateNotificationRestrictionSettingInput! + ): UpdateNotificationRestrictionSettingPayload + + """ + Sets whether private repository forks are enabled for an organization. + """ + updateOrganizationAllowPrivateRepositoryForkingSetting( + """ + Parameters for UpdateOrganizationAllowPrivateRepositoryForkingSetting + """ + input: UpdateOrganizationAllowPrivateRepositoryForkingSettingInput! + ): UpdateOrganizationAllowPrivateRepositoryForkingSettingPayload + + """ + Sets whether contributors are required to sign off on web-based commits for repositories in an organization. + """ + updateOrganizationWebCommitSignoffSetting( + """ + Parameters for UpdateOrganizationWebCommitSignoffSetting + """ + input: UpdateOrganizationWebCommitSignoffSettingInput! + ): UpdateOrganizationWebCommitSignoffSettingPayload + + """ + Toggle the setting for your GitHub Sponsors profile that allows other GitHub + accounts to sponsor you on GitHub while paying for the sponsorship on Patreon. + Only applicable when you have a GitHub Sponsors profile and have connected + your GitHub account with Patreon. + """ + updatePatreonSponsorability( + """ + Parameters for UpdatePatreonSponsorability + """ + input: UpdatePatreonSponsorabilityInput! + ): UpdatePatreonSponsorabilityPayload + + """ + Updates an existing project. + """ + updateProject( + """ + Parameters for UpdateProject + """ + input: UpdateProjectInput! + ): UpdateProjectPayload + + """ + Updates an existing project card. + """ + updateProjectCard( + """ + Parameters for UpdateProjectCard + """ + input: UpdateProjectCardInput! + ): UpdateProjectCardPayload + + """ + Updates an existing project column. + """ + updateProjectColumn( + """ + Parameters for UpdateProjectColumn + """ + input: UpdateProjectColumnInput! + ): UpdateProjectColumnPayload + + """ + Updates an existing project. + """ + updateProjectV2( + """ + Parameters for UpdateProjectV2 + """ + input: UpdateProjectV2Input! + ): UpdateProjectV2Payload + + """ + Update the collaborators on a team or a project + """ + updateProjectV2Collaborators( + """ + Parameters for UpdateProjectV2Collaborators + """ + input: UpdateProjectV2CollaboratorsInput! + ): UpdateProjectV2CollaboratorsPayload + + """ + Updates a draft issue within a Project. + """ + updateProjectV2DraftIssue( + """ + Parameters for UpdateProjectV2DraftIssue + """ + input: UpdateProjectV2DraftIssueInput! + ): UpdateProjectV2DraftIssuePayload + + """ + This mutation updates the value of a field for an item in a Project. Currently + only single-select, text, number, date, and iteration fields are supported. + """ + updateProjectV2ItemFieldValue( + """ + Parameters for UpdateProjectV2ItemFieldValue + """ + input: UpdateProjectV2ItemFieldValueInput! + ): UpdateProjectV2ItemFieldValuePayload + + """ + This mutation updates the position of the item in the project, where the position represents the priority of an item. + """ + updateProjectV2ItemPosition( + """ + Parameters for UpdateProjectV2ItemPosition + """ + input: UpdateProjectV2ItemPositionInput! + ): UpdateProjectV2ItemPositionPayload + + """ + Updates a status update within a Project. + """ + updateProjectV2StatusUpdate( + """ + Parameters for UpdateProjectV2StatusUpdate + """ + input: UpdateProjectV2StatusUpdateInput! + ): UpdateProjectV2StatusUpdatePayload + + """ + Update a pull request + """ + updatePullRequest( + """ + Parameters for UpdatePullRequest + """ + input: UpdatePullRequestInput! + ): UpdatePullRequestPayload + + """ + Merge or Rebase HEAD from upstream branch into pull request branch + """ + updatePullRequestBranch( + """ + Parameters for UpdatePullRequestBranch + """ + input: UpdatePullRequestBranchInput! + ): UpdatePullRequestBranchPayload + + """ + Updates the body of a pull request review. + """ + updatePullRequestReview( + """ + Parameters for UpdatePullRequestReview + """ + input: UpdatePullRequestReviewInput! + ): UpdatePullRequestReviewPayload + + """ + Updates a pull request review comment. + """ + updatePullRequestReviewComment( + """ + Parameters for UpdatePullRequestReviewComment + """ + input: UpdatePullRequestReviewCommentInput! + ): UpdatePullRequestReviewCommentPayload + + """ + Update a Git Ref. + """ + updateRef( + """ + Parameters for UpdateRef + """ + input: UpdateRefInput! + ): UpdateRefPayload + + """ + Creates, updates and/or deletes multiple refs in a repository. + + This mutation takes a list of `RefUpdate`s and performs these updates + on the repository. All updates are performed atomically, meaning that + if one of them is rejected, no other ref will be modified. + + `RefUpdate.beforeOid` specifies that the given reference needs to point + to the given value before performing any updates. A value of + `0000000000000000000000000000000000000000` can be used to verify that + the references should not exist. + + `RefUpdate.afterOid` specifies the value that the given reference + will point to after performing all updates. A value of + `0000000000000000000000000000000000000000` can be used to delete a + reference. + + If `RefUpdate.force` is set to `true`, a non-fast-forward updates + for the given reference will be allowed. + """ + updateRefs( + """ + Parameters for UpdateRefs + """ + input: UpdateRefsInput! + ): UpdateRefsPayload + + """ + Update information about a repository. + """ + updateRepository( + """ + Parameters for UpdateRepository + """ + input: UpdateRepositoryInput! + ): UpdateRepositoryPayload + + """ + Update a repository ruleset + """ + updateRepositoryRuleset( + """ + Parameters for UpdateRepositoryRuleset + """ + input: UpdateRepositoryRulesetInput! + ): UpdateRepositoryRulesetPayload + + """ + Sets whether contributors are required to sign off on web-based commits for a repository. + """ + updateRepositoryWebCommitSignoffSetting( + """ + Parameters for UpdateRepositoryWebCommitSignoffSetting + """ + input: UpdateRepositoryWebCommitSignoffSettingInput! + ): UpdateRepositoryWebCommitSignoffSettingPayload + + """ + Change visibility of your sponsorship and opt in or out of email updates from the maintainer. + """ + updateSponsorshipPreferences( + """ + Parameters for UpdateSponsorshipPreferences + """ + input: UpdateSponsorshipPreferencesInput! + ): UpdateSponsorshipPreferencesPayload + + """ + Updates the state for subscribable subjects. + """ + updateSubscription( + """ + Parameters for UpdateSubscription + """ + input: UpdateSubscriptionInput! + ): UpdateSubscriptionPayload + + """ + Updates a team discussion. + """ + updateTeamDiscussion( + """ + Parameters for UpdateTeamDiscussion + """ + input: UpdateTeamDiscussionInput! + ): UpdateTeamDiscussionPayload + + """ + Updates a discussion comment. + """ + updateTeamDiscussionComment( + """ + Parameters for UpdateTeamDiscussionComment + """ + input: UpdateTeamDiscussionCommentInput! + ): UpdateTeamDiscussionCommentPayload + + """ + Updates team review assignment. + """ + updateTeamReviewAssignment( + """ + Parameters for UpdateTeamReviewAssignment + """ + input: UpdateTeamReviewAssignmentInput! + ): UpdateTeamReviewAssignmentPayload + + """ + Update team repository. + """ + updateTeamsRepository( + """ + Parameters for UpdateTeamsRepository + """ + input: UpdateTeamsRepositoryInput! + ): UpdateTeamsRepositoryPayload + + """ + Replaces the repository's topics with the given topics. + """ + updateTopics( + """ + Parameters for UpdateTopics + """ + input: UpdateTopicsInput! + ): UpdateTopicsPayload + + """ + Updates an existing user list. + """ + updateUserList( + """ + Parameters for UpdateUserList + """ + input: UpdateUserListInput! + ): UpdateUserListPayload + + """ + Updates which of the viewer's lists an item belongs to + """ + updateUserListsForItem( + """ + Parameters for UpdateUserListsForItem + """ + input: UpdateUserListsForItemInput! + ): UpdateUserListsForItemPayload + + """ + Verify that a verifiable domain has the expected DNS record. + """ + verifyVerifiableDomain( + """ + Parameters for 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 +} + +""" +An OIDC identity provider configured to provision identities for an enterprise. +Visible to enterprise owners or enterprise owners' personal access tokens +(classic) with read:enterprise or admin:enterprise scope. +""" +type OIDCProvider implements Node { + """ + 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 + + """ + Filter to external identities with the users login + """ + login: String + + """ + Filter to external identities with valid org membership only + """ + membersOnly: Boolean + + """ + Filter to external identities with the users userName/NameID attribute + """ + userName: String + ): ExternalIdentityConnection! + + """ + The Node ID of the OIDCProvider object + """ + id: ID! + + """ + The OIDC identity provider type + """ + providerType: OIDCProviderType! + + """ + The id of the tenant this provider is attached to + """ + tenantId: String! +} + +""" +The OIDC identity provider type +""" +enum OIDCProviderType { + """ + Azure Active Directory + """ + AAD +} + +""" +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! + + """ + The Node ID of the OauthApplicationCreateAuditEntry object + """ + 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! + + """ + The Node ID of the OrgAddBillingManagerAuditEntry object + """ + 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! + + """ + The Node ID of the OrgAddMemberAuditEntry object + """ + 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! + + """ + The Node ID of the OrgBlockUserAuditEntry object + """ + 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! + + """ + The Node ID of the OrgConfigDisableCollaboratorsOnlyAuditEntry object + """ + 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! + + """ + The Node ID of the OrgConfigEnableCollaboratorsOnlyAuditEntry object + """ + 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! + + """ + The Node ID of the OrgCreateAuditEntry object + """ + 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! + + """ + The Node ID of the OrgDisableOauthAppRestrictionsAuditEntry object + """ + 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 + + """ + The Node ID of the OrgDisableSamlAuditEntry object + """ + 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! + + """ + The Node ID of the OrgDisableTwoFactorRequirementAuditEntry object + """ + 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! + + """ + The Node ID of the OrgEnableOauthAppRestrictionsAuditEntry object + """ + 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 + + """ + The Node ID of the OrgEnableSamlAuditEntry object + """ + 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! + + """ + The Node ID of the OrgEnableTwoFactorRequirementAuditEntry object + """ + 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 +} + +""" +Ordering options for an organization's enterprise owner connections. +""" +input OrgEnterpriseOwnerOrder { + """ + The ordering direction. + """ + direction: OrderDirection! + + """ + The field to order enterprise owners by. + """ + field: OrgEnterpriseOwnerOrderField! +} + +""" +Properties by which enterprise owners can be ordered. +""" +enum OrgEnterpriseOwnerOrderField { + """ + Order enterprise owners by login. + """ + LOGIN +} + +""" +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 + + """ + The Node ID of the OrgInviteMemberAuditEntry object + """ + 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 + + """ + The Node ID of the OrgInviteToBusinessAuditEntry object + """ + 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! + + """ + The Node ID of the OrgOauthAppAccessApprovedAuditEntry object + """ + 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_blocked event. +""" +type OrgOauthAppAccessBlockedAuditEntry 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! + + """ + The Node ID of the OrgOauthAppAccessBlockedAuditEntry object + """ + 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! + + """ + The Node ID of the OrgOauthAppAccessDeniedAuditEntry object + """ + 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! + + """ + The Node ID of the OrgOauthAppAccessRequestedAuditEntry object + """ + 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_unblocked event. +""" +type OrgOauthAppAccessUnblockedAuditEntry 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! + + """ + The Node ID of the OrgOauthAppAccessUnblockedAuditEntry object + """ + 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! + + """ + The Node ID of the OrgRemoveBillingManagerAuditEntry object + """ + 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! + + """ + The Node ID of the OrgRemoveMemberAuditEntry object + """ + 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 owners 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 owners 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 + + """ + A suspended member. + """ + SUSPENDED + + """ + 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! + + """ + The Node ID of the OrgRemoveOutsideCollaboratorAuditEntry object + """ + 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! + + """ + The Node ID of the OrgRestoreMemberAuditEntry object + """ + 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! + + """ + The Node ID of the OrgUnblockUserAuditEntry object + """ + 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! + + """ + The Node ID of the OrgUpdateDefaultRepositoryPermissionAuditEntry object + """ + 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 base repository permission level for the organization. + """ + permission: OrgUpdateDefaultRepositoryPermissionAuditEntryPermission + + """ + The former base 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! + + """ + The Node ID of the OrgUpdateMemberAuditEntry object + """ + 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! + + """ + The Node ID of the OrgUpdateMemberRepositoryCreationPermissionAuditEntry object + """ + 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! + + """ + The Node ID of the OrgUpdateMemberRepositoryInvitationPermissionAuditEntry object + """ + 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 & AnnouncementBanner & MemberStatusable & Node & PackageOwner & ProfileOwner & ProjectOwner & ProjectV2Owner & ProjectV2Recent & RepositoryDiscussionAuthor & RepositoryDiscussionCommentAuthor & RepositoryOwner & Sponsorable & UniformResourceLocatable { + """ + The text of the announcement + """ + announcement: String + + """ + The date the announcement was created + """ + announcementCreatedAt: DateTime + + """ + The expiration date of the announcement, if any + """ + announcementExpiresAt: DateTime + + """ + Whether the announcement can be dismissed by the user + """ + announcementUserDismissible: Boolean + + """ + 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! + + """ + Identifies the date and time when the organization was archived. + """ + archivedAt: DateTime + + """ + 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 approved. + """ + isApproved: Boolean = null + + """ + Filter by if the domain is verified. + """ + isVerified: Boolean = null + + """ + 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 + + """ + A list of owners of the organization's enterprise account. + """ + enterpriseOwners( + """ + 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 owners returned from the connection. + """ + orderBy: OrgEnterpriseOwnerOrder = { field: LOGIN, direction: ASC } + + """ + The organization role to filter by. + """ + organizationRole: RoleInOrganization + + """ + The search string to look for. + """ + query: String + ): OrganizationEnterpriseOwnerConnection! + + """ + The estimated next GitHub Sponsors payout for this user/organization in cents (USD). + """ + estimatedNextSponsorsPayoutInCents: Int! + + """ + True if this user/organization has a GitHub Sponsors listing. + """ + hasSponsorsListing: Boolean! + + """ + The Node ID of the Organization object + """ + 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! + + """ + The setting value for whether the organization has IP allow list configuration for installed GitHub Apps enabled. + """ + ipAllowListForInstalledAppsEnabledSetting: IpAllowListForInstalledAppsEnabledSettingValue! + + """ + Whether 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. + """ + 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! + + """ + Calculate how much each sponsor has ever paid total to this maintainer via + GitHub Sponsors. Does not include sponsorships paid via Patreon. + """ + lifetimeReceivedSponsorshipValues( + """ + 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 results returned from the connection. + """ + orderBy: SponsorAndLifetimeValueOrder = { + field: SPONSOR_LOGIN + direction: ASC + } + ): SponsorAndLifetimeValueConnection! + + """ + The organization's public profile location. + """ + location: String + + """ + The organization's login name. + """ + login: String! + + """ + A list of all mannequins for this organization. + """ + mannequins( + """ + 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 mannequins by login. + """ + login: String + + """ + Ordering options for mannequins returned from the connection. + """ + orderBy: MannequinOrder = { field: CREATED_AT, direction: ASC } + ): MannequinConnection! + + """ + 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! + + """ + Members can fork private repositories in this organization + """ + membersCanForkPrivateRepositories: Boolean! + + """ + 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 estimated monthly GitHub Sponsors income for this user/organization in cents (USD). + """ + monthlyEstimatedSponsorsIncomeInCents: Int! + + """ + 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 or approved 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 + + """ + Find a project by number. + """ + projectV2( + """ + The project number. + """ + number: Int! + ): ProjectV2 + + """ + 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 projects under the owner. + """ + projectsV2( + """ + 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 projects based on user role. + """ + minPermissionLevel: ProjectV2PermissionLevel = READ + + """ + How to order the returned projects. + """ + orderBy: ProjectV2Order = { field: NUMBER, direction: DESC } + + """ + A project to search for under the the owner. + """ + query: String + ): ProjectV2Connection! + + """ + Recent projects that this user has modified in the context of the owner. + """ + recentProjects( + """ + 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 + ): ProjectV2Connection! + + """ + 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 have issues enabled + """ + hasIssuesEnabled: Boolean + + """ + If non-null, filters repositories according to whether they are archived and not maintained + """ + isArchived: Boolean + + """ + 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. Internal + repositories are considered private; consider using the visibility argument + if only internal repositories are needed. Cannot be combined with the + visibility argument. + """ + privacy: RepositoryPrivacy + + """ + If non-null, filters repositories according to visibility. Cannot be combined with the privacy argument. + """ + visibility: RepositoryVisibility + ): RepositoryConnection! + + """ + Find Repository. + """ + repository( + """ + Follow repository renames. If disabled, a repository referenced by its old name will return an error. + """ + followRenames: Boolean = true + + """ + Name of Repository to find. + """ + name: String! + ): Repository + + """ + Discussion comments this user has authored. + """ + repositoryDiscussionComments( + """ + 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 discussion comments to only those that were marked as the answer + """ + onlyAnswers: Boolean = false + + """ + Filter discussion comments to only those in a specific repository. + """ + repositoryId: ID + ): DiscussionCommentConnection! + + """ + Discussions this user has started. + """ + repositoryDiscussions( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Filter discussions to only those that have been answered or not. Defaults to + including both answered and unanswered discussions. + """ + answered: Boolean = null + + """ + 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 discussions returned from the connection. + """ + orderBy: DiscussionOrder = { field: CREATED_AT, direction: DESC } + + """ + Filter discussions to only those in a specific repository. + """ + repositoryId: ID + + """ + A list of states to filter the discussions by. + """ + states: [DiscussionState!] = [] + ): DiscussionConnection! + + """ + A list of all repository migrations for this organization. + """ + repositoryMigrations( + """ + 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 repository migrations returned. + """ + orderBy: RepositoryMigrationOrder = { field: CREATED_AT, direction: ASC } + + """ + Filter repository migrations by repository name. + """ + repositoryName: String + + """ + Filter repository migrations by state. + """ + state: MigrationState + ): RepositoryMigrationConnection! + + """ + 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! + + """ + Returns a single ruleset from the current organization by ID. + """ + ruleset( + """ + The ID of the ruleset to be returned. + """ + databaseId: Int! + ): RepositoryRuleset + + """ + A list of rulesets for this organization. + """ + rulesets( + """ + 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 + + """ + Return rulesets configured at higher levels that apply to this organization + """ + includeParents: Boolean = true + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): RepositoryRulesetConnection + + """ + The Organization's SAML identity provider. Visible to (1) organization owners, + (2) organization owners' personal access tokens (classic) with read:org or + admin:org scope, (3) GitHub App with an installation token with read or write + access to members. + """ + samlIdentityProvider: OrganizationIdentityProvider + + """ + List of users and organizations this entity is sponsoring. + """ + sponsoring( + """ + 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 users and organizations returned from the connection. + """ + orderBy: SponsorOrder = { field: RELEVANCE, direction: DESC } + ): SponsorConnection! + + """ + List of sponsors for this user or organization. + """ + sponsors( + """ + 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 returned from the connection. + """ + orderBy: SponsorOrder = { field: RELEVANCE, direction: DESC } + + """ + If given, will filter for sponsors at the given tier. Will only return + sponsors whose tier the viewer is permitted to see. + """ + tierId: ID + ): SponsorConnection! + + """ + Events involving this sponsorable, such as new sponsorships. + """ + sponsorsActivities( + """ + Filter activities to only the specified actions. + """ + actions: [SponsorsActivityAction!] = [] + + """ + 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 include those events where this sponsorable acted as the sponsor. + Defaults to only including events where this sponsorable was the recipient + of a sponsorship. + """ + includeAsSponsor: Boolean = false + + """ + Whether or not to include private activities in the result set. Defaults to including public and private activities. + """ + includePrivate: Boolean = true + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for activity returned from the connection. + """ + orderBy: SponsorsActivityOrder = { field: TIMESTAMP, direction: DESC } + + """ + Filter activities returned to only those that occurred in the most recent + specified time period. Set to ALL to avoid filtering by when the activity + occurred. Will be ignored if `since` or `until` is given. + """ + period: SponsorsActivityPeriod = MONTH + + """ + Filter activities to those that occurred on or after this time. + """ + since: DateTime + + """ + Filter activities to those that occurred before this time. + """ + until: DateTime + ): SponsorsActivityConnection! + + """ + The GitHub Sponsors listing for this user or organization. + """ + sponsorsListing: SponsorsListing + + """ + The sponsorship from the viewer to this user/organization; that is, the sponsorship where you're the sponsor. + """ + sponsorshipForViewerAsSponsor( + """ + Whether to return the sponsorship only if it's still active. Pass false to + get the viewer's sponsorship back even if it has been cancelled. + """ + activeOnly: Boolean = true + ): Sponsorship + + """ + The sponsorship from this user/organization to the viewer; that is, the sponsorship you're receiving. + """ + sponsorshipForViewerAsSponsorable( + """ + Whether to return the sponsorship only if it's still active. Pass false to + get the sponsorship back even if it has been cancelled. + """ + activeOnly: Boolean = true + ): Sponsorship + + """ + List of sponsorship updates sent from this sponsorable to sponsors. + """ + sponsorshipNewsletters( + """ + 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 sponsorship updates returned from the connection. + """ + orderBy: SponsorshipNewsletterOrder = { field: CREATED_AT, direction: DESC } + ): SponsorshipNewsletterConnection! + + """ + The sponsorships where this user or organization is the maintainer receiving the funds. + """ + sponsorshipsAsMaintainer( + """ + Whether to include only sponsorships that are active right now, versus all + sponsorships this maintainer has ever received. + """ + activeOnly: Boolean = true + + """ + 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 sponsorships where this user or organization is the funder. + """ + sponsorshipsAsSponsor( + """ + Whether to include only sponsorships that are active right now, versus all sponsorships this sponsor has ever made. + """ + activeOnly: Boolean = true + + """ + 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 sponsorships returned to those for the specified maintainers. That + is, the recipient of the sponsorship is a user or organization with one of + the given logins. + """ + maintainerLogins: [String!] + + """ + 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 + + """ + If non-null, filters teams according to notification setting + """ + notificationSetting: TeamNotificationSetting + + """ + 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 amount in United States cents (e.g., 500 = $5.00 USD) that this entity has + spent on GitHub to fund sponsorships. Only returns a value when viewed by the + user themselves or by a user who can manage sponsorships for the requested organization. + """ + totalSponsorshipAmountAsSponsorInCents( + """ + Filter payments to those that occurred on or after this time. + """ + since: DateTime + + """ + Filter payments to those made to the users or organizations with the specified usernames. + """ + sponsorableLogins: [String!] = [] + + """ + Filter payments to those that occurred before this time. + """ + until: DateTime + ): Int + + """ + 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! + + """ + Whether or not this Organization is followed by the viewer. + """ + viewerIsFollowing: Boolean! + + """ + True if the viewer is sponsoring this user/organization. + """ + viewerIsSponsoring: Boolean! + + """ + Whether contributors are required to sign off on web-based commits for repositories in this organization. + """ + webCommitSignoffRequired: 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 + | OrgOauthAppAccessBlockedAuditEntry + | OrgOauthAppAccessDeniedAuditEntry + | OrgOauthAppAccessRequestedAuditEntry + | OrgOauthAppAccessUnblockedAuditEntry + | 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 +} + +""" +A list of organizations managed by an enterprise. +""" +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 +} + +""" +The connection type for User. +""" +type OrganizationEnterpriseOwnerConnection { + """ + A list of edges. + """ + edges: [OrganizationEnterpriseOwnerEdge] + + """ + 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 enterprise owner in the context of an organization that is part of the enterprise. +""" +type OrganizationEnterpriseOwnerEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: User + + """ + The role of the owner with respect to the organization. + """ + organizationRole: RoleInOrganization! +} + +""" +An Identity Provider configured to provision SAML and SCIM identities for +Organizations. Visible to (1) organization owners, (2) organization owners' +personal access tokens (classic) with read:org or admin:org scope, (3) GitHub +App with an installation token with read or write access to members. +""" +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 + + """ + Filter to external identities with the users login + """ + login: String + + """ + Filter to external identities with valid org membership only + """ + membersOnly: Boolean + + """ + Filter to external identities with the users userName/NameID attribute + """ + userName: String + ): ExternalIdentityConnection! + + """ + The Node ID of the OrganizationIdentityProvider object + """ + 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 + + """ + The Node ID of the OrganizationInvitation object + """ + id: ID! + + """ + The source of the invitation. + """ + invitationSource: OrganizationInvitationSource! + + """ + 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! + @deprecated( + reason: "`inviter` will be removed. `inviter` will be replaced by `inviterActor`. Removal on 2024-07-01 UTC." + ) + + """ + The user who created the invitation. + """ + inviterActor: 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 sources. +""" +enum OrganizationInvitationSource { + """ + The invitation was created from the web interface or from API + """ + MEMBER + + """ + The invitation was created from SCIM + """ + SCIM + + """ + The invitation was sent before this feature was added + """ + UNKNOWN +} + +""" +The possible organization invitation types. +""" +enum OrganizationInvitationType { + """ + The invitation was to an email address. + """ + EMAIL + + """ + The invitation was to an existing user. + """ + USER +} + +""" +A list of users who belong to the organization. +""" +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 internal repositories. + """ + INTERNAL + + """ + Members will be able to create only private repositories. + """ + PRIVATE +} + +""" +A GitHub Enterprise Importer (GEI) organization migration. +""" +type OrganizationMigration implements Node { + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + Identifies the primary key from the database. + """ + databaseId: String + + """ + The reason the organization migration failed. + """ + failureReason: String + + """ + The Node ID of the OrganizationMigration object + """ + id: ID! + + """ + The remaining amount of repos to be migrated. + """ + remainingRepositoriesCount: Int + + """ + The name of the source organization to be migrated. + """ + sourceOrgName: String! + + """ + The URL of the source organization to migrate. + """ + sourceOrgUrl: URI! + + """ + The migration state. + """ + state: OrganizationMigrationState! + + """ + The name of the target organization. + """ + targetOrgName: String! + + """ + The total amount of repositories to be migrated. + """ + totalRepositoriesCount: Int +} + +""" +The Octoshift Organization migration state. +""" +enum OrganizationMigrationState { + """ + The Octoshift migration has failed. + """ + FAILED + + """ + The Octoshift migration has invalid credentials. + """ + FAILED_VALIDATION + + """ + The Octoshift migration is in progress. + """ + IN_PROGRESS + + """ + The Octoshift migration has not started. + """ + NOT_STARTED + + """ + The Octoshift migration needs to have its credentials validated. + """ + PENDING_VALIDATION + + """ + The Octoshift migration is performing post repository migrations. + """ + POST_REPO_MIGRATION + + """ + The Octoshift migration is performing pre repository migrations. + """ + PRE_REPO_MIGRATION + + """ + The Octoshift migration has been queued. + """ + QUEUED + + """ + The Octoshift org migration is performing repository migrations. + """ + REPO_MIGRATION + + """ + The Octoshift migration has succeeded. + """ + SUCCEEDED +} + +""" +Used for argument of CreateProjectV2 mutation. +""" +union OrganizationOrUser = Organization | User + +""" +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 + + """ + Ordering options for the User's organizations. + """ + orderBy: OrganizationOrder = null + ): OrganizationConnection! + + """ + The total number of organizations this user is in + """ + totalOrganizationCount: Int! +} + +""" +Information for an uploaded package. +""" +type Package implements Node { + """ + The Node ID of the Package object + """ + 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 { + """ + The Node ID of the PackageFile object + """ + 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 { + """ + The Node ID of the PackageOwner object + """ + 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 { + """ + The Node ID of the PackageTag object + """ + 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 + @deprecated( + reason: "DOCKER will be removed from this enum as this type will be migrated to only be used by the Packages REST API. Removal on 2021-06-21 UTC." + ) + + """ + A maven package. + """ + MAVEN + @deprecated( + reason: "MAVEN will be removed from this enum as this type will be migrated to only be used by the Packages REST API. Removal on 2023-02-10 UTC." + ) + + """ + An npm package. + """ + NPM + @deprecated( + reason: "NPM will be removed from this enum as this type will be migrated to only be used by the Packages REST API. Removal on 2022-11-21 UTC." + ) + + """ + A nuget package. + """ + NUGET + @deprecated( + reason: "NUGET will be removed from this enum as this type will be migrated to only be used by the Packages REST API. Removal on 2022-11-21 UTC." + ) + + """ + A python package. + """ + PYPI + + """ + A rubygems package. + """ + RUBYGEMS + @deprecated( + reason: "RUBYGEMS will be removed from this enum as this type will be migrated to only be used by the Packages REST API. Removal on 2022-12-28 UTC." + ) +} + +""" +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! + + """ + The Node ID of the PackageVersion object + """ + 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 +} + +""" +The possible types of patch statuses. +""" +enum PatchStatus { + """ + The file was added. Git status 'A'. + """ + ADDED + + """ + The file's type was changed. Git status 'T'. + """ + CHANGED + + """ + The file was copied. Git status 'C'. + """ + COPIED + + """ + The file was deleted. Git status 'D'. + """ + DELETED + + """ + The file's contents were changed. Git status 'M'. + """ + MODIFIED + + """ + The file was renamed. Git status 'R'. + """ + RENAMED +} + +""" +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 name of the role this source has granted to the user. + """ + roleName: String + + """ + The source of this permission. + """ + source: PermissionGranter! +} + +""" +Autogenerated input type of PinEnvironment +""" +input PinEnvironmentInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the environment to modify + """ + environmentId: ID! @possibleTypes(concreteTypes: ["Environment"]) + + """ + The desired state of the environment. If true, environment will be pinned. If false, it will be unpinned. + """ + pinned: Boolean! +} + +""" +Autogenerated return type of PinEnvironment. +""" +type PinEnvironmentPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The environment that was pinned + """ + environment: Environment + + """ + The pinned environment if we pinned + """ + pinnedEnvironment: PinnedEnvironment +} + +""" +Autogenerated input type of PinIssue +""" +input PinIssueInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the issue to be pinned + """ + issueId: ID! @possibleTypes(concreteTypes: ["Issue"]) +} + +""" +Autogenerated return type of PinIssue. +""" +type PinIssuePayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The issue that was pinned + """ + issue: Issue +} + +""" +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 +} + +""" +A Pinned Discussion is a discussion pinned to a repository's index page. +""" +type PinnedDiscussion implements Node & RepositoryNode { + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + Identifies the primary key from the database. + """ + databaseId: Int + + """ + The discussion that was pinned. + """ + discussion: Discussion! + + """ + Color stops of the chosen gradient + """ + gradientStopColors: [String!]! + + """ + The Node ID of the PinnedDiscussion object + """ + id: ID! + + """ + Background texture pattern + """ + pattern: PinnedDiscussionPattern! + + """ + The actor that pinned this discussion. + """ + pinnedBy: Actor! + + """ + Preconfigured background gradient option + """ + preconfiguredGradient: PinnedDiscussionGradient + + """ + The repository associated with this node. + """ + repository: Repository! + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! +} + +""" +The connection type for PinnedDiscussion. +""" +type PinnedDiscussionConnection { + """ + A list of edges. + """ + edges: [PinnedDiscussionEdge] + + """ + A list of nodes. + """ + nodes: [PinnedDiscussion] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type PinnedDiscussionEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: PinnedDiscussion +} + +""" +Preconfigured gradients that may be used to style discussions pinned within a repository. +""" +enum PinnedDiscussionGradient { + """ + A gradient of blue to mint + """ + BLUE_MINT + + """ + A gradient of blue to purple + """ + BLUE_PURPLE + + """ + A gradient of pink to blue + """ + PINK_BLUE + + """ + A gradient of purple to coral + """ + PURPLE_CORAL + + """ + A gradient of red to orange + """ + RED_ORANGE +} + +""" +Preconfigured background patterns that may be used to style discussions pinned within a repository. +""" +enum PinnedDiscussionPattern { + """ + An upward-facing chevron pattern + """ + CHEVRON_UP + + """ + A hollow dot pattern + """ + DOT + + """ + A solid dot pattern + """ + DOT_FILL + + """ + A heart pattern + """ + HEART_FILL + + """ + A plus sign pattern + """ + PLUS + + """ + A lightning bolt pattern + """ + ZAP +} + +""" +Represents a pinned environment on a given repository +""" +type PinnedEnvironment implements Node { + """ + Identifies the date and time when the pinned environment was created + """ + createdAt: DateTime! + + """ + Identifies the primary key from the database. + """ + databaseId: Int + + """ + Identifies the environment associated. + """ + environment: Environment! + + """ + The Node ID of the PinnedEnvironment object + """ + id: ID! + + """ + Identifies the position of the pinned environment. + """ + position: Int! + + """ + The repository that this environment was pinned to. + """ + repository: Repository! +} + +""" +The connection type for PinnedEnvironment. +""" +type PinnedEnvironmentConnection { + """ + A list of edges. + """ + edges: [PinnedEnvironmentEdge] + + """ + A list of nodes. + """ + nodes: [PinnedEnvironment] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type PinnedEnvironmentEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: PinnedEnvironment +} + +""" +Ordering options for pinned environments +""" +input PinnedEnvironmentOrder { + """ + The direction in which to order pinned environments by the specified field. + """ + direction: OrderDirection! + + """ + The field to order pinned environments by. + """ + field: PinnedEnvironmentOrderField! +} + +""" +Properties by which pinned environments connections can be ordered +""" +enum PinnedEnvironmentOrderField { + """ + Order pinned environments by position + """ + POSITION +} + +""" +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! + + """ + The Node ID of the PinnedEvent object + """ + id: ID! + + """ + Identifies the issue associated with the event. + """ + issue: Issue! +} + +""" +A Pinned Issue is a issue pinned to a repository's index page. +""" +type PinnedIssue implements Node { + """ + Identifies the primary key from the database. + """ + databaseId: Int + + """ + Identifies the primary key from the database as a BigInt. + """ + fullDatabaseId: BigInt + + """ + The Node ID of the PinnedIssue object + """ + id: ID! + + """ + The issue that was pinned. + """ + issue: Issue! + + """ + The actor that pinned this issue. + """ + pinnedBy: Actor! + + """ + The repository that this issue was pinned to. + """ + repository: Repository! +} + +""" +The connection type for PinnedIssue. +""" +type PinnedIssueConnection { + """ + A list of edges. + """ + edges: [PinnedIssueEdge] + + """ + A list of nodes. + """ + nodes: [PinnedIssue] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type PinnedIssueEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: PinnedIssue +} + +""" +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 + + """ + The Node ID of the PrivateRepositoryForkingDisableAuditEntry object + """ + 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 + + """ + The Node ID of the PrivateRepositoryForkingEnableAuditEntry object + """ + 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 + + """ + The Node ID of the ProfileOwner object + """ + 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! + + """ + Indicates 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 + + """ + The Node ID of the Project object + """ + 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! + + """ + Indicates if the object can be closed by the viewer. + """ + viewerCanClose: Boolean! + + """ + Indicates if the object can be reopened by the viewer. + """ + viewerCanReopen: Boolean! + + """ + 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 + + """ + The Node ID of the ProjectCard object + """ + 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 +} + +""" +An issue or PR and its owning repository to be used in a project card. +""" +input ProjectCardImport { + """ + The issue or pull request number. + """ + number: Int! + + """ + Repository name with owner (owner/repository). + """ + repository: String! +} + +""" +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 + + """ + The Node ID of the ProjectColumn object + """ + 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 +} + +""" +A project column and a list of its issues and PRs. +""" +input ProjectColumnImport { + """ + The name of the column. + """ + columnName: String! + + """ + A list of issues and pull requests in the column. + """ + issues: [ProjectCardImport!] + + """ + The position of the column, starting from 0. + """ + position: Int! +} + +""" +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 { + """ + The Node ID of the ProjectOwner object + """ + 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 +} + +""" +New projects that manage issues, pull requests and drafts using tables and boards. +""" +type ProjectV2 implements Closable & Node & Updatable { + """ + Returns true if the project is closed. + """ + 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! + + """ + The actor who originally created the project. + """ + creator: Actor + + """ + Identifies the primary key from the database. + """ + databaseId: Int + + """ + A field of the project + """ + field( + """ + The name of the field + """ + name: String! + ): ProjectV2FieldConfiguration + + """ + List of fields and their constraints in the project + """ + fields( + """ + 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 project v2 fields returned from the connection + """ + orderBy: ProjectV2FieldOrder = { field: POSITION, direction: ASC } + ): ProjectV2FieldConfigurationConnection! + + """ + The Node ID of the ProjectV2 object + """ + id: ID! + + """ + List of items in the project + """ + 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 + + """ + Ordering options for project v2 items returned from the connection + """ + orderBy: ProjectV2ItemOrder = { field: POSITION, direction: ASC } + ): ProjectV2ItemConnection! + + """ + The project's number. + """ + number: Int! + + """ + The project's owner. Currently limited to organizations and users. + """ + owner: ProjectV2Owner! + + """ + Returns true if the project is public. + """ + public: Boolean! + + """ + The project's readme. + """ + readme: String + + """ + The repositories the project is linked 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 + + """ + Ordering options for repositories returned from the connection + """ + orderBy: RepositoryOrder = { field: CREATED_AT, direction: DESC } + ): RepositoryConnection! + + """ + The HTTP path for this project + """ + resourcePath: URI! + + """ + The project's short description. + """ + shortDescription: String + + """ + List of the status updates in the project. + """ + statusUpdates( + """ + 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: ProjectV2StatusOrder = { field: CREATED_AT, direction: DESC } + ): ProjectV2StatusUpdateConnection! + + """ + The teams the project is linked to. + """ + 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 + + """ + Ordering options for teams returned from this connection. + """ + orderBy: TeamOrder = { field: NAME, direction: ASC } + ): TeamConnection! + + """ + Returns true if this project is a template. + """ + template: Boolean! + + """ + The project's name. + """ + title: String! + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! + + """ + The HTTP URL for this project + """ + url: URI! + + """ + A view of the project + """ + view( + """ + The number of a view belonging to the project + """ + number: Int! + ): ProjectV2View + + """ + Indicates if the object can be closed by the viewer. + """ + viewerCanClose: Boolean! + + """ + Indicates if the object can be reopened by the viewer. + """ + viewerCanReopen: Boolean! + + """ + Check if the current viewer can update this object. + """ + viewerCanUpdate: Boolean! + + """ + List of views in the project + """ + views( + """ + 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 project v2 views returned from the connection + """ + orderBy: ProjectV2ViewOrder = { field: POSITION, direction: ASC } + ): ProjectV2ViewConnection! + + """ + A workflow of the project + """ + workflow( + """ + The number of a workflow belonging to the project + """ + number: Int! + ): ProjectV2Workflow + + """ + List of the workflows in the project + """ + workflows( + """ + 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 project v2 workflows returned from the connection + """ + orderBy: ProjectV2WorkflowOrder = { field: NAME, direction: ASC } + ): ProjectV2WorkflowConnection! +} + +""" +Possible collaborators for a project. +""" +union ProjectV2Actor = Team | User + +""" +The connection type for ProjectV2Actor. +""" +type ProjectV2ActorConnection { + """ + A list of edges. + """ + edges: [ProjectV2ActorEdge] + + """ + A list of nodes. + """ + nodes: [ProjectV2Actor] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type ProjectV2ActorEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: ProjectV2Actor +} + +""" +A collaborator to update on a project. Only one of the userId or teamId should be provided. +""" +input ProjectV2Collaborator { + """ + The role to grant the collaborator + """ + role: ProjectV2Roles! + + """ + The ID of the team as a collaborator. + """ + teamId: ID @possibleTypes(concreteTypes: ["Team"]) + + """ + The ID of the user as a collaborator. + """ + userId: ID @possibleTypes(concreteTypes: ["User"]) +} + +""" +The connection type for ProjectV2. +""" +type ProjectV2Connection { + """ + A list of edges. + """ + edges: [ProjectV2Edge] + + """ + A list of nodes. + """ + nodes: [ProjectV2] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +The type of a project field. +""" +enum ProjectV2CustomFieldType { + """ + Date + """ + DATE + + """ + Number + """ + NUMBER + + """ + Single Select + """ + SINGLE_SELECT + + """ + Text + """ + TEXT +} + +""" +An edge in a connection. +""" +type ProjectV2Edge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: ProjectV2 +} + +""" +A field inside a project. +""" +type ProjectV2Field implements Node & ProjectV2FieldCommon { + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + The field's type. + """ + dataType: ProjectV2FieldType! + + """ + Identifies the primary key from the database. + """ + databaseId: Int + + """ + The Node ID of the ProjectV2Field object + """ + id: ID! + + """ + The project field's name. + """ + name: String! + + """ + The project that contains this field. + """ + project: ProjectV2! + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! +} + +""" +Common fields across different project field types +""" +interface ProjectV2FieldCommon { + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + The field's type. + """ + dataType: ProjectV2FieldType! + + """ + Identifies the primary key from the database. + """ + databaseId: Int + + """ + The Node ID of the ProjectV2FieldCommon object + """ + id: ID! + + """ + The project field's name. + """ + name: String! + + """ + The project that contains this field. + """ + project: ProjectV2! + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! +} + +""" +Configurations for project fields. +""" +union ProjectV2FieldConfiguration = + | ProjectV2Field + | ProjectV2IterationField + | ProjectV2SingleSelectField + +""" +The connection type for ProjectV2FieldConfiguration. +""" +type ProjectV2FieldConfigurationConnection { + """ + A list of edges. + """ + edges: [ProjectV2FieldConfigurationEdge] + + """ + A list of nodes. + """ + nodes: [ProjectV2FieldConfiguration] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type ProjectV2FieldConfigurationEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: ProjectV2FieldConfiguration +} + +""" +The connection type for ProjectV2Field. +""" +type ProjectV2FieldConnection { + """ + A list of edges. + """ + edges: [ProjectV2FieldEdge] + + """ + A list of nodes. + """ + nodes: [ProjectV2Field] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type ProjectV2FieldEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: ProjectV2Field +} + +""" +Ordering options for project v2 field connections +""" +input ProjectV2FieldOrder { + """ + The ordering direction. + """ + direction: OrderDirection! + + """ + The field to order the project v2 fields by. + """ + field: ProjectV2FieldOrderField! +} + +""" +Properties by which project v2 field connections can be ordered. +""" +enum ProjectV2FieldOrderField { + """ + Order project v2 fields by creation time + """ + CREATED_AT + + """ + Order project v2 fields by name + """ + NAME + + """ + Order project v2 fields by position + """ + POSITION +} + +""" +The type of a project field. +""" +enum ProjectV2FieldType { + """ + Assignees + """ + ASSIGNEES + + """ + Date + """ + DATE + + """ + Iteration + """ + ITERATION + + """ + Labels + """ + LABELS + + """ + Linked Pull Requests + """ + LINKED_PULL_REQUESTS + + """ + Milestone + """ + MILESTONE + + """ + Number + """ + NUMBER + + """ + Repository + """ + REPOSITORY + + """ + Reviewers + """ + REVIEWERS + + """ + Single Select + """ + SINGLE_SELECT + + """ + Text + """ + TEXT + + """ + Title + """ + TITLE + + """ + Tracked by + """ + TRACKED_BY + + """ + Tracks + """ + TRACKS +} + +""" +The values that can be used to update a field of an item inside a Project. Only 1 value can be updated at a time. +""" +input ProjectV2FieldValue { + """ + The ISO 8601 date to set on the field. + """ + date: Date + + """ + The id of the iteration to set on the field. + """ + iterationId: String + + """ + The number to set on the field. + """ + number: Float + + """ + The id of the single select option to set on the field. + """ + singleSelectOptionId: String + + """ + The text to set on the field. + """ + text: String +} + +""" +Ways in which to filter lists of projects. +""" +input ProjectV2Filters { + """ + List project v2 filtered by the state given. + """ + state: ProjectV2State +} + +""" +An item within a Project. +""" +type ProjectV2Item implements Node { + """ + The content of the referenced draft issue, issue, or pull request + """ + content: ProjectV2ItemContent + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + The actor who created the item. + """ + creator: Actor + + """ + Identifies the primary key from the database. + """ + databaseId: Int + + """ + The field value of the first project field which matches the 'name' argument that is set on the item. + """ + fieldValueByName( + """ + The name of the field to return the field value of + """ + name: String! + ): ProjectV2ItemFieldValue + + """ + The field values that are set on the item. + """ + fieldValues( + """ + 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 project v2 item field values returned from the connection + """ + orderBy: ProjectV2ItemFieldValueOrder = { field: POSITION, direction: ASC } + ): ProjectV2ItemFieldValueConnection! + + """ + Identifies the primary key from the database as a BigInt. + """ + fullDatabaseId: BigInt + + """ + The Node ID of the ProjectV2Item object + """ + id: ID! + + """ + Whether the item is archived. + """ + isArchived: Boolean! + + """ + The project that contains this item. + """ + project: ProjectV2! + + """ + The type of the item. + """ + type: ProjectV2ItemType! + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! +} + +""" +The connection type for ProjectV2Item. +""" +type ProjectV2ItemConnection { + """ + A list of edges. + """ + edges: [ProjectV2ItemEdge] + + """ + A list of nodes. + """ + nodes: [ProjectV2Item] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +Types that can be inside Project Items. +""" +union ProjectV2ItemContent = DraftIssue | Issue | PullRequest + +""" +An edge in a connection. +""" +type ProjectV2ItemEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: ProjectV2Item +} + +""" +The value of a date field in a Project item. +""" +type ProjectV2ItemFieldDateValue implements Node & ProjectV2ItemFieldValueCommon { + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + The actor who created the item. + """ + creator: Actor + + """ + Identifies the primary key from the database. + """ + databaseId: Int + + """ + Date value for the field + """ + date: Date + + """ + The project field that contains this value. + """ + field: ProjectV2FieldConfiguration! + + """ + The Node ID of the ProjectV2ItemFieldDateValue object + """ + id: ID! + + """ + The project item that contains this value. + """ + item: ProjectV2Item! + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! +} + +""" +The value of an iteration field in a Project item. +""" +type ProjectV2ItemFieldIterationValue implements Node & ProjectV2ItemFieldValueCommon { + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + The actor who created the item. + """ + creator: Actor + + """ + Identifies the primary key from the database. + """ + databaseId: Int + + """ + The duration of the iteration in days. + """ + duration: Int! + + """ + The project field that contains this value. + """ + field: ProjectV2FieldConfiguration! + + """ + The Node ID of the ProjectV2ItemFieldIterationValue object + """ + id: ID! + + """ + The project item that contains this value. + """ + item: ProjectV2Item! + + """ + The ID of the iteration. + """ + iterationId: String! + + """ + The start date of the iteration. + """ + startDate: Date! + + """ + The title of the iteration. + """ + title: String! + + """ + The title of the iteration, with HTML. + """ + titleHTML: String! + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! +} + +""" +The value of the labels field in a Project item. +""" +type ProjectV2ItemFieldLabelValue { + """ + The field that contains this value. + """ + field: ProjectV2FieldConfiguration! + + """ + Labels value of a field + """ + 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 + ): LabelConnection +} + +""" +The value of a milestone field in a Project item. +""" +type ProjectV2ItemFieldMilestoneValue { + """ + The field that contains this value. + """ + field: ProjectV2FieldConfiguration! + + """ + Milestone value of a field + """ + milestone: Milestone +} + +""" +The value of a number field in a Project item. +""" +type ProjectV2ItemFieldNumberValue implements Node & ProjectV2ItemFieldValueCommon { + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + The actor who created the item. + """ + creator: Actor + + """ + Identifies the primary key from the database. + """ + databaseId: Int + + """ + The project field that contains this value. + """ + field: ProjectV2FieldConfiguration! + + """ + The Node ID of the ProjectV2ItemFieldNumberValue object + """ + id: ID! + + """ + The project item that contains this value. + """ + item: ProjectV2Item! + + """ + Number as a float(8) + """ + number: Float + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! +} + +""" +The value of a pull request field in a Project item. +""" +type ProjectV2ItemFieldPullRequestValue { + """ + The field that contains this value. + """ + field: ProjectV2FieldConfiguration! + + """ + The pull requests for this field + """ + pullRequests( + """ + 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 +} + +""" +The value of a repository field in a Project item. +""" +type ProjectV2ItemFieldRepositoryValue { + """ + The field that contains this value. + """ + field: ProjectV2FieldConfiguration! + + """ + The repository for this field. + """ + repository: Repository +} + +""" +The value of a reviewers field in a Project item. +""" +type ProjectV2ItemFieldReviewerValue { + """ + The field that contains this value. + """ + field: ProjectV2FieldConfiguration! + + """ + The reviewers for this field. + """ + reviewers( + """ + 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 + ): RequestedReviewerConnection +} + +""" +The value of a single select field in a Project item. +""" +type ProjectV2ItemFieldSingleSelectValue implements Node & ProjectV2ItemFieldValueCommon { + """ + The color applied to the selected single-select option. + """ + color: ProjectV2SingleSelectFieldOptionColor! + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + The actor who created the item. + """ + creator: Actor + + """ + Identifies the primary key from the database. + """ + databaseId: Int + + """ + A plain-text description of the selected single-select option, such as what the option means. + """ + description: String + + """ + The description of the selected single-select option, including HTML tags. + """ + descriptionHTML: String + + """ + The project field that contains this value. + """ + field: ProjectV2FieldConfiguration! + + """ + The Node ID of the ProjectV2ItemFieldSingleSelectValue object + """ + id: ID! + + """ + The project item that contains this value. + """ + item: ProjectV2Item! + + """ + The name of the selected single select option. + """ + name: String + + """ + The html name of the selected single select option. + """ + nameHTML: String + + """ + The id of the selected single select option. + """ + optionId: String + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! +} + +""" +The value of a text field in a Project item. +""" +type ProjectV2ItemFieldTextValue implements Node & ProjectV2ItemFieldValueCommon { + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + The actor who created the item. + """ + creator: Actor + + """ + Identifies the primary key from the database. + """ + databaseId: Int + + """ + The project field that contains this value. + """ + field: ProjectV2FieldConfiguration! + + """ + The Node ID of the ProjectV2ItemFieldTextValue object + """ + id: ID! + + """ + The project item that contains this value. + """ + item: ProjectV2Item! + + """ + Text value of a field + """ + text: String + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! +} + +""" +The value of a user field in a Project item. +""" +type ProjectV2ItemFieldUserValue { + """ + The field that contains this value. + """ + field: ProjectV2FieldConfiguration! + + """ + The users for this field + """ + 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 + ): UserConnection +} + +""" +Project field values +""" +union ProjectV2ItemFieldValue = + | ProjectV2ItemFieldDateValue + | ProjectV2ItemFieldIterationValue + | ProjectV2ItemFieldLabelValue + | ProjectV2ItemFieldMilestoneValue + | ProjectV2ItemFieldNumberValue + | ProjectV2ItemFieldPullRequestValue + | ProjectV2ItemFieldRepositoryValue + | ProjectV2ItemFieldReviewerValue + | ProjectV2ItemFieldSingleSelectValue + | ProjectV2ItemFieldTextValue + | ProjectV2ItemFieldUserValue + +""" +Common fields across different project field value types +""" +interface ProjectV2ItemFieldValueCommon { + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + The actor who created the item. + """ + creator: Actor + + """ + Identifies the primary key from the database. + """ + databaseId: Int + + """ + The project field that contains this value. + """ + field: ProjectV2FieldConfiguration! + + """ + The Node ID of the ProjectV2ItemFieldValueCommon object + """ + id: ID! + + """ + The project item that contains this value. + """ + item: ProjectV2Item! + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! +} + +""" +The connection type for ProjectV2ItemFieldValue. +""" +type ProjectV2ItemFieldValueConnection { + """ + A list of edges. + """ + edges: [ProjectV2ItemFieldValueEdge] + + """ + A list of nodes. + """ + nodes: [ProjectV2ItemFieldValue] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type ProjectV2ItemFieldValueEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: ProjectV2ItemFieldValue +} + +""" +Ordering options for project v2 item field value connections +""" +input ProjectV2ItemFieldValueOrder { + """ + The ordering direction. + """ + direction: OrderDirection! + + """ + The field to order the project v2 item field values by. + """ + field: ProjectV2ItemFieldValueOrderField! +} + +""" +Properties by which project v2 item field value connections can be ordered. +""" +enum ProjectV2ItemFieldValueOrderField { + """ + Order project v2 item field values by the their position in the project + """ + POSITION +} + +""" +Ordering options for project v2 item connections +""" +input ProjectV2ItemOrder { + """ + The ordering direction. + """ + direction: OrderDirection! + + """ + The field to order the project v2 items by. + """ + field: ProjectV2ItemOrderField! +} + +""" +Properties by which project v2 item connections can be ordered. +""" +enum ProjectV2ItemOrderField { + """ + Order project v2 items by the their position in the project + """ + POSITION +} + +""" +The type of a project item. +""" +enum ProjectV2ItemType { + """ + Draft Issue + """ + DRAFT_ISSUE + + """ + Issue + """ + ISSUE + + """ + Pull Request + """ + PULL_REQUEST + + """ + Redacted Item + """ + REDACTED +} + +""" +An iteration field inside a project. +""" +type ProjectV2IterationField implements Node & ProjectV2FieldCommon { + """ + Iteration configuration settings + """ + configuration: ProjectV2IterationFieldConfiguration! + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + The field's type. + """ + dataType: ProjectV2FieldType! + + """ + Identifies the primary key from the database. + """ + databaseId: Int + + """ + The Node ID of the ProjectV2IterationField object + """ + id: ID! + + """ + The project field's name. + """ + name: String! + + """ + The project that contains this field. + """ + project: ProjectV2! + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! +} + +""" +Iteration field configuration for a project. +""" +type ProjectV2IterationFieldConfiguration { + """ + The iteration's completed iterations + """ + completedIterations: [ProjectV2IterationFieldIteration!]! + + """ + The iteration's duration in days + """ + duration: Int! + + """ + The iteration's iterations + """ + iterations: [ProjectV2IterationFieldIteration!]! + + """ + The iteration's start day of the week + """ + startDay: Int! +} + +""" +Iteration field iteration settings for a project. +""" +type ProjectV2IterationFieldIteration { + """ + The iteration's duration in days + """ + duration: Int! + + """ + The iteration's ID. + """ + id: String! + + """ + The iteration's start date + """ + startDate: Date! + + """ + The iteration's title. + """ + title: String! + + """ + The iteration's html title. + """ + titleHTML: String! +} + +""" +Ways in which lists of projects can be ordered upon return. +""" +input ProjectV2Order { + """ + The direction in which to order projects by the specified field. + """ + direction: OrderDirection! + + """ + The field in which to order projects by. + """ + field: ProjectV2OrderField! +} + +""" +Properties by which projects can be ordered. +""" +enum ProjectV2OrderField { + """ + The project's date and time of creation + """ + CREATED_AT + + """ + The project's number + """ + NUMBER + + """ + The project's title + """ + TITLE + + """ + The project's date and time of update + """ + UPDATED_AT +} + +""" +Represents an owner of a project. +""" +interface ProjectV2Owner { + """ + The Node ID of the ProjectV2Owner object + """ + id: ID! + + """ + Find a project by number. + """ + projectV2( + """ + The project number. + """ + number: Int! + ): ProjectV2 + + """ + A list of projects under the owner. + """ + projectsV2( + """ + 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 projects based on user role. + """ + minPermissionLevel: ProjectV2PermissionLevel = READ + + """ + How to order the returned projects. + """ + orderBy: ProjectV2Order = { field: NUMBER, direction: DESC } + + """ + A project to search for under the the owner. + """ + query: String + ): ProjectV2Connection! +} + +""" +The possible roles of a collaborator on a project. +""" +enum ProjectV2PermissionLevel { + """ + The collaborator can view, edit, and maange the settings of the project + """ + ADMIN + + """ + The collaborator can view the project + """ + READ + + """ + The collaborator can view and edit the project + """ + WRITE +} + +""" +Recent projects for the owner. +""" +interface ProjectV2Recent { + """ + Recent projects that this user has modified in the context of the owner. + """ + recentProjects( + """ + 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 + ): ProjectV2Connection! +} + +""" +The possible roles of a collaborator on a project. +""" +enum ProjectV2Roles { + """ + The collaborator can view, edit, and maange the settings of the project + """ + ADMIN + + """ + The collaborator has no direct access to the project + """ + NONE + + """ + The collaborator can view the project + """ + READER + + """ + The collaborator can view and edit the project + """ + WRITER +} + +""" +A single select field inside a project. +""" +type ProjectV2SingleSelectField implements Node & ProjectV2FieldCommon { + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + The field's type. + """ + dataType: ProjectV2FieldType! + + """ + Identifies the primary key from the database. + """ + databaseId: Int + + """ + The Node ID of the ProjectV2SingleSelectField object + """ + id: ID! + + """ + The project field's name. + """ + name: String! + + """ + Options for the single select field + """ + options( + """ + Filter returned options to only those matching these names, case insensitive. + """ + names: [String!] + ): [ProjectV2SingleSelectFieldOption!]! + + """ + The project that contains this field. + """ + project: ProjectV2! + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! +} + +""" +Single select field option for a configuration for a project. +""" +type ProjectV2SingleSelectFieldOption { + """ + The option's display color. + """ + color: ProjectV2SingleSelectFieldOptionColor! + + """ + The option's plain-text description. + """ + description: String! + + """ + The option's description, possibly containing HTML. + """ + descriptionHTML: String! + + """ + The option's ID. + """ + id: String! + + """ + The option's name. + """ + name: String! + + """ + The option's html name. + """ + nameHTML: String! +} + +""" +The display color of a single-select field option. +""" +enum ProjectV2SingleSelectFieldOptionColor { + """ + BLUE + """ + BLUE + + """ + GRAY + """ + GRAY + + """ + GREEN + """ + GREEN + + """ + ORANGE + """ + ORANGE + + """ + PINK + """ + PINK + + """ + PURPLE + """ + PURPLE + + """ + RED + """ + RED + + """ + YELLOW + """ + YELLOW +} + +""" +Represents a single select field option +""" +input ProjectV2SingleSelectFieldOptionInput { + """ + The display color of the option + """ + color: ProjectV2SingleSelectFieldOptionColor! + + """ + The description text of the option + """ + description: String! + + """ + The name of the option + """ + name: String! +} + +""" +Represents a sort by field and direction. +""" +type ProjectV2SortBy { + """ + The direction of the sorting. Possible values are ASC and DESC. + """ + direction: OrderDirection! + + """ + The field by which items are sorted. + """ + field: ProjectV2Field! +} + +""" +The connection type for ProjectV2SortBy. +""" +type ProjectV2SortByConnection { + """ + A list of edges. + """ + edges: [ProjectV2SortByEdge] + + """ + A list of nodes. + """ + nodes: [ProjectV2SortBy] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type ProjectV2SortByEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: ProjectV2SortBy +} + +""" +Represents a sort by field and direction. +""" +type ProjectV2SortByField { + """ + The direction of the sorting. Possible values are ASC and DESC. + """ + direction: OrderDirection! + + """ + The field by which items are sorted. + """ + field: ProjectV2FieldConfiguration! +} + +""" +The connection type for ProjectV2SortByField. +""" +type ProjectV2SortByFieldConnection { + """ + A list of edges. + """ + edges: [ProjectV2SortByFieldEdge] + + """ + A list of nodes. + """ + nodes: [ProjectV2SortByField] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type ProjectV2SortByFieldEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: ProjectV2SortByField +} + +""" +The possible states of a project v2. +""" +enum ProjectV2State { + """ + A project v2 that has been closed + """ + CLOSED + + """ + A project v2 that is still open + """ + OPEN +} + +""" +Ways in which project v2 status updates can be ordered. +""" +input ProjectV2StatusOrder { + """ + The direction in which to order nodes. + """ + direction: OrderDirection! + + """ + The field by which to order nodes. + """ + field: ProjectV2StatusUpdateOrderField! +} + +""" +A status update within a project. +""" +type ProjectV2StatusUpdate implements Node { + """ + The body of the status update. + """ + body: String + + """ + The body of the status update rendered to HTML. + """ + bodyHTML: HTML + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + The actor who created the status update. + """ + creator: Actor + + """ + Identifies the primary key from the database. + """ + databaseId: Int + + """ + The Node ID of the ProjectV2StatusUpdate object + """ + id: ID! + + """ + The project that contains this status update. + """ + project: ProjectV2! + + """ + The start date of the status update. + """ + startDate: Date + + """ + The status of the status update. + """ + status: ProjectV2StatusUpdateStatus + + """ + The target date of the status update. + """ + targetDate: Date + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! +} + +""" +The connection type for ProjectV2StatusUpdate. +""" +type ProjectV2StatusUpdateConnection { + """ + A list of edges. + """ + edges: [ProjectV2StatusUpdateEdge] + + """ + A list of nodes. + """ + nodes: [ProjectV2StatusUpdate] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type ProjectV2StatusUpdateEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: ProjectV2StatusUpdate +} + +""" +Properties by which project v2 status updates can be ordered. +""" +enum ProjectV2StatusUpdateOrderField { + """ + Allows chronological ordering of project v2 status updates. + """ + CREATED_AT +} + +""" +The possible statuses of a project v2. +""" +enum ProjectV2StatusUpdateStatus { + """ + A project v2 that is at risk and encountering some challenges. + """ + AT_RISK + + """ + A project v2 that is complete. + """ + COMPLETE + + """ + A project v2 that is inactive. + """ + INACTIVE + + """ + A project v2 that is off track and needs attention. + """ + OFF_TRACK + + """ + A project v2 that is on track with no risks. + """ + ON_TRACK +} + +""" +A view within a ProjectV2. +""" +type ProjectV2View implements Node { + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + Identifies the primary key from the database. + """ + databaseId: Int + + """ + The view's visible fields. + """ + fields( + """ + 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 project v2 fields returned from the connection. + """ + orderBy: ProjectV2FieldOrder = { field: POSITION, direction: ASC } + ): ProjectV2FieldConfigurationConnection + + """ + The project view's filter. + """ + filter: String + + """ + The view's group-by field. + """ + groupBy( + """ + 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 project v2 fields returned from the connection. + """ + orderBy: ProjectV2FieldOrder = { field: POSITION, direction: ASC } + ): ProjectV2FieldConnection + @deprecated( + reason: "The `ProjectV2View#order_by` API is deprecated in favour of the more capable `ProjectV2View#group_by_field` API. Check out the `ProjectV2View#group_by_fields` API as an example for the more capable alternative. Removal on 2023-04-01 UTC." + ) + + """ + The view's group-by field. + """ + groupByFields( + """ + 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 project v2 fields returned from the connection. + """ + orderBy: ProjectV2FieldOrder = { field: POSITION, direction: ASC } + ): ProjectV2FieldConfigurationConnection + + """ + The Node ID of the ProjectV2View object + """ + id: ID! + + """ + The project view's layout. + """ + layout: ProjectV2ViewLayout! + + """ + The project view's name. + """ + name: String! + + """ + The project view's number. + """ + number: Int! + + """ + The project that contains this view. + """ + project: ProjectV2! + + """ + The view's sort-by config. + """ + sortBy( + """ + 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 + ): ProjectV2SortByConnection + @deprecated( + reason: "The `ProjectV2View#sort_by` API is deprecated in favour of the more capable `ProjectV2View#sort_by_fields` API. Check out the `ProjectV2View#sort_by_fields` API as an example for the more capable alternative. Removal on 2023-04-01 UTC." + ) + + """ + The view's sort-by config. + """ + sortByFields( + """ + 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 + ): ProjectV2SortByFieldConnection + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! + + """ + The view's vertical-group-by field. + """ + verticalGroupBy( + """ + 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 project v2 fields returned from the connection. + """ + orderBy: ProjectV2FieldOrder = { field: POSITION, direction: ASC } + ): ProjectV2FieldConnection + @deprecated( + reason: "The `ProjectV2View#vertical_group_by` API is deprecated in favour of the more capable `ProjectV2View#vertical_group_by_fields` API. Check out the `ProjectV2View#vertical_group_by_fields` API as an example for the more capable alternative. Removal on 2023-04-01 UTC." + ) + + """ + The view's vertical-group-by field. + """ + verticalGroupByFields( + """ + 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 project v2 fields returned from the connection. + """ + orderBy: ProjectV2FieldOrder = { field: POSITION, direction: ASC } + ): ProjectV2FieldConfigurationConnection + + """ + The view's visible fields. + """ + visibleFields( + """ + 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 project v2 fields returned from the connection. + """ + orderBy: ProjectV2FieldOrder = { field: POSITION, direction: ASC } + ): ProjectV2FieldConnection + @deprecated( + reason: "The `ProjectV2View#visibleFields` API is deprecated in favour of the more capable `ProjectV2View#fields` API. Check out the `ProjectV2View#fields` API as an example for the more capable alternative. Removal on 2023-01-01 UTC." + ) +} + +""" +The connection type for ProjectV2View. +""" +type ProjectV2ViewConnection { + """ + A list of edges. + """ + edges: [ProjectV2ViewEdge] + + """ + A list of nodes. + """ + nodes: [ProjectV2View] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type ProjectV2ViewEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: ProjectV2View +} + +""" +The layout of a project v2 view. +""" +enum ProjectV2ViewLayout { + """ + Board layout + """ + BOARD_LAYOUT + + """ + Roadmap layout + """ + ROADMAP_LAYOUT + + """ + Table layout + """ + TABLE_LAYOUT +} + +""" +Ordering options for project v2 view connections +""" +input ProjectV2ViewOrder { + """ + The ordering direction. + """ + direction: OrderDirection! + + """ + The field to order the project v2 views by. + """ + field: ProjectV2ViewOrderField! +} + +""" +Properties by which project v2 view connections can be ordered. +""" +enum ProjectV2ViewOrderField { + """ + Order project v2 views by creation time + """ + CREATED_AT + + """ + Order project v2 views by name + """ + NAME + + """ + Order project v2 views by position + """ + POSITION +} + +""" +A workflow inside a project. +""" +type ProjectV2Workflow implements Node { + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + Identifies the primary key from the database. + """ + databaseId: Int + + """ + Whether the workflow is enabled. + """ + enabled: Boolean! + + """ + The Node ID of the ProjectV2Workflow object + """ + id: ID! + + """ + The name of the workflow. + """ + name: String! + + """ + The number of the workflow. + """ + number: Int! + + """ + The project that contains this workflow. + """ + project: ProjectV2! + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! +} + +""" +The connection type for ProjectV2Workflow. +""" +type ProjectV2WorkflowConnection { + """ + A list of edges. + """ + edges: [ProjectV2WorkflowEdge] + + """ + A list of nodes. + """ + nodes: [ProjectV2Workflow] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type ProjectV2WorkflowEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: ProjectV2Workflow +} + +""" +Ordering options for project v2 workflows connections +""" +input ProjectV2WorkflowOrder { + """ + The ordering direction. + """ + direction: OrderDirection! + + """ + The field to order the project v2 workflows by. + """ + field: ProjectV2WorkflowsOrderField! +} + +""" +Properties by which project workflows can be ordered. +""" +enum ProjectV2WorkflowsOrderField { + """ + The date and time of the workflow creation + """ + CREATED_AT + + """ + The name of the workflow + """ + NAME + + """ + The number of the workflow + """ + NUMBER + + """ + The date and time of the workflow update + """ + UPDATED_AT +} + +""" +A property that must match +""" +type PropertyTargetDefinition { + """ + The name of the property + """ + name: String! + + """ + The values to match for + """ + propertyValues: [String!]! + + """ + The source of the property. Choose 'custom' or 'system'. Defaults to 'custom' if not specified + """ + source: String +} + +""" +A property that must match +""" +input PropertyTargetDefinitionInput { + """ + The name of the property + """ + name: String! + + """ + The values to match for + """ + propertyValues: [String!]! + + """ + The source of the property. Choose 'custom' or 'system'. Defaults to 'custom' if not specified + """ + source: String +} + +""" +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! + + """ + The Node ID of the PublicKey object + """ + 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 +} + +""" +Autogenerated input type of PublishSponsorsTier +""" +input PublishSponsorsTierInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the draft tier to publish. + """ + tierId: ID! @possibleTypes(concreteTypes: ["SponsorsTier"]) +} + +""" +Autogenerated return type of PublishSponsorsTier. +""" +type PublishSponsorsTierPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The tier that was published. + """ + sponsorsTier: SponsorsTier +} + +""" +A repository pull request. +""" +type PullRequest implements Assignable & Closable & Comment & Labelable & Lockable & Node & ProjectV2Owner & 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! + + """ + Whether or not the pull request is rebaseable. + """ + canBeRebased: Boolean! + + """ + 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 + + """ + List of issues that were may be closed by this pull request + """ + closingIssuesReferences( + """ + 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 issues returned from the connection + """ + orderBy: IssueOrder + + """ + Return only manually linked Issues + """ + userLinkedOnly: Boolean = false + ): IssueConnection + + """ + 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 + @deprecated( + reason: "`databaseId` will be removed because it does not support 64-bit signed integer identifiers. Use `fullDatabaseId` instead. Removal on 2024-07-01 UTC." + ) + + """ + 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 primary key from the database as a BigInt. + """ + fullDatabaseId: BigInt + + """ + 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! + + """ + The Node ID of the PullRequest object + """ + 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! + + """ + Indicates whether the pull request is in a merge queue + """ + isInMergeQueue: Boolean! + + """ + Indicates whether the pull request's base ref has a merge queue enabled. + """ + isMergeQueueEnabled: 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 + + """ + The merge queue for the pull request's base branch + """ + mergeQueue: MergeQueue + + """ + The merge queue entry of the pull request in the base branch's merge queue + """ + mergeQueueEntry: MergeQueueEntry + + """ + Detailed information about the current pull request merge state status. + """ + mergeStateStatus: MergeStateStatus! + + """ + 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! + + """ + List of project items associated with this pull request. + """ + projectItems( + """ + 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 + + """ + Include archived items. + """ + includeArchived: Boolean = true + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): ProjectV2ItemConnection! + + """ + Find a project by number. + """ + projectV2( + """ + The project number. + """ + number: Int! + ): ProjectV2 + + """ + A list of projects under the owner. + """ + projectsV2( + """ + 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 projects based on user role. + """ + minPermissionLevel: ProjectV2PermissionLevel = READ + + """ + How to order the returned projects. + """ + orderBy: ProjectV2Order = { field: NUMBER, direction: DESC } + + """ + A project to search for under the the owner. + """ + query: String + ): ProjectV2Connection! + + """ + 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! + + """ + Check and Status rollup information for the PR's head ref. + """ + statusCheckRollup: StatusCheckRollup + + """ + 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 pull request title rendered to HTML. + """ + titleHTML: HTML! + + """ + Returns a count of how many comments this pull request has received. + """ + totalCommentsCount: Int + + """ + 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! + + """ + Indicates if the object can be closed by the viewer. + """ + viewerCanClose: Boolean! + + """ + Check if the viewer can restore the deleted head ref. + """ + viewerCanDeleteHeadRef: Boolean! + + """ + Whether or not the viewer can disable auto-merge + """ + viewerCanDisableAutoMerge: Boolean! + + """ + Can the viewer edit files within this pull request. + """ + viewerCanEditFiles: Boolean! + + """ + Whether or not the viewer can enable auto-merge + """ + viewerCanEnableAutoMerge: Boolean! + + """ + Indicates if the viewer can edit labels for this object. + """ + viewerCanLabel: Boolean! + + """ + Indicates whether the viewer can bypass branch protections and merge the pull request immediately + """ + viewerCanMergeAsAdmin: Boolean! + + """ + Can user react to this subject + """ + viewerCanReact: Boolean! + + """ + Indicates if the object can be reopened by the viewer. + """ + viewerCanReopen: 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! + + """ + Whether or not the viewer can update the head ref of this PR, by merging or rebasing the base ref. + If the head ref is up to date or unable to be updated by this user, this will return false. + """ + viewerCanUpdateBranch: Boolean! + + """ + Reasons why the current viewer can not update this comment. + """ + viewerCannotUpdateReasons: [CommentCannotUpdateReason!]! + + """ + Did the viewer author this comment. + """ + viewerDidAuthor: Boolean! + + """ + The latest review given from the viewer. + """ + viewerLatestReview: PullRequestReview + + """ + The person who has requested the viewer for review on this pull request. + """ + viewerLatestReviewRequest: ReviewRequest + + """ + 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 +} + +""" +The possible methods for updating a pull request's head branch with the base branch. +""" +enum PullRequestBranchUpdateMethod { + """ + Update branch via merge + """ + MERGE + + """ + Update branch via rebase + """ + REBASE +} + +""" +A file changed in a pull request. +""" +type PullRequestChangedFile { + """ + The number of additions to the file. + """ + additions: Int! + + """ + How the file was changed in this PullRequest + """ + changeType: PatchStatus! + + """ + 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! + + """ + The Node ID of the PullRequestCommit object + """ + 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! + + """ + The Node ID of the PullRequestCommitCommentThread object + """ + 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 +} + +""" +Require all commits be made to a non-target branch and submitted via a pull request before they can be merged. +""" +type PullRequestParameters { + """ + New, reviewable commits pushed will dismiss previous pull request review approvals. + """ + dismissStaleReviewsOnPush: Boolean! + + """ + Require an approving review in pull requests that modify files that have a designated code owner. + """ + requireCodeOwnerReview: Boolean! + + """ + Whether the most recent reviewable push must be approved by someone other than the person who pushed it. + """ + requireLastPushApproval: Boolean! + + """ + The number of approving reviews that are required before a pull request can be merged. + """ + requiredApprovingReviewCount: Int! + + """ + All conversations on code must be resolved before a pull request can be merged. + """ + requiredReviewThreadResolution: Boolean! +} + +""" +Require all commits be made to a non-target branch and submitted via a pull request before they can be merged. +""" +input PullRequestParametersInput { + """ + New, reviewable commits pushed will dismiss previous pull request review approvals. + """ + dismissStaleReviewsOnPush: Boolean! + + """ + Require an approving review in pull requests that modify files that have a designated code owner. + """ + requireCodeOwnerReview: Boolean! + + """ + Whether the most recent reviewable push must be approved by someone other than the person who pushed it. + """ + requireLastPushApproval: Boolean! + + """ + The number of approving reviews that are required before a pull request can be merged. + """ + requiredApprovingReviewCount: Int! + + """ + All conversations on code must be resolved before a pull request can be merged. + """ + requiredReviewThreadResolution: Boolean! +} + +""" +A review object for a given pull request. +""" +type PullRequestReview 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! + + """ + 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 + @deprecated( + reason: "`databaseId` will be removed because it does not support 64-bit signed integer identifiers. Use `fullDatabaseId` instead. Removal on 2024-07-01 UTC." + ) + + """ + The actor who edited the comment. + """ + editor: Actor + + """ + Identifies the primary key from the database as a BigInt. + """ + fullDatabaseId: BigInt + + """ + The Node ID of the PullRequestReview object + """ + 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. One of `abuse`, `off-topic`, + `outdated`, `resolved`, `duplicate` and `spam`. Note that the case and + formatting of these values differs from the inputs to the `MinimizeComment` mutation. + """ + minimizedReason: String + + """ + 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! + + """ + 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! +} + +""" +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 + @deprecated( + reason: "`databaseId` will be removed because it does not support 64-bit signed integer identifiers. Use `fullDatabaseId` instead. Removal on 2024-07-01 UTC." + ) + + """ + 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 + + """ + Identifies the primary key from the database as a BigInt. + """ + fullDatabaseId: BigInt + + """ + The Node ID of the PullRequestReviewComment object + """ + 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 + + """ + The end line number on the file to which the comment applies + """ + line: Int + + """ + Returns why the comment was minimized. One of `abuse`, `off-topic`, + `outdated`, `resolved`, `duplicate` and `spam`. Note that the case and + formatting of these values differs from the inputs to the `MinimizeComment` mutation. + """ + minimizedReason: String + + """ + Identifies the original commit associated with the comment. + """ + originalCommit: Commit + + """ + The end line number on the file to which the comment applied when it was first created + """ + originalLine: Int + + """ + The original line index in the diff to which the comment applies. + """ + originalPosition: Int! + @deprecated( + reason: "We are phasing out diff-relative positioning for PR comments Removal on 2023-10-01 UTC." + ) + + """ + The start line number on the file to which the comment applied when it was first created + """ + originalStartLine: 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 + @deprecated( + reason: "We are phasing out diff-relative positioning for PR comments Use the `line` and `startLine` fields instead, which are file line numbers instead of diff line numbers Removal on 2023-10-01 UTC." + ) + + """ + 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! + + """ + The start line number on the file to which the comment applies + """ + startLine: Int + + """ + Identifies the state of the comment. + """ + state: PullRequestReviewCommentState! + + """ + The level at which the comments in the corresponding thread are targeted, can be a diff line or a file + """ + subjectType: PullRequestReviewThreadSubjectType! + + """ + 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! + + """ + The Node ID of the PullRequestReviewThread object + """ + id: ID! + + """ + Whether or not the thread has been collapsed (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 + + """ + The level at which the comments in the corresponding thread are targeted, can be a diff line or a file + """ + subjectType: PullRequestReviewThreadSubjectType! + + """ + 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 +} + +""" +The possible subject types of a pull request review comment. +""" +enum PullRequestReviewThreadSubjectType { + """ + A comment that has been made against the file of a pull request + """ + FILE + + """ + A comment that has been made against the line of a pull request + """ + LINE +} + +""" +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 +} + +""" +A repository pull request template. +""" +type PullRequestTemplate { + """ + The body of the template + """ + body: String + + """ + The filename of the template + """ + filename: String + + """ + The repository the template belongs to + """ + repository: Repository! +} + +""" +A threaded list of comments for a given pull request. +""" +type PullRequestThread 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! + + """ + The Node ID of the PullRequestThread object + """ + id: ID! + + """ + Whether or not the thread has been collapsed (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 + + """ + 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 line of the first file diff in the thread. + """ + startLine: Int + + """ + The level at which the comments in the corresponding thread are targeted, can be a diff line or a file + """ + subjectType: PullRequestReviewThreadSubjectType! + + """ + 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! +} + +""" +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 = + | AddedToMergeQueueEvent + | AddedToProjectEvent + | AssignedEvent + | AutoMergeDisabledEvent + | AutoMergeEnabledEvent + | AutoRebaseEnabledEvent + | AutoSquashEnabledEvent + | AutomaticBaseChangeFailedEvent + | AutomaticBaseChangeSucceededEvent + | BaseRefChangedEvent + | BaseRefDeletedEvent + | BaseRefForcePushedEvent + | ClosedEvent + | CommentDeletedEvent + | ConnectedEvent + | ConvertToDraftEvent + | ConvertedNoteToIssueEvent + | ConvertedToDiscussionEvent + | CrossReferencedEvent + | DemilestonedEvent + | DeployedEvent + | DeploymentEnvironmentChangedEvent + | DisconnectedEvent + | HeadRefDeletedEvent + | HeadRefForcePushedEvent + | HeadRefRestoredEvent + | IssueComment + | LabeledEvent + | LockedEvent + | MarkedAsDuplicateEvent + | MentionedEvent + | MergedEvent + | MilestonedEvent + | MovedColumnsInProjectEvent + | PinnedEvent + | PullRequestCommit + | PullRequestCommitCommentThread + | PullRequestReview + | PullRequestReviewThread + | PullRequestRevisionMarker + | ReadyForReviewEvent + | ReferencedEvent + | RemovedFromMergeQueueEvent + | 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 an 'added_to_merge_queue' event on a given pull request. + """ + ADDED_TO_MERGE_QUEUE_EVENT + + """ + 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 'converted_to_discussion' event on a given issue. + """ + CONVERTED_TO_DISCUSSION_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_merge_queue' event on a given pull request. + """ + REMOVED_FROM_MERGE_QUEUE_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 { + """ + The Node ID of the Push object + """ + id: ID! + + """ + The SHA after the push + """ + nextSha: GitObjectID + + """ + The permalink for this push. + """ + permalink: URI! + + """ + The SHA before the push + """ + previousSha: GitObjectID + + """ + The actor who pushed + """ + pusher: Actor! + + """ + 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, team, or app. + """ + branchProtectionRule: BranchProtectionRule + + """ + The Node ID of the PushAllowance object + """ + 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 a pending enterprise unaffiliated member invitation by invitee and enterprise. + """ + enterpriseMemberInvitation( + """ + The slug of the enterprise the user was invited to join. + """ + enterpriseSlug: String! + + """ + The login of the user invited to join the business. + """ + userLogin: String! + ): EnterpriseMemberInvitation + + """ + Look up a pending enterprise unaffiliated member invitation by invitation token. + """ + enterpriseMemberInvitationByToken( + """ + The invitation token sent with the invitation email. + """ + invitationToken: String! + ): EnterpriseMemberInvitation + + """ + 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 + + """ + Workaround for re-exposing the root query object. (Refer to + https://github.com/facebook/relay/issues/112 for more information.) + """ + relay: Query! + + """ + Lookup a given repository by the owner and repository name. + """ + repository( + """ + Follow repository renames. If disabled, a repository referenced by its old name will return an error. + """ + followRenames: Boolean = true + + """ + 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, returning a maximum of 1,000 results. + """ + 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. GitHub search syntax is supported. For more + information, see "[Searching on + GitHub](https://docs.github.com/search-github/searching-on-github)," + "[Understanding the search syntax](https://docs.github.com/search-github/getting-started-with-searching-on-github/understanding-the-search-syntax)," + and "[Sorting search results](https://docs.github.com/search-github/getting-started-with-searching-on-github/sorting-search-results)." + """ + 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 + + """ + A list of classifications to filter advisories by. + """ + classifications: [SecurityAdvisoryClassification!] + + """ + 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 + + """ + A list of advisory classifications to filter vulnerabilities by. + """ + classifications: [SecurityAdvisoryClassification!] + + """ + 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. + + **Upcoming Change on 2022-07-01 UTC** + **Description:** `dependencyEcosystem` will be removed. Use the ecosystem argument instead. + **Reason:** The type is switching from SecurityAdvisoryEcosystem to DependencyGraphEcosystem. + """ + dependencyEcosystem: SecurityAdvisoryEcosystem + + """ + 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. + """ + ecosystem: DependencyGraphEcosystem + + """ + 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 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 + + """ + The Node ID of the Reactable object + """ + 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 + + """ + The Node ID of the Reaction object + """ + 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 + + """ + Reactors to the reaction subject with the emotion represented by this reaction group. + """ + reactors( + """ + 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 + ): ReactorConnection! + + """ + 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! + @deprecated( + reason: "Reactors can now be mannequins, bots, and organizations. Use the `reactors` field instead. Removal on 2021-10-01 UTC." + ) + + """ + 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 +} + +""" +Types that can be assigned to reactions. +""" +union Reactor = Bot | Mannequin | Organization | User + +""" +The connection type for Reactor. +""" +type ReactorConnection { + """ + A list of edges. + """ + edges: [ReactorEdge] + + """ + A list of nodes. + """ + nodes: [Reactor] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +Represents an author of a reaction. +""" +type ReactorEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The author of the reaction. + """ + node: Reactor! + + """ + The moment when the user made the reaction. + """ + reactedAt: DateTime! +} + +""" +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! + + """ + The Node ID of the ReadyForReviewEvent object + """ + 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 + + """ + Compares the current ref as a base ref to another head ref, if the comparison can be made. + """ + compare( + """ + The head ref to compare against. + """ + headRef: String! + ): Comparison + + """ + The Node ID of the Ref object + """ + 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! + + """ + A list of rules from active Repository and Organization rulesets that apply to this ref. + """ + rules( + """ + 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 repository rules. + """ + orderBy: RepositoryRuleOrder = { field: UPDATED_AT, direction: DESC } + ): RepositoryRuleConnection + + """ + 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 +} + +""" +Parameters to be used for the ref_name condition +""" +type RefNameConditionTarget { + """ + Array of ref names or patterns to exclude. The condition will not pass if any of these patterns match. + """ + exclude: [String!]! + + """ + Array of ref names or patterns to include. One of these patterns must match + for the condition to pass. Also accepts `~DEFAULT_BRANCH` to include the + default branch or `~ALL` to include all branches. + """ + include: [String!]! +} + +""" +Parameters to be used for the ref_name condition +""" +input RefNameConditionTargetInput { + """ + Array of ref names or patterns to exclude. The condition will not pass if any of these patterns match. + """ + exclude: [String!]! + + """ + Array of ref names or patterns to include. One of these patterns must match + for the condition to pass. Also accepts `~DEFAULT_BRANCH` to include the + default branch or `~ALL` to include all branches. + """ + include: [String!]! +} + +""" +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 +""" +input RefUpdate { + """ + The value this ref should be updated to. + """ + afterOid: GitObjectID! + + """ + The value this ref needs to point to before the update. + """ + beforeOid: GitObjectID + + """ + Force a non fast-forward update. + """ + force: Boolean = false + + """ + The fully qualified name of the ref to be update. For example `refs/heads/branch-name` + """ + name: GitRefname! +} + +""" +Branch protection rules that are enforced on the viewer. +""" +type RefUpdateRule { + """ + Can this branch be deleted. + """ + allowsDeletions: Boolean! + + """ + Are force pushes allowed on this branch. + """ + allowsForcePushes: Boolean! + + """ + Can matching branches be created. + """ + blocksCreations: 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 reviews from code owners required to update matching branches. + """ + requiresCodeOwnerReviews: Boolean! + + """ + Are conversations required to be resolved before merging. + """ + requiresConversationResolution: Boolean! + + """ + Are merge commits prohibited from being pushed to this branch. + """ + requiresLinearHistory: Boolean! + + """ + Are commits required to be signed. + """ + requiresSignatures: Boolean! + + """ + Is the viewer allowed to dismiss reviews. + """ + viewerAllowedToDismissReviews: 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! + + """ + The Node ID of the ReferencedEvent object + """ + 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! @possibleTypes(concreteTypes: ["Enterprise"]) +} + +""" +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! @possibleTypes(concreteTypes: ["VerifiableDomain"]) +} + +""" +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 +} + +""" +Autogenerated input type of RejectDeployments +""" +input RejectDeploymentsInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Optional comment for rejecting deployments + """ + comment: String = "" + + """ + The ids of environments to reject deployments + """ + environmentIds: [ID!]! + + """ + The node ID of the workflow run containing the pending deployments. + """ + workflowRunId: ID! @possibleTypes(concreteTypes: ["WorkflowRun"]) +} + +""" +Autogenerated return type of RejectDeployments. +""" +type RejectDeploymentsPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The affected deployments. + """ + deployments: [Deployment!] +} + +""" +A release contains the content for a release. +""" +type Release implements Node & Reactable & UniformResourceLocatable { + """ + The author of the release + """ + author: User + + """ + 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 release. + """ + description: String + + """ + The description of this release rendered to HTML. + """ + descriptionHTML: HTML + + """ + The Node ID of the Release object + """ + 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! + + """ + A list of users mentioned in the release description + """ + mentions( + """ + 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 title of the release. + """ + name: String + + """ + Identifies the date and time when the release was created. + """ + 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! + + """ + 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 name 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 tag commit for this release. + """ + tagCommit: Commit + + """ + 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! + + """ + Can user react to this subject + """ + viewerCanReact: Boolean! +} + +""" +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! + + """ + The Node ID of the ReleaseAsset object + """ + 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! + @possibleTypes( + concreteTypes: ["Issue", "PullRequest"] + abstractType: "Assignable" + ) + + """ + The id of users to remove as assignees. + """ + assigneeIds: [ID!]! @possibleTypes(concreteTypes: ["User"]) + + """ + 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! @possibleTypes(concreteTypes: ["Enterprise"]) + + """ + 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! @possibleTypes(concreteTypes: ["Enterprise"]) +} + +""" +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 RemoveEnterpriseMember +""" +input RemoveEnterpriseMemberInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the enterprise from which the user should be removed. + """ + enterpriseId: ID! @possibleTypes(concreteTypes: ["Enterprise"]) + + """ + The ID of the user to remove from the enterprise. + """ + userId: ID! @possibleTypes(concreteTypes: ["User"]) +} + +""" +Autogenerated return type of RemoveEnterpriseMember. +""" +type RemoveEnterpriseMemberPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The updated enterprise. + """ + enterprise: Enterprise + + """ + The user that was removed from the enterprise. + """ + user: User + + """ + The viewer performing the mutation. + """ + viewer: User +} + +""" +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! @possibleTypes(concreteTypes: ["Enterprise"]) + + """ + The ID of the organization to remove from the enterprise. + """ + organizationId: ID! @possibleTypes(concreteTypes: ["Organization"]) +} + +""" +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! @possibleTypes(concreteTypes: ["Enterprise"]) + + """ + 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!]! @possibleTypes(concreteTypes: ["Label"]) + + """ + The id of the Labelable to remove labels from. + """ + labelableId: ID! + @possibleTypes( + concreteTypes: ["Discussion", "Issue", "PullRequest"] + abstractType: "Labelable" + ) +} + +""" +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! @possibleTypes(concreteTypes: ["Organization"]) + + """ + The ID of the outside collaborator to remove. + """ + userId: ID! @possibleTypes(concreteTypes: ["User"]) +} + +""" +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! + @possibleTypes( + concreteTypes: [ + "CommitComment" + "Discussion" + "DiscussionComment" + "Issue" + "IssueComment" + "PullRequest" + "PullRequestReview" + "PullRequestReviewComment" + "Release" + "TeamDiscussion" + "TeamDiscussionComment" + ] + abstractType: "Reactable" + ) +} + +""" +Autogenerated return type of RemoveReaction. +""" +type RemoveReactionPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The reaction object. + """ + reaction: Reaction + + """ + The reaction groups for the subject. + """ + reactionGroups: [ReactionGroup!] + + """ + 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! + @possibleTypes( + concreteTypes: ["Gist", "Repository", "Topic"] + abstractType: "Starrable" + ) +} + +""" +Autogenerated return type of RemoveStar. +""" +type RemoveStarPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The starrable. + """ + starrable: Starrable +} + +""" +Autogenerated input type of RemoveUpvote +""" +input RemoveUpvoteInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The Node ID of the discussion or comment to remove upvote. + """ + subjectId: ID! + @possibleTypes( + concreteTypes: ["Discussion", "DiscussionComment"] + abstractType: "Votable" + ) +} + +""" +Autogenerated return type of RemoveUpvote. +""" +type RemoveUpvotePayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The votable subject. + """ + subject: Votable +} + +""" +Represents a 'removed_from_merge_queue' event on a given pull request. +""" +type RemovedFromMergeQueueEvent implements Node { + """ + Identifies the actor who performed the event. + """ + actor: Actor + + """ + Identifies the before commit SHA for the 'removed_from_merge_queue' event. + """ + beforeCommit: Commit + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + The user who removed this Pull Request from the merge queue + """ + enqueuer: User + + """ + The Node ID of the RemovedFromMergeQueueEvent object + """ + id: ID! + + """ + The merge queue where this pull request was removed from. + """ + mergeQueue: MergeQueue + + """ + PullRequest referenced by event. + """ + pullRequest: PullRequest + + """ + The reason this pull request was removed from the queue. + """ + reason: String +} + +""" +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 + + """ + The Node ID of the RemovedFromProjectEvent object + """ + id: ID! + + """ + Project referenced by event. + """ + project: Project + + """ + Column name referenced by this project event. + """ + projectColumnName: String! +} + +""" +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! + + """ + The Node ID of the RenamedTitleEvent object + """ + 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 ReopenDiscussion +""" +input ReopenDiscussionInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + ID of the discussion to be reopened. + """ + discussionId: ID! @possibleTypes(concreteTypes: ["Discussion"]) +} + +""" +Autogenerated return type of ReopenDiscussion. +""" +type ReopenDiscussionPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The discussion that was reopened. + """ + discussion: Discussion +} + +""" +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! @possibleTypes(concreteTypes: ["Issue"]) +} + +""" +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! @possibleTypes(concreteTypes: ["PullRequest"]) +} + +""" +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! + + """ + The Node ID of the ReopenedEvent object + """ + id: ID! + + """ + The reason the issue state was changed to open. + """ + stateReason: IssueStateReason +} + +""" +Autogenerated input type of ReorderEnvironment +""" +input ReorderEnvironmentInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the environment to modify + """ + environmentId: ID! @possibleTypes(concreteTypes: ["Environment"]) + + """ + The desired position of the environment + """ + position: Int! +} + +""" +Autogenerated return type of ReorderEnvironment. +""" +type ReorderEnvironmentPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The environment that was reordered + """ + environment: Environment +} + +""" +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! + + """ + The Node ID of the RepoAccessAuditEntry object + """ + 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! + + """ + The Node ID of the RepoAddMemberAuditEntry object + """ + 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! + + """ + The Node ID of the RepoAddTopicAuditEntry object + """ + 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! + + """ + The Node ID of the RepoArchivedAuditEntry object + """ + 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! + + """ + The Node ID of the RepoChangeMergeSettingAuditEntry object + """ + 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! + + """ + The Node ID of the RepoConfigDisableAnonymousGitAccessAuditEntry object + """ + 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! + + """ + The Node ID of the RepoConfigDisableCollaboratorsOnlyAuditEntry object + """ + 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! + + """ + The Node ID of the RepoConfigDisableContributorsOnlyAuditEntry object + """ + 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! + + """ + The Node ID of the RepoConfigDisableSockpuppetDisallowedAuditEntry object + """ + 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! + + """ + The Node ID of the RepoConfigEnableAnonymousGitAccessAuditEntry object + """ + 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! + + """ + The Node ID of the RepoConfigEnableCollaboratorsOnlyAuditEntry object + """ + 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! + + """ + The Node ID of the RepoConfigEnableContributorsOnlyAuditEntry object + """ + 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! + + """ + The Node ID of the RepoConfigEnableSockpuppetDisallowedAuditEntry object + """ + 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! + + """ + The Node ID of the RepoConfigLockAnonymousGitAccessAuditEntry object + """ + 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! + + """ + The Node ID of the RepoConfigUnlockAnonymousGitAccessAuditEntry object + """ + 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 + + """ + The Node ID of the RepoCreateAuditEntry object + """ + 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! + + """ + The Node ID of the RepoDestroyAuditEntry object + """ + 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! + + """ + The Node ID of the RepoRemoveMemberAuditEntry object + """ + 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! + + """ + The Node ID of the RepoRemoveTopicAuditEntry object + """ + 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 & ProjectV2Recent & RepositoryInfo & Starrable & Subscribable & UniformResourceLocatable { + """ + Whether or not a pull request head branch that is behind its base branch can + always be updated even if it is not required to be up to date before merging. + """ + allowUpdateBranch: Boolean! + + """ + Identifies the date and time when the repository was archived. + """ + archivedAt: DateTime + + """ + 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! + + """ + Whether or not Auto-merge can be enabled on pull requests in this repository. + """ + autoMergeAllowed: Boolean! + + """ + 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 + + """ + Information extracted from the repository's `CODEOWNERS` file. + """ + codeowners( + """ + The ref name used to return the associated `CODEOWNERS` file. + """ + refName: String + ): RepositoryCodeowners + + """ + 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 + + """ + The login of one specific collaborator. + """ + login: String + + """ + 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!] + + """ + Returns the contributing guidelines for this repository. + """ + contributingGuidelines: ContributingGuidelines + + """ + 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 dependency manifests contained in the repository + """ + dependencyGraphManifests( + """ + 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 + + """ + Cursor to paginate dependencies + """ + dependenciesAfter: String + + """ + Number of dependencies to fetch + """ + dependenciesFirst: Int + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Flag to scope to only manifests with dependencies + """ + withDependencies: Boolean + ): DependencyGraphManifestConnection + + """ + 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! + + """ + Returns a single discussion from the current repository by number. + """ + discussion( + """ + The number for the discussion to be returned. + """ + number: Int! + ): Discussion + + """ + A list of discussion categories that are available in the repository. + """ + discussionCategories( + """ + 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 + + """ + Filter by categories that are assignable by the viewer. + """ + filterByAssignable: Boolean = false + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): DiscussionCategoryConnection! + + """ + A discussion category by slug. + """ + discussionCategory( + """ + The slug of the discussion category to be returned. + """ + slug: String! + ): DiscussionCategory + + """ + A list of discussions that have been opened in the repository. + """ + discussions( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Only show answered or unanswered discussions + """ + answered: Boolean = null + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Only include discussions that belong to the category with this ID. + """ + categoryId: ID = null + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for discussions returned from the connection. + """ + orderBy: DiscussionOrder = { field: UPDATED_AT, direction: DESC } + + """ + A list of states to filter the discussions by. + """ + states: [DiscussionState!] = [] + ): DiscussionConnection! + + """ + The number of kilobytes this repository occupies on disk. + """ + diskUsage: Int + + """ + Returns a single active environment from the current repository by name. + """ + environment( + """ + The name of the environment to be returned. + """ + name: String! + ): Environment + + """ + A list of environments that are in this repository. + """ + environments( + """ + 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 names of the environments to be returned. + """ + names: [String!] = [] + + """ + Ordering options for the environments + """ + orderBy: Environments = { field: NAME, direction: ASC } + + """ + Filter to control pinned environments return + """ + pinnedEnvironmentFilter: EnvironmentPinnedFilterField = ALL + ): EnvironmentConnection! + + """ + Returns how many forks there are of this repository in the whole network. + """ + forkCount: Int! + + """ + Whether this repository allows forks. + """ + forkingAllowed: Boolean! + + """ + 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 issues enabled + """ + hasIssuesEnabled: 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. Internal + repositories are considered private; consider using the visibility argument + if only internal repositories are needed. Cannot be combined with the + visibility argument. + """ + privacy: RepositoryPrivacy + + """ + If non-null, filters repositories according to visibility. Cannot be combined with the privacy argument. + """ + visibility: RepositoryVisibility + ): RepositoryConnection! + + """ + The funding links for this repository + """ + fundingLinks: [FundingLink!]! + + """ + Indicates if the repository has the Discussions feature enabled. + """ + hasDiscussionsEnabled: Boolean! + + """ + 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 displays a Sponsor button for financial contributions. + """ + hasSponsorshipsEnabled: Boolean! + + """ + Whether vulnerability alerts are enabled for the repository. + """ + hasVulnerabilityAlertsEnabled: Boolean! + + """ + Indicates if the repository has wiki feature enabled. + """ + hasWikiEnabled: Boolean! + + """ + The repository's URL. + """ + homepageUrl: URI + + """ + The Node ID of the Repository object + """ + 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 or internal. + """ + 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! + + """ + How the default commit message will be generated when merging a pull request. + """ + mergeCommitMessage: MergeCommitMessage! + + """ + How the default commit title will be generated when merging a pull request. + """ + mergeCommitTitle: MergeCommitTitle! + + """ + The merge queue for a specified branch, otherwise the default branch if not provided. + """ + mergeQueue( + """ + The name of the branch to get the merge queue for. Case sensitive. + """ + branch: String + ): MergeQueue + + """ + 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 + + """ + A list of discussions that have been pinned in this repository. + """ + pinnedDiscussions( + """ + 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 + ): PinnedDiscussionConnection! + + """ + A list of pinned environments for this repository. + """ + pinnedEnvironments( + """ + 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 environments + """ + orderBy: PinnedEnvironmentOrder = { field: POSITION, direction: ASC } + ): PinnedEnvironmentConnection + + """ + A list of pinned issues for this repository. + """ + pinnedIssues( + """ + 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 + ): PinnedIssueConnection + + """ + Returns information about the availability of certain features and limits based on the repository's billing plan. + """ + planFeatures: RepositoryPlanFeatures! + + """ + The primary language of the repository's code. + """ + primaryLanguage: Language + + """ + Find project by number. + """ + project( + """ + The project number to find. + """ + number: Int! + ): Project + + """ + Finds and returns the Project according to the provided Project number. + """ + projectV2( + """ + The Project number. + """ + number: Int! + ): ProjectV2 + + """ + 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! + + """ + List of projects linked to this repository. + """ + projectsV2( + """ + 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 projects based on user role. + """ + minPermissionLevel: ProjectV2PermissionLevel = READ + + """ + How to order the returned projects. + """ + orderBy: ProjectV2Order = { field: NUMBER, direction: DESC } + + """ + A project to search for linked to the repo. + """ + query: String + ): ProjectV2Connection! + + """ + Returns a single pull request from the current repository by number. + """ + pullRequest( + """ + The number for the pull request to be returned. + """ + number: Int! + ): PullRequest + + """ + Returns a list of pull request templates associated to the repository + """ + pullRequestTemplates: [PullRequestTemplate!] + + """ + 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 the date and time when the repository was last pushed to. + """ + pushedAt: DateTime + + """ + Whether or not rebase-merging is enabled on this repository. + """ + rebaseMergeAllowed: Boolean! + + """ + Recent projects that this user has modified in the context of the owner. + """ + recentProjects( + """ + 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 + ): ProjectV2Connection! + + """ + 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! + + """ + Returns a single ruleset from the current repository by ID. + """ + ruleset( + """ + The ID of the ruleset to be returned. + """ + databaseId: Int! + + """ + Include rulesets configured at higher levels that apply to this repository + """ + includeParents: Boolean = true + ): RepositoryRuleset + + """ + A list of rulesets for this repository. + """ + rulesets( + """ + 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 + + """ + Return rulesets configured at higher levels that apply to this repository + """ + includeParents: Boolean = true + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): RepositoryRulesetConnection + + """ + 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! + + """ + How the default commit message will be generated when squash merging a pull request. + """ + squashMergeCommitMessage: SquashMergeCommitMessage! + + """ + How the default commit title will be generated when squash merging a pull request. + """ + squashMergeCommitTitle: SquashMergeCommitTitle! + + """ + Whether a squash merge commit can use the pull request title as default. + """ + squashPrTitleUsedAsDefault: Boolean! + @deprecated( + reason: "`squashPrTitleUsedAsDefault` will be removed. Use `Repository.squashMergeCommitTitle` instead. Removal on 2023-04-01 UTC." + ) + + """ + 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 + + """ + Indicates the repository's visibility level. + """ + visibility: RepositoryVisibility! + + """ + Returns a single vulnerability alert from the current repository by number. + """ + vulnerabilityAlert( + """ + The number for the vulnerability alert to be returned. + """ + number: Int! + ): RepositoryVulnerabilityAlert + + """ + 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 + + """ + Filter by the scope of the alert's dependency + """ + dependencyScopes: [RepositoryVulnerabilityAlertDependencyScope!] + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Filter by the state of the alert + """ + states: [RepositoryVulnerabilityAlertState!] + ): 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! + + """ + Whether contributors are required to sign off on web-based commits in this repository. + """ + webCommitSignoffRequired: Boolean! +} + +""" +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 +} + +""" +Information extracted from a repository's `CODEOWNERS` file. +""" +type RepositoryCodeowners { + """ + Any problems that were encountered while parsing the `CODEOWNERS` file. + """ + errors: [RepositoryCodeownersError!]! +} + +""" +An error in a `CODEOWNERS` file. +""" +type RepositoryCodeownersError { + """ + The column number where the error occurs. + """ + column: Int! + + """ + A short string describing the type of error. + """ + kind: String! + + """ + The line number where the error occurs. + """ + line: Int! + + """ + A complete description of the error, combining information from other fields. + """ + message: String! + + """ + The path to the file when the error occurs. + """ + path: String! + + """ + The content of the line where the error occurs. + """ + source: String! + + """ + A suggestion of how to fix the error. + """ + suggestion: String +} + +""" +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. Value will + never be larger than max 32-bit signed integer. + """ + 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 +} + +""" +Represents an author of discussions in repositories. +""" +interface RepositoryDiscussionAuthor { + """ + Discussions this user has started. + """ + repositoryDiscussions( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Filter discussions to only those that have been answered or not. Defaults to + including both answered and unanswered discussions. + """ + answered: Boolean = null + + """ + 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 discussions returned from the connection. + """ + orderBy: DiscussionOrder = { field: CREATED_AT, direction: DESC } + + """ + Filter discussions to only those in a specific repository. + """ + repositoryId: ID + + """ + A list of states to filter the discussions by. + """ + states: [DiscussionState!] = [] + ): DiscussionConnection! +} + +""" +Represents an author of discussion comments in repositories. +""" +interface RepositoryDiscussionCommentAuthor { + """ + Discussion comments this user has authored. + """ + repositoryDiscussionComments( + """ + 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 discussion comments to only those that were marked as the answer + """ + onlyAnswers: Boolean = false + + """ + Filter discussion comments to only those in a specific repository. + """ + repositoryId: ID + ): DiscussionCommentConnection! +} + +""" +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 +} + +""" +Parameters to be used for the repository_id condition +""" +type RepositoryIdConditionTarget { + """ + One of these repo IDs must match the repo. + """ + repositoryIds: [ID!]! +} + +""" +Parameters to be used for the repository_id condition +""" +input RepositoryIdConditionTargetInput { + """ + One of these repo IDs must match the repo. + """ + repositoryIds: [ID!]! +} + +""" +A subset of repository info. +""" +interface RepositoryInfo { + """ + Identifies the date and time when the repository was archived. + """ + archivedAt: DateTime + + """ + 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 the Discussions feature enabled. + """ + hasDiscussionsEnabled: Boolean! + + """ + 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 displays a Sponsor button for financial contributions. + """ + hasSponsorshipsEnabled: 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 or internal. + """ + 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 the date and time 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! + + """ + Indicates the repository's visibility level. + """ + visibility: RepositoryVisibility! +} + +""" +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 + + """ + The Node ID of the RepositoryInvitation object + """ + 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 +} + +""" +A list of repository invitations. +""" +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 +} + +""" +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 + + """ + The repository is locked due to a trade controls related reason. + """ + TRADE_RESTRICTION + + """ + The repository is locked due to an ownership transfer. + """ + TRANSFERRING_OWNERSHIP +} + +""" +A GitHub Enterprise Importer (GEI) repository migration. +""" +type RepositoryMigration implements Migration & Node { + """ + The migration flag to continue on error. + """ + continueOnError: Boolean! + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + Identifies the primary key from the database. + """ + databaseId: String + + """ + The reason the migration failed. + """ + failureReason: String + + """ + The Node ID of the RepositoryMigration object + """ + id: ID! + + """ + The URL for the migration log (expires 1 day after migration completes). + """ + migrationLogUrl: URI + + """ + The migration source. + """ + migrationSource: MigrationSource! + + """ + The target repository name. + """ + repositoryName: String! + + """ + The migration source URL, for example `https://github.com` or `https://monalisa.ghe.com`. + """ + sourceUrl: URI! + + """ + The migration state. + """ + state: MigrationState! + + """ + The number of warnings encountered for this migration. To review the warnings, + check the [Migration Log](https://docs.github.com/migrations/using-github-enterprise-importer/completing-your-migration-with-github-enterprise-importer/accessing-your-migration-logs-for-github-enterprise-importer). + """ + warningsCount: Int! +} + +""" +A list of migrations. +""" +type RepositoryMigrationConnection { + """ + A list of edges. + """ + edges: [RepositoryMigrationEdge] + + """ + A list of nodes. + """ + nodes: [RepositoryMigration] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +Represents a repository migration. +""" +type RepositoryMigrationEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: RepositoryMigration +} + +""" +Ordering options for repository migrations. +""" +input RepositoryMigrationOrder { + """ + The ordering direction. + """ + direction: RepositoryMigrationOrderDirection! + + """ + The field to order repository migrations by. + """ + field: RepositoryMigrationOrderField! +} + +""" +Possible directions in which to order a list of repository migrations when provided an `orderBy` argument. +""" +enum RepositoryMigrationOrderDirection { + """ + Specifies an ascending order for a given `orderBy` argument. + """ + ASC + + """ + Specifies a descending order for a given `orderBy` argument. + """ + DESC +} + +""" +Properties by which repository migrations can be ordered. +""" +enum RepositoryMigrationOrderField { + """ + Order mannequins why when they were created. + """ + CREATED_AT +} + +""" +Parameters to be used for the repository_name condition +""" +type RepositoryNameConditionTarget { + """ + Array of repository names or patterns to exclude. The condition will not pass if any of these patterns match. + """ + exclude: [String!]! + + """ + Array of repository names or patterns to include. One of these patterns must + match for the condition to pass. Also accepts `~ALL` to include all repositories. + """ + include: [String!]! + + """ + Target changes that match these patterns will be prevented except by those with bypass permissions. + """ + protected: Boolean! +} + +""" +Parameters to be used for the repository_name condition +""" +input RepositoryNameConditionTargetInput { + """ + Array of repository names or patterns to exclude. The condition will not pass if any of these patterns match. + """ + exclude: [String!]! + + """ + Array of repository names or patterns to include. One of these patterns must + match for the condition to pass. Also accepts `~ALL` to include all repositories. + """ + include: [String!]! + + """ + Target changes that match these patterns will be prevented except by those with bypass permissions. + """ + protected: Boolean +} + +""" +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! + + """ + The Node ID of the RepositoryOwner object + """ + 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 have issues enabled + """ + hasIssuesEnabled: Boolean + + """ + If non-null, filters repositories according to whether they are archived and not maintained + """ + isArchived: Boolean + + """ + 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. Internal + repositories are considered private; consider using the visibility argument + if only internal repositories are needed. Cannot be combined with the + visibility argument. + """ + privacy: RepositoryPrivacy + + """ + If non-null, filters repositories according to visibility. Cannot be combined with the privacy argument. + """ + visibility: RepositoryVisibility + ): RepositoryConnection! + + """ + Find Repository. + """ + repository( + """ + Follow repository renames. If disabled, a repository referenced by its old name will return an error. + """ + followRenames: Boolean = true + + """ + 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 +} + +""" +Information about the availability of features and limits for a repository based on its billing plan. +""" +type RepositoryPlanFeatures { + """ + Whether reviews can be automatically requested and enforced with a CODEOWNERS file + """ + codeowners: Boolean! + + """ + Whether pull requests can be created as or converted to draft + """ + draftPullRequests: Boolean! + + """ + Maximum number of users that can be assigned to an issue or pull request + """ + maximumAssignees: Int! + + """ + Maximum number of manually-requested reviews on a pull request + """ + maximumManualReviewRequests: Int! + + """ + Whether teams can be requested to review pull requests + """ + teamReviewRequests: Boolean! +} + +""" +The privacy of a repository +""" +enum RepositoryPrivacy { + """ + Private + """ + PRIVATE + + """ + Public + """ + PUBLIC +} + +""" +Parameters to be used for the repository_property condition +""" +type RepositoryPropertyConditionTarget { + """ + Array of repository properties that must not match. + """ + exclude: [PropertyTargetDefinition!]! + + """ + Array of repository properties that must match + """ + include: [PropertyTargetDefinition!]! +} + +""" +Parameters to be used for the repository_property condition +""" +input RepositoryPropertyConditionTargetInput { + """ + Array of repository properties that must not match. + """ + exclude: [PropertyTargetDefinitionInput!]! + + """ + Array of repository properties that must match + """ + include: [PropertyTargetDefinitionInput!]! +} + +""" +A repository rule. +""" +type RepositoryRule implements Node { + """ + The Node ID of the RepositoryRule object + """ + id: ID! + + """ + The parameters for this rule. + """ + parameters: RuleParameters + + """ + The repository ruleset associated with this rule configuration + """ + repositoryRuleset: RepositoryRuleset + + """ + The type of rule. + """ + type: RepositoryRuleType! +} + +""" +Set of conditions that determine if a ruleset will evaluate +""" +type RepositoryRuleConditions { + """ + Configuration for the ref_name condition + """ + refName: RefNameConditionTarget + + """ + Configuration for the repository_id condition + """ + repositoryId: RepositoryIdConditionTarget + + """ + Configuration for the repository_name condition + """ + repositoryName: RepositoryNameConditionTarget + + """ + Configuration for the repository_property condition + """ + repositoryProperty: RepositoryPropertyConditionTarget +} + +""" +Specifies the conditions required for a ruleset to evaluate +""" +input RepositoryRuleConditionsInput { + """ + Configuration for the ref_name condition + """ + refName: RefNameConditionTargetInput + + """ + Configuration for the repository_id condition + """ + repositoryId: RepositoryIdConditionTargetInput + + """ + Configuration for the repository_name condition + """ + repositoryName: RepositoryNameConditionTargetInput + + """ + Configuration for the repository_property condition + """ + repositoryProperty: RepositoryPropertyConditionTargetInput +} + +""" +The connection type for RepositoryRule. +""" +type RepositoryRuleConnection { + """ + A list of edges. + """ + edges: [RepositoryRuleEdge] + + """ + A list of nodes. + """ + nodes: [RepositoryRule] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type RepositoryRuleEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: RepositoryRule +} + +""" +Specifies the attributes for a new or updated rule. +""" +input RepositoryRuleInput { + """ + Optional ID of this rule when updating + """ + id: ID @possibleTypes(concreteTypes: ["RepositoryRule"]) + + """ + The parameters for the rule. + """ + parameters: RuleParametersInput + + """ + The type of rule to create. + """ + type: RepositoryRuleType! +} + +""" +Ordering options for repository rules. +""" +input RepositoryRuleOrder { + """ + The ordering direction. + """ + direction: OrderDirection! + + """ + The field to order repository rules by. + """ + field: RepositoryRuleOrderField! +} + +""" +Properties by which repository rule connections can be ordered. +""" +enum RepositoryRuleOrderField { + """ + Order repository rules by created time + """ + CREATED_AT + + """ + Order repository rules by type + """ + TYPE + + """ + Order repository rules by updated time + """ + UPDATED_AT +} + +""" +The rule types supported in rulesets +""" +enum RepositoryRuleType { + """ + Authorization + """ + AUTHORIZATION + + """ + Branch name pattern + """ + BRANCH_NAME_PATTERN + + """ + Choose which tools must provide code scanning results before the reference is + updated. When configured, code scanning must be enabled and have results for + both the commit and the reference being updated. + """ + CODE_SCANNING + + """ + Committer email pattern + """ + COMMITTER_EMAIL_PATTERN + + """ + Commit author email pattern + """ + COMMIT_AUTHOR_EMAIL_PATTERN + + """ + Commit message pattern + """ + COMMIT_MESSAGE_PATTERN + + """ + Only allow users with bypass permission to create matching refs. + """ + CREATION + + """ + Only allow users with bypass permissions to delete matching refs. + """ + DELETION + + """ + Prevent commits that include files with specified file extensions from being + pushed to the commit graph. NOTE: This rule is in beta and subject to change + """ + FILE_EXTENSION_RESTRICTION + + """ + Prevent commits that include changes in specified file paths from being pushed + to the commit graph. NOTE: This rule is in beta and subject to change + """ + FILE_PATH_RESTRICTION + + """ + Branch is read-only. Users cannot push to the branch. + """ + LOCK_BRANCH + + """ + Prevent commits that include file paths that exceed a specified character + limit from being pushed to the commit graph. NOTE: This rule is in beta and + subject to change + """ + MAX_FILE_PATH_LENGTH + + """ + Prevent commits that exceed a specified file size limit from being pushed to + the commit. NOTE: This rule is in beta and subject to change + """ + MAX_FILE_SIZE + + """ + Max ref updates + """ + MAX_REF_UPDATES + + """ + Merges must be performed via a merge queue. + """ + MERGE_QUEUE + + """ + Merge queue locked ref + """ + MERGE_QUEUE_LOCKED_REF + + """ + Prevent users with push access from force pushing to refs. + """ + NON_FAST_FORWARD + + """ + Require all commits be made to a non-target branch and submitted via a pull request before they can be merged. + """ + PULL_REQUEST + + """ + Choose which environments must be successfully deployed to before refs can be pushed into a ref that matches this rule. + """ + REQUIRED_DEPLOYMENTS + + """ + Prevent merge commits from being pushed to matching refs. + """ + REQUIRED_LINEAR_HISTORY + + """ + When enabled, all conversations on code must be resolved before a pull request + can be merged into a branch that matches this rule. + """ + REQUIRED_REVIEW_THREAD_RESOLUTION + + """ + Commits pushed to matching refs must have verified signatures. + """ + REQUIRED_SIGNATURES + + """ + Choose which status checks must pass before the ref is updated. When enabled, + commits must first be pushed to another ref where the checks pass. + """ + REQUIRED_STATUS_CHECKS + + """ + Require all commits be made to a non-target branch and submitted via a pull + request and required workflow checks to pass before they can be merged. + """ + REQUIRED_WORKFLOW_STATUS_CHECKS + + """ + Secret scanning + """ + SECRET_SCANNING + + """ + Tag + """ + TAG + + """ + Tag name pattern + """ + TAG_NAME_PATTERN + + """ + Only allow users with bypass permission to update matching refs. + """ + UPDATE + + """ + Require all changes made to a targeted branch to pass the specified workflows before they can be merged. + """ + WORKFLOWS + + """ + Workflow files cannot be modified. + """ + WORKFLOW_UPDATES +} + +""" +A repository ruleset. +""" +type RepositoryRuleset implements Node { + """ + The actors that can bypass this ruleset + """ + bypassActors( + """ + 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 + ): RepositoryRulesetBypassActorConnection + + """ + The set of conditions that must evaluate to true for this ruleset to apply + """ + conditions: RepositoryRuleConditions! + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + Identifies the primary key from the database. + """ + databaseId: Int + + """ + The enforcement level of this ruleset + """ + enforcement: RuleEnforcement! + + """ + The Node ID of the RepositoryRuleset object + """ + id: ID! + + """ + Name of the ruleset. + """ + name: String! + + """ + List of rules. + """ + rules( + """ + 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 type of rule. + """ + type: RepositoryRuleType + ): RepositoryRuleConnection + + """ + Source of ruleset. + """ + source: RuleSource! + + """ + Target of the ruleset. + """ + target: RepositoryRulesetTarget + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! +} + +""" +A team or app that has the ability to bypass a rules defined on a ruleset +""" +type RepositoryRulesetBypassActor implements Node { + """ + The actor that can bypass rules. + """ + actor: BypassActor + + """ + The mode for the bypass actor + """ + bypassMode: RepositoryRulesetBypassActorBypassMode + + """ + This actor represents the ability for a deploy key to bypass + """ + deployKey: Boolean! + + """ + The Node ID of the RepositoryRulesetBypassActor object + """ + id: ID! + + """ + This actor represents the ability for an organization owner to bypass + """ + organizationAdmin: Boolean! + + """ + If the actor is a repository role, the repository role's ID that can bypass + """ + repositoryRoleDatabaseId: Int + + """ + If the actor is a repository role, the repository role's name that can bypass + """ + repositoryRoleName: String + + """ + Identifies the ruleset associated with the allowed actor + """ + repositoryRuleset: RepositoryRuleset +} + +""" +The bypass mode for a specific actor on a ruleset. +""" +enum RepositoryRulesetBypassActorBypassMode { + """ + The actor can always bypass rules + """ + ALWAYS + + """ + The actor can only bypass rules via a pull request + """ + PULL_REQUEST +} + +""" +The connection type for RepositoryRulesetBypassActor. +""" +type RepositoryRulesetBypassActorConnection { + """ + A list of edges. + """ + edges: [RepositoryRulesetBypassActorEdge] + + """ + A list of nodes. + """ + nodes: [RepositoryRulesetBypassActor] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type RepositoryRulesetBypassActorEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: RepositoryRulesetBypassActor +} + +""" +Specifies the attributes for a new or updated ruleset bypass actor. Only one of +`actor_id`, `repository_role_database_id`, `organization_admin`, or `deploy_key` +should be specified. +""" +input RepositoryRulesetBypassActorInput { + """ + For Team and Integration bypasses, the Team or Integration ID + """ + actorId: ID + + """ + The bypass mode for this actor. + """ + bypassMode: RepositoryRulesetBypassActorBypassMode! + + """ + For deploy key bypasses, true. Can only use ALWAYS as the bypass mode + """ + deployKey: Boolean + + """ + For organization owner bypasses, true + """ + organizationAdmin: Boolean + + """ + For role bypasses, the role database ID + """ + repositoryRoleDatabaseId: Int +} + +""" +The connection type for RepositoryRuleset. +""" +type RepositoryRulesetConnection { + """ + A list of edges. + """ + edges: [RepositoryRulesetEdge] + + """ + A list of nodes. + """ + nodes: [RepositoryRuleset] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type RepositoryRulesetEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: RepositoryRuleset +} + +""" +The targets supported for rulesets. NOTE: The push target is in beta and subject to change. +""" +enum RepositoryRulesetTarget { + """ + Branch + """ + BRANCH + + """ + Push + """ + PUSH + + """ + Tag + """ + TAG +} + +""" +A repository-topic connects a repository to a topic. +""" +type RepositoryTopic implements Node & UniformResourceLocatable { + """ + The Node ID of the RepositoryTopic object + """ + 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 + + """ + The Node ID of the RepositoryVisibilityChangeDisableAuditEntry object + """ + 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 + + """ + The Node ID of the RepositoryVisibilityChangeEnableAuditEntry object + """ + 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 Dependabot alert for a repository with a dependency affected by a security vulnerability. +""" +type RepositoryVulnerabilityAlert implements Node & RepositoryNode { + """ + When was the alert auto-dismissed? + """ + autoDismissedAt: DateTime + + """ + When was the alert created? + """ + createdAt: DateTime! + + """ + The associated Dependabot update + """ + dependabotUpdate: DependabotUpdate + + """ + The scope of an alert's dependency + """ + dependencyScope: RepositoryVulnerabilityAlertDependencyScope + + """ + Comment explaining the reason the alert was dismissed + """ + dismissComment: String + + """ + The reason the alert was dismissed + """ + dismissReason: String + + """ + When was the alert dismissed? + """ + dismissedAt: DateTime + + """ + The user who dismissed the alert + """ + dismisser: User + + """ + When was the alert fixed? + """ + fixedAt: DateTime + + """ + The Node ID of the RepositoryVulnerabilityAlert object + """ + id: ID! + + """ + Identifies the alert number. + """ + number: Int! + + """ + The associated repository + """ + repository: Repository! + + """ + The associated security advisory + """ + securityAdvisory: SecurityAdvisory + + """ + The associated security vulnerability + """ + securityVulnerability: SecurityVulnerability + + """ + Identifies the state of the alert. + """ + state: RepositoryVulnerabilityAlertState! + + """ + 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! +} + +""" +The possible scopes of an alert's dependency. +""" +enum RepositoryVulnerabilityAlertDependencyScope { + """ + A dependency that is only used in development + """ + DEVELOPMENT + + """ + A dependency that is leveraged during application runtime + """ + RUNTIME +} + +""" +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 +} + +""" +The possible states of an alert +""" +enum RepositoryVulnerabilityAlertState { + """ + An alert that has been automatically closed by Dependabot. + """ + AUTO_DISMISSED + + """ + An alert that has been manually closed by a user. + """ + DISMISSED + + """ + An alert that has been resolved by a code change. + """ + FIXED + + """ + An alert that is still open. + """ + OPEN +} + +""" +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! @possibleTypes(concreteTypes: ["PullRequest"]) + + """ + The Node IDs of the team to request. + """ + teamIds: [ID!] @possibleTypes(concreteTypes: ["Team"]) + + """ + Add users to the set rather than replace. + """ + union: Boolean = false + + """ + The Node IDs of the user to request. + """ + userIds: [ID!] @possibleTypes(concreteTypes: ["User"]) +} + +""" +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 is in pending state. + """ + PENDING + + """ + 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 = Bot | Mannequin | Team | User + +""" +The connection type for RequestedReviewer. +""" +type RequestedReviewerConnection { + """ + A list of edges. + """ + edges: [RequestedReviewerEdge] + + """ + A list of nodes. + """ + nodes: [RequestedReviewer] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type RequestedReviewerEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: RequestedReviewer +} + +""" +Represents a type that can be required by a pull request for merging. +""" +interface RequirableByPullRequest { + """ + Whether this is required to pass before merging for a specific pull request. + """ + isRequired( + """ + The id of the pull request this is required for + """ + pullRequestId: ID + + """ + The number of the pull request this is required for + """ + pullRequestNumber: Int + ): Boolean! +} + +""" +Choose which environments must be successfully deployed to before refs can be pushed into a ref that matches this rule. +""" +type RequiredDeploymentsParameters { + """ + The environments that must be successfully deployed to before branches can be merged. + """ + requiredDeploymentEnvironments: [String!]! +} + +""" +Choose which environments must be successfully deployed to before refs can be pushed into a ref that matches this rule. +""" +input RequiredDeploymentsParametersInput { + """ + The environments that must be successfully deployed to before branches can be merged. + """ + requiredDeploymentEnvironments: [String!]! +} + +""" +Represents a required status check for a protected branch, but not any specific run of that check. +""" +type RequiredStatusCheckDescription { + """ + The App that must provide this status in order for it to be accepted. + """ + app: App + + """ + The name of this status. + """ + context: String! +} + +""" +Specifies the attributes for a new or updated required status check. +""" +input RequiredStatusCheckInput { + """ + The ID of the App that must set the status in order for it to be accepted. + Omit this value to use whichever app has recently been setting this status, or + use "any" to allow any app to set the status. + """ + appId: ID + + """ + Status check context that must pass for commits to be accepted to the matching branch. + """ + context: String! +} + +""" +Choose which status checks must pass before the ref is updated. When enabled, +commits must first be pushed to another ref where the checks pass. +""" +type RequiredStatusChecksParameters { + """ + Allow repositories and branches to be created if a check would otherwise prohibit it. + """ + doNotEnforceOnCreate: Boolean! + + """ + Status checks that are required. + """ + requiredStatusChecks: [StatusCheckConfiguration!]! + + """ + Whether pull requests targeting a matching branch must be tested with the + latest code. This setting will not take effect unless at least one status + check is enabled. + """ + strictRequiredStatusChecksPolicy: Boolean! +} + +""" +Choose which status checks must pass before the ref is updated. When enabled, +commits must first be pushed to another ref where the checks pass. +""" +input RequiredStatusChecksParametersInput { + """ + Allow repositories and branches to be created if a check would otherwise prohibit it. + """ + doNotEnforceOnCreate: Boolean + + """ + Status checks that are required. + """ + requiredStatusChecks: [StatusCheckConfigurationInput!]! + + """ + Whether pull requests targeting a matching branch must be tested with the + latest code. This setting will not take effect unless at least one status + check is enabled. + """ + strictRequiredStatusChecksPolicy: Boolean! +} + +""" +Autogenerated input type of RerequestCheckSuite +""" +input RerequestCheckSuiteInput { + """ + The Node ID of the check suite. + """ + checkSuiteId: ID! @possibleTypes(concreteTypes: ["CheckSuite"]) + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The Node ID of the repository. + """ + repositoryId: ID! @possibleTypes(concreteTypes: ["Repository"]) +} + +""" +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! @possibleTypes(concreteTypes: ["PullRequestReviewThread"]) +} + +""" +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! +} + +""" +Autogenerated input type of RetireSponsorsTier +""" +input RetireSponsorsTierInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the published tier to retire. + """ + tierId: ID! @possibleTypes(concreteTypes: ["SponsorsTier"]) +} + +""" +Autogenerated return type of RetireSponsorsTier. +""" +type RetireSponsorsTierPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The tier that was retired. + """ + sponsorsTier: SponsorsTier +} + +""" +Autogenerated input type of RevertPullRequest +""" +input RevertPullRequestInput { + """ + The description of the revert pull request. + """ + body: String + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Indicates whether the revert pull request should be a draft. + """ + draft: Boolean = false + + """ + The ID of the pull request to revert. + """ + pullRequestId: ID! @possibleTypes(concreteTypes: ["PullRequest"]) + + """ + The title of the revert pull request. + """ + title: String +} + +""" +Autogenerated return type of RevertPullRequest. +""" +type RevertPullRequestPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The pull request that was reverted. + """ + pullRequest: PullRequest + + """ + The new pull request that reverts the input pull request. + """ + revertPullRequest: PullRequest +} + +""" +A user, team, or app 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, team, or app. + """ + branchProtectionRule: BranchProtectionRule + + """ + The Node ID of the ReviewDismissalAllowance object + """ + id: ID! +} + +""" +Types that can be an actor. +""" +union ReviewDismissalAllowanceActor = App | 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 + + """ + The Node ID of the ReviewDismissedEvent object + """ + 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 + + """ + The Node ID of the ReviewRequest object + """ + 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! + + """ + The Node ID of the ReviewRequestRemovedEvent object + """ + 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! + + """ + The Node ID of the ReviewRequestedEvent object + """ + 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 +} + +""" +Autogenerated input type of RevokeEnterpriseOrganizationsMigratorRole +""" +input RevokeEnterpriseOrganizationsMigratorRoleInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the enterprise to which all organizations managed by it will be granted the migrator role. + """ + enterpriseId: ID! @possibleTypes(concreteTypes: ["Enterprise"]) + + """ + The login of the user to revoke the migrator role + """ + login: String! +} + +""" +Autogenerated return type of RevokeEnterpriseOrganizationsMigratorRole. +""" +type RevokeEnterpriseOrganizationsMigratorRolePayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The organizations that had the migrator role revoked for the given user. + """ + 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 +} + +""" +Autogenerated input type of RevokeMigratorRole +""" +input RevokeMigratorRoleInput { + """ + The user login or Team slug to revoke the migrator role from. + """ + actor: String! + + """ + Specifies the type of the actor, can be either USER or TEAM. + """ + actorType: ActorType! + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the organization that the user/team belongs to. + """ + organizationId: ID! @possibleTypes(concreteTypes: ["Organization"]) +} + +""" +Autogenerated return type of RevokeMigratorRole. +""" +type RevokeMigratorRolePayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Did the operation succeed? + """ + success: Boolean +} + +""" +Possible roles a user may have in relation to an organization. +""" +enum RoleInOrganization { + """ + A user who is a direct member of the organization. + """ + DIRECT_MEMBER + + """ + A user with full administrative access to the organization. + """ + OWNER + + """ + A user who is unaffiliated with the organization. + """ + UNAFFILIATED +} + +""" +The level of enforcement for a rule or ruleset. +""" +enum RuleEnforcement { + """ + Rules will be enforced + """ + ACTIVE + + """ + Do not evaluate or enforce rules + """ + DISABLED + + """ + Allow admins to test rules before enforcing them. Admins can view insights on + the Rule Insights page (`evaluate` is only available with GitHub Enterprise). + """ + EVALUATE +} + +""" +Types which can be parameters for `RepositoryRule` objects. +""" +union RuleParameters = + | BranchNamePatternParameters + | CodeScanningParameters + | CommitAuthorEmailPatternParameters + | CommitMessagePatternParameters + | CommitterEmailPatternParameters + | FileExtensionRestrictionParameters + | FilePathRestrictionParameters + | MaxFilePathLengthParameters + | MaxFileSizeParameters + | MergeQueueParameters + | PullRequestParameters + | RequiredDeploymentsParameters + | RequiredStatusChecksParameters + | TagNamePatternParameters + | UpdateParameters + | WorkflowsParameters + +""" +Specifies the parameters for a `RepositoryRule` object. Only one of the fields should be specified. +""" +input RuleParametersInput { + """ + Parameters used for the `branch_name_pattern` rule type + """ + branchNamePattern: BranchNamePatternParametersInput + + """ + Parameters used for the `code_scanning` rule type + """ + codeScanning: CodeScanningParametersInput + + """ + Parameters used for the `commit_author_email_pattern` rule type + """ + commitAuthorEmailPattern: CommitAuthorEmailPatternParametersInput + + """ + Parameters used for the `commit_message_pattern` rule type + """ + commitMessagePattern: CommitMessagePatternParametersInput + + """ + Parameters used for the `committer_email_pattern` rule type + """ + committerEmailPattern: CommitterEmailPatternParametersInput + + """ + Parameters used for the `file_extension_restriction` rule type + """ + fileExtensionRestriction: FileExtensionRestrictionParametersInput + + """ + Parameters used for the `file_path_restriction` rule type + """ + filePathRestriction: FilePathRestrictionParametersInput + + """ + Parameters used for the `max_file_path_length` rule type + """ + maxFilePathLength: MaxFilePathLengthParametersInput + + """ + Parameters used for the `max_file_size` rule type + """ + maxFileSize: MaxFileSizeParametersInput + + """ + Parameters used for the `merge_queue` rule type + """ + mergeQueue: MergeQueueParametersInput + + """ + Parameters used for the `pull_request` rule type + """ + pullRequest: PullRequestParametersInput + + """ + Parameters used for the `required_deployments` rule type + """ + requiredDeployments: RequiredDeploymentsParametersInput + + """ + Parameters used for the `required_status_checks` rule type + """ + requiredStatusChecks: RequiredStatusChecksParametersInput + + """ + Parameters used for the `tag_name_pattern` rule type + """ + tagNamePattern: TagNamePatternParametersInput + + """ + Parameters used for the `update` rule type + """ + update: UpdateParametersInput + + """ + Parameters used for the `workflows` rule type + """ + workflows: WorkflowsParametersInput +} + +""" +Types which can have `RepositoryRule` objects. +""" +union RuleSource = Organization | Repository + +""" +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 + + """ + The Node ID of the SavedReply object + """ + 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 + | Discussion + | Issue + | MarketplaceListing + | Organization + | PullRequest + | Repository + | User + +""" +A list of results that matched against a search query. Regardless of the number +of matches, a maximum of 1,000 results will be available across all types, +potentially split across many pages. +""" +type SearchResultItemConnection { + """ + The total number of pieces of code that matched the search query. Regardless + of the total number of matches, a maximum of 1,000 results will be available + across all types. + """ + codeCount: Int! + + """ + The total number of discussions that matched the search query. Regardless of + the total number of matches, a maximum of 1,000 results will be available + across all types. + """ + discussionCount: Int! + + """ + A list of edges. + """ + edges: [SearchResultItemEdge] + + """ + The total number of issues that matched the search query. Regardless of the + total number of matches, a maximum of 1,000 results will be available across all types. + """ + issueCount: Int! + + """ + A list of nodes. + """ + nodes: [SearchResultItem] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The total number of repositories that matched the search query. Regardless of + the total number of matches, a maximum of 1,000 results will be available + across all types. + """ + repositoryCount: Int! + + """ + The total number of users that matched the search query. Regardless of the + total number of matches, a maximum of 1,000 results will be available across all types. + """ + userCount: Int! + + """ + The total number of wiki pages that matched the search query. Regardless of + the total number of matches, a maximum of 1,000 results will be available + across all types. + """ + 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 matching discussions in repositories. + """ + DISCUSSION + + """ + 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 { + """ + The classification of the advisory + """ + classification: SecurityAdvisoryClassification! + + """ + The CVSS associated with this advisory + """ + cvss: CVSS! + + """ + CWEs associated with this Advisory + """ + cwes( + """ + 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 + ): CWEConnection! + + """ + 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! + + """ + The Node ID of the SecurityAdvisory object + """ + 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 + + """ + A list of advisory classifications to filter vulnerabilities by. + """ + classifications: [SecurityAdvisoryClassification!] + + """ + 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 +} + +""" +Classification of the advisory. +""" +enum SecurityAdvisoryClassification { + """ + Classification of general advisories. + """ + GENERAL + + """ + Classification of malware advisories. + """ + MALWARE +} + +""" +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 { + """ + GitHub Actions + """ + ACTIONS + + """ + PHP packages hosted at packagist.org + """ + COMPOSER + + """ + Erlang/Elixir packages hosted at hex.pm + """ + ERLANG + + """ + Go modules + """ + GO + + """ + 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 + + """ + Dart packages hosted at pub.dev + """ + PUB + + """ + Ruby gems hosted at RubyGems.org + """ + RUBYGEMS + + """ + Rust crates + """ + RUST + + """ + Swift packages + """ + SWIFT +} + +""" +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! @possibleTypes(concreteTypes: ["Enterprise"]) + + """ + 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! @possibleTypes(concreteTypes: ["Organization"]) +} + +""" +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! @possibleTypes(concreteTypes: ["Repository"]) +} + +""" +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! @possibleTypes(concreteTypes: ["User"]) +} + +""" +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! +} + +""" +Social media profile associated with a user. +""" +type SocialAccount { + """ + Name of the social media account as it appears on the profile. + """ + displayName: String! + + """ + Software or company that hosts the social media account. + """ + provider: SocialAccountProvider! + + """ + URL of the social media account. + """ + url: URI! +} + +""" +The connection type for SocialAccount. +""" +type SocialAccountConnection { + """ + A list of edges. + """ + edges: [SocialAccountEdge] + + """ + A list of nodes. + """ + nodes: [SocialAccount] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type SocialAccountEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: SocialAccount +} + +""" +Software or company that hosts social media accounts. +""" +enum SocialAccountProvider { + """ + Social media and networking website. + """ + FACEBOOK + + """ + Catch-all for social media providers that do not yet have specific handling. + """ + GENERIC + + """ + Fork of Mastodon with a greater focus on local posting. + """ + HOMETOWN + + """ + Social media website with a focus on photo and video sharing. + """ + INSTAGRAM + + """ + Professional networking website. + """ + LINKEDIN + + """ + Open-source federated microblogging service. + """ + MASTODON + + """ + JavaScript package registry. + """ + NPM + + """ + Social news aggregation and discussion website. + """ + REDDIT + + """ + Live-streaming service. + """ + TWITCH + + """ + Microblogging website. + """ + TWITTER + + """ + Online video platform. + """ + YOUTUBE +} + +""" +Entities that can sponsor others via GitHub Sponsors +""" +union Sponsor = Organization | User + +""" +A GitHub account and the total amount in USD they've paid for sponsorships to a +particular maintainer. Does not include payments made via Patreon. +""" +type SponsorAndLifetimeValue { + """ + The amount in cents. + """ + amountInCents: Int! + + """ + The amount in USD, formatted as a string. + """ + formattedAmount: String! + + """ + The sponsor's GitHub account. + """ + sponsor: Sponsorable! + + """ + The maintainer's GitHub account. + """ + sponsorable: Sponsorable! +} + +""" +The connection type for SponsorAndLifetimeValue. +""" +type SponsorAndLifetimeValueConnection { + """ + A list of edges. + """ + edges: [SponsorAndLifetimeValueEdge] + + """ + A list of nodes. + """ + nodes: [SponsorAndLifetimeValue] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type SponsorAndLifetimeValueEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: SponsorAndLifetimeValue +} + +""" +Ordering options for connections to get sponsor entities and associated USD amounts for GitHub Sponsors. +""" +input SponsorAndLifetimeValueOrder { + """ + The ordering direction. + """ + direction: OrderDirection! + + """ + The field to order results by. + """ + field: SponsorAndLifetimeValueOrderField! +} + +""" +Properties by which sponsor and lifetime value connections can be ordered. +""" +enum SponsorAndLifetimeValueOrderField { + """ + Order results by how much money the sponsor has paid in total. + """ + LIFETIME_VALUE + + """ + Order results by the sponsor's login (username). + """ + SPONSOR_LOGIN + + """ + Order results by the sponsor's relevance to the viewer. + """ + SPONSOR_RELEVANCE +} + +""" +A list of users and organizations sponsoring someone via GitHub Sponsors. +""" +type SponsorConnection { + """ + A list of edges. + """ + edges: [SponsorEdge] + + """ + A list of nodes. + """ + nodes: [Sponsor] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +Represents a user or organization who is sponsoring someone in GitHub Sponsors. +""" +type SponsorEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: Sponsor +} + +""" +Ordering options for connections to get sponsor entities for GitHub Sponsors. +""" +input SponsorOrder { + """ + The ordering direction. + """ + direction: OrderDirection! + + """ + The field to order sponsor entities by. + """ + field: SponsorOrderField! +} + +""" +Properties by which sponsor connections can be ordered. +""" +enum SponsorOrderField { + """ + Order sponsorable entities by login (username). + """ + LOGIN + + """ + Order sponsors by their relevance to the viewer. + """ + RELEVANCE +} + +""" +Entities that can sponsor or be sponsored through GitHub Sponsors. +""" +interface Sponsorable { + """ + The estimated next GitHub Sponsors payout for this user/organization in cents (USD). + """ + estimatedNextSponsorsPayoutInCents: Int! + + """ + True if this user/organization has a GitHub Sponsors listing. + """ + hasSponsorsListing: Boolean! + + """ + Whether 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! + + """ + Calculate how much each sponsor has ever paid total to this maintainer via + GitHub Sponsors. Does not include sponsorships paid via Patreon. + """ + lifetimeReceivedSponsorshipValues( + """ + 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 results returned from the connection. + """ + orderBy: SponsorAndLifetimeValueOrder = { + field: SPONSOR_LOGIN + direction: ASC + } + ): SponsorAndLifetimeValueConnection! + + """ + The estimated monthly GitHub Sponsors income for this user/organization in cents (USD). + """ + monthlyEstimatedSponsorsIncomeInCents: Int! + + """ + List of users and organizations this entity is sponsoring. + """ + sponsoring( + """ + 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 users and organizations returned from the connection. + """ + orderBy: SponsorOrder = { field: RELEVANCE, direction: DESC } + ): SponsorConnection! + + """ + List of sponsors for this user or organization. + """ + sponsors( + """ + 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 returned from the connection. + """ + orderBy: SponsorOrder = { field: RELEVANCE, direction: DESC } + + """ + If given, will filter for sponsors at the given tier. Will only return + sponsors whose tier the viewer is permitted to see. + """ + tierId: ID + ): SponsorConnection! + + """ + Events involving this sponsorable, such as new sponsorships. + """ + sponsorsActivities( + """ + Filter activities to only the specified actions. + """ + actions: [SponsorsActivityAction!] = [] + + """ + 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 include those events where this sponsorable acted as the sponsor. + Defaults to only including events where this sponsorable was the recipient + of a sponsorship. + """ + includeAsSponsor: Boolean = false + + """ + Whether or not to include private activities in the result set. Defaults to including public and private activities. + """ + includePrivate: Boolean = true + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for activity returned from the connection. + """ + orderBy: SponsorsActivityOrder = { field: TIMESTAMP, direction: DESC } + + """ + Filter activities returned to only those that occurred in the most recent + specified time period. Set to ALL to avoid filtering by when the activity + occurred. Will be ignored if `since` or `until` is given. + """ + period: SponsorsActivityPeriod = MONTH + + """ + Filter activities to those that occurred on or after this time. + """ + since: DateTime + + """ + Filter activities to those that occurred before this time. + """ + until: DateTime + ): SponsorsActivityConnection! + + """ + The GitHub Sponsors listing for this user or organization. + """ + sponsorsListing: SponsorsListing + + """ + The sponsorship from the viewer to this user/organization; that is, the sponsorship where you're the sponsor. + """ + sponsorshipForViewerAsSponsor( + """ + Whether to return the sponsorship only if it's still active. Pass false to + get the viewer's sponsorship back even if it has been cancelled. + """ + activeOnly: Boolean = true + ): Sponsorship + + """ + The sponsorship from this user/organization to the viewer; that is, the sponsorship you're receiving. + """ + sponsorshipForViewerAsSponsorable( + """ + Whether to return the sponsorship only if it's still active. Pass false to + get the sponsorship back even if it has been cancelled. + """ + activeOnly: Boolean = true + ): Sponsorship + + """ + List of sponsorship updates sent from this sponsorable to sponsors. + """ + sponsorshipNewsletters( + """ + 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 sponsorship updates returned from the connection. + """ + orderBy: SponsorshipNewsletterOrder = { field: CREATED_AT, direction: DESC } + ): SponsorshipNewsletterConnection! + + """ + The sponsorships where this user or organization is the maintainer receiving the funds. + """ + sponsorshipsAsMaintainer( + """ + Whether to include only sponsorships that are active right now, versus all + sponsorships this maintainer has ever received. + """ + activeOnly: Boolean = true + + """ + 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 sponsorships where this user or organization is the funder. + """ + sponsorshipsAsSponsor( + """ + Whether to include only sponsorships that are active right now, versus all sponsorships this sponsor has ever made. + """ + activeOnly: Boolean = true + + """ + 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 sponsorships returned to those for the specified maintainers. That + is, the recipient of the sponsorship is a user or organization with one of + the given logins. + """ + maintainerLogins: [String!] + + """ + 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 amount in United States cents (e.g., 500 = $5.00 USD) that this entity has + spent on GitHub to fund sponsorships. Only returns a value when viewed by the + user themselves or by a user who can manage sponsorships for the requested organization. + """ + totalSponsorshipAmountAsSponsorInCents( + """ + Filter payments to those that occurred on or after this time. + """ + since: DateTime + + """ + Filter payments to those made to the users or organizations with the specified usernames. + """ + sponsorableLogins: [String!] = [] + + """ + Filter payments to those that occurred before this time. + """ + until: DateTime + ): Int + + """ + 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 +} + +""" +An event related to sponsorship activity. +""" +type SponsorsActivity implements Node { + """ + What action this activity indicates took place. + """ + action: SponsorsActivityAction! + + """ + The sponsor's current privacy level. + """ + currentPrivacyLevel: SponsorshipPrivacy + + """ + The Node ID of the SponsorsActivity object + """ + id: ID! + + """ + The platform that was used to pay for the sponsorship. + """ + paymentSource: SponsorshipPaymentSource + + """ + The tier that the sponsorship used to use, for tier change events. + """ + previousSponsorsTier: SponsorsTier + + """ + The user or organization who triggered this activity and was/is sponsoring the sponsorable. + """ + sponsor: Sponsor + + """ + The user or organization that is being sponsored, the maintainer. + """ + sponsorable: Sponsorable! + + """ + The associated sponsorship tier. + """ + sponsorsTier: SponsorsTier + + """ + The timestamp of this event. + """ + timestamp: DateTime + + """ + Was this sponsorship made alongside other sponsorships at the same time from the same sponsor? + """ + viaBulkSponsorship: Boolean! +} + +""" +The possible actions that GitHub Sponsors activities can represent. +""" +enum SponsorsActivityAction { + """ + The activity was cancelling a sponsorship. + """ + CANCELLED_SPONSORSHIP + + """ + The activity was starting a sponsorship. + """ + NEW_SPONSORSHIP + + """ + The activity was scheduling a downgrade or cancellation. + """ + PENDING_CHANGE + + """ + The activity was funds being refunded to the sponsor or GitHub. + """ + REFUND + + """ + The activity was disabling matching for a previously matched sponsorship. + """ + SPONSOR_MATCH_DISABLED + + """ + The activity was changing the sponsorship tier, either directly by the sponsor or by a scheduled/pending change. + """ + TIER_CHANGE +} + +""" +The connection type for SponsorsActivity. +""" +type SponsorsActivityConnection { + """ + A list of edges. + """ + edges: [SponsorsActivityEdge] + + """ + A list of nodes. + """ + nodes: [SponsorsActivity] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type SponsorsActivityEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: SponsorsActivity +} + +""" +Ordering options for GitHub Sponsors activity connections. +""" +input SponsorsActivityOrder { + """ + The ordering direction. + """ + direction: OrderDirection! + + """ + The field to order activity by. + """ + field: SponsorsActivityOrderField! +} + +""" +Properties by which GitHub Sponsors activity connections can be ordered. +""" +enum SponsorsActivityOrderField { + """ + Order activities by when they happened. + """ + TIMESTAMP +} + +""" +The possible time periods for which Sponsors activities can be requested. +""" +enum SponsorsActivityPeriod { + """ + Don't restrict the activity to any date range, include all activity. + """ + ALL + + """ + The previous calendar day. + """ + DAY + + """ + The previous thirty days. + """ + MONTH + + """ + The previous seven days. + """ + WEEK +} + +""" +Represents countries or regions for billing and residence for a GitHub Sponsors profile. +""" +enum SponsorsCountryOrRegionCode { + """ + Andorra + """ + AD + + """ + United Arab Emirates + """ + AE + + """ + Afghanistan + """ + AF + + """ + Antigua and Barbuda + """ + AG + + """ + Anguilla + """ + AI + + """ + Albania + """ + AL + + """ + Armenia + """ + AM + + """ + Angola + """ + AO + + """ + Antarctica + """ + AQ + + """ + Argentina + """ + AR + + """ + American Samoa + """ + AS + + """ + Austria + """ + AT + + """ + Australia + """ + AU + + """ + Aruba + """ + AW + + """ + Åland + """ + AX + + """ + Azerbaijan + """ + AZ + + """ + Bosnia and Herzegovina + """ + BA + + """ + Barbados + """ + BB + + """ + Bangladesh + """ + BD + + """ + Belgium + """ + BE + + """ + Burkina Faso + """ + BF + + """ + Bulgaria + """ + BG + + """ + Bahrain + """ + BH + + """ + Burundi + """ + BI + + """ + Benin + """ + BJ + + """ + Saint Barthélemy + """ + BL + + """ + Bermuda + """ + BM + + """ + Brunei Darussalam + """ + BN + + """ + Bolivia + """ + BO + + """ + Bonaire, Sint Eustatius and Saba + """ + BQ + + """ + Brazil + """ + BR + + """ + Bahamas + """ + BS + + """ + Bhutan + """ + BT + + """ + Bouvet Island + """ + BV + + """ + Botswana + """ + BW + + """ + Belarus + """ + BY + + """ + Belize + """ + BZ + + """ + Canada + """ + CA + + """ + Cocos (Keeling) Islands + """ + CC + + """ + Congo (Kinshasa) + """ + CD + + """ + Central African Republic + """ + CF + + """ + Congo (Brazzaville) + """ + CG + + """ + Switzerland + """ + CH + + """ + Côte d'Ivoire + """ + CI + + """ + Cook Islands + """ + CK + + """ + Chile + """ + CL + + """ + Cameroon + """ + CM + + """ + China + """ + CN + + """ + Colombia + """ + CO + + """ + Costa Rica + """ + CR + + """ + Cape Verde + """ + CV + + """ + Curaçao + """ + CW + + """ + Christmas Island + """ + CX + + """ + Cyprus + """ + CY + + """ + Czech Republic + """ + CZ + + """ + Germany + """ + DE + + """ + Djibouti + """ + DJ + + """ + Denmark + """ + DK + + """ + Dominica + """ + DM + + """ + Dominican Republic + """ + DO + + """ + Algeria + """ + DZ + + """ + Ecuador + """ + EC + + """ + Estonia + """ + EE + + """ + Egypt + """ + EG + + """ + Western Sahara + """ + EH + + """ + Eritrea + """ + ER + + """ + Spain + """ + ES + + """ + Ethiopia + """ + ET + + """ + Finland + """ + FI + + """ + Fiji + """ + FJ + + """ + Falkland Islands + """ + FK + + """ + Micronesia + """ + FM + + """ + Faroe Islands + """ + FO + + """ + France + """ + FR + + """ + Gabon + """ + GA + + """ + United Kingdom + """ + GB + + """ + Grenada + """ + GD + + """ + Georgia + """ + GE + + """ + French Guiana + """ + GF + + """ + Guernsey + """ + GG + + """ + Ghana + """ + GH + + """ + Gibraltar + """ + GI + + """ + Greenland + """ + GL + + """ + Gambia + """ + GM + + """ + Guinea + """ + GN + + """ + Guadeloupe + """ + GP + + """ + Equatorial Guinea + """ + GQ + + """ + Greece + """ + GR + + """ + South Georgia and South Sandwich Islands + """ + GS + + """ + Guatemala + """ + GT + + """ + Guam + """ + GU + + """ + Guinea-Bissau + """ + GW + + """ + Guyana + """ + GY + + """ + Hong Kong + """ + HK + + """ + Heard and McDonald Islands + """ + HM + + """ + Honduras + """ + HN + + """ + Croatia + """ + HR + + """ + Haiti + """ + HT + + """ + Hungary + """ + HU + + """ + Indonesia + """ + ID + + """ + Ireland + """ + IE + + """ + Israel + """ + IL + + """ + Isle of Man + """ + IM + + """ + India + """ + IN + + """ + British Indian Ocean Territory + """ + IO + + """ + Iraq + """ + IQ + + """ + Iran + """ + IR + + """ + Iceland + """ + IS + + """ + Italy + """ + IT + + """ + Jersey + """ + JE + + """ + Jamaica + """ + JM + + """ + Jordan + """ + JO + + """ + Japan + """ + JP + + """ + Kenya + """ + KE + + """ + Kyrgyzstan + """ + KG + + """ + Cambodia + """ + KH + + """ + Kiribati + """ + KI + + """ + Comoros + """ + KM + + """ + Saint Kitts and Nevis + """ + KN + + """ + Korea, South + """ + KR + + """ + Kuwait + """ + KW + + """ + Cayman Islands + """ + KY + + """ + Kazakhstan + """ + KZ + + """ + Laos + """ + LA + + """ + Lebanon + """ + LB + + """ + Saint Lucia + """ + LC + + """ + Liechtenstein + """ + LI + + """ + Sri Lanka + """ + LK + + """ + Liberia + """ + LR + + """ + Lesotho + """ + LS + + """ + Lithuania + """ + LT + + """ + Luxembourg + """ + LU + + """ + Latvia + """ + LV + + """ + Libya + """ + LY + + """ + Morocco + """ + MA + + """ + Monaco + """ + MC + + """ + Moldova + """ + MD + + """ + Montenegro + """ + ME + + """ + Saint Martin (French part) + """ + MF + + """ + Madagascar + """ + MG + + """ + Marshall Islands + """ + MH + + """ + Macedonia + """ + MK + + """ + Mali + """ + ML + + """ + Myanmar + """ + MM + + """ + Mongolia + """ + MN + + """ + Macau + """ + MO + + """ + Northern Mariana Islands + """ + MP + + """ + Martinique + """ + MQ + + """ + Mauritania + """ + MR + + """ + Montserrat + """ + MS + + """ + Malta + """ + MT + + """ + Mauritius + """ + MU + + """ + Maldives + """ + MV + + """ + Malawi + """ + MW + + """ + Mexico + """ + MX + + """ + Malaysia + """ + MY + + """ + Mozambique + """ + MZ + + """ + Namibia + """ + NA + + """ + New Caledonia + """ + NC + + """ + Niger + """ + NE + + """ + Norfolk Island + """ + NF + + """ + Nigeria + """ + NG + + """ + Nicaragua + """ + NI + + """ + Netherlands + """ + NL + + """ + Norway + """ + NO + + """ + Nepal + """ + NP + + """ + Nauru + """ + NR + + """ + Niue + """ + NU + + """ + New Zealand + """ + NZ + + """ + Oman + """ + OM + + """ + Panama + """ + PA + + """ + Peru + """ + PE + + """ + French Polynesia + """ + PF + + """ + Papua New Guinea + """ + PG + + """ + Philippines + """ + PH + + """ + Pakistan + """ + PK + + """ + Poland + """ + PL + + """ + Saint Pierre and Miquelon + """ + PM + + """ + Pitcairn + """ + PN + + """ + Puerto Rico + """ + PR + + """ + Palestine + """ + PS + + """ + Portugal + """ + PT + + """ + Palau + """ + PW + + """ + Paraguay + """ + PY + + """ + Qatar + """ + QA + + """ + Reunion + """ + RE + + """ + Romania + """ + RO + + """ + Serbia + """ + RS + + """ + Russian Federation + """ + RU + + """ + Rwanda + """ + RW + + """ + Saudi Arabia + """ + SA + + """ + Solomon Islands + """ + SB + + """ + Seychelles + """ + SC + + """ + Sudan + """ + SD + + """ + Sweden + """ + SE + + """ + Singapore + """ + SG + + """ + Saint Helena + """ + SH + + """ + Slovenia + """ + SI + + """ + Svalbard and Jan Mayen Islands + """ + SJ + + """ + Slovakia + """ + SK + + """ + Sierra Leone + """ + SL + + """ + San Marino + """ + SM + + """ + Senegal + """ + SN + + """ + Somalia + """ + SO + + """ + Suriname + """ + SR + + """ + South Sudan + """ + SS + + """ + Sao Tome and Principe + """ + ST + + """ + El Salvador + """ + SV + + """ + Sint Maarten (Dutch part) + """ + SX + + """ + Swaziland + """ + SZ + + """ + Turks and Caicos Islands + """ + TC + + """ + Chad + """ + TD + + """ + French Southern Lands + """ + TF + + """ + Togo + """ + TG + + """ + Thailand + """ + TH + + """ + Tajikistan + """ + TJ + + """ + Tokelau + """ + TK + + """ + Timor-Leste + """ + TL + + """ + Turkmenistan + """ + TM + + """ + Tunisia + """ + TN + + """ + Tonga + """ + TO + + """ + Türkiye + """ + TR + + """ + Trinidad and Tobago + """ + TT + + """ + Tuvalu + """ + TV + + """ + Taiwan + """ + TW + + """ + Tanzania + """ + TZ + + """ + Ukraine + """ + UA + + """ + Uganda + """ + UG + + """ + United States Minor Outlying Islands + """ + UM + + """ + United States of America + """ + US + + """ + Uruguay + """ + UY + + """ + Uzbekistan + """ + UZ + + """ + Vatican City + """ + VA + + """ + Saint Vincent and the Grenadines + """ + VC + + """ + Venezuela + """ + VE + + """ + Virgin Islands, British + """ + VG + + """ + Virgin Islands, U.S. + """ + VI + + """ + Vietnam + """ + VN + + """ + Vanuatu + """ + VU + + """ + Wallis and Futuna Islands + """ + WF + + """ + Samoa + """ + WS + + """ + Yemen + """ + YE + + """ + Mayotte + """ + YT + + """ + South Africa + """ + ZA + + """ + Zambia + """ + ZM + + """ + Zimbabwe + """ + ZW +} + +""" +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 an amount in USD 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 amount in USD 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 + + """ + The Stripe Connect account currently in use for payouts for this Sponsors + listing, if any. Will only return a value when queried by the maintainer + themselves, or by an admin of the sponsorable organization. + """ + activeStripeConnectAccount: StripeConnectAccount + + """ + The name of the country or region with the maintainer's bank account or fiscal + host. Will only return a value when queried by the maintainer themselves, or + by an admin of the sponsorable organization. + """ + billingCountryOrRegion: String + + """ + The email address used by GitHub to contact the sponsorable about their GitHub + Sponsors profile. Will only return a value when queried by the maintainer + themselves, or by an admin of the sponsorable organization. + """ + contactEmailAddress: String + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + The HTTP path for the Sponsors dashboard for this Sponsors listing. + """ + dashboardResourcePath: URI! + + """ + The HTTP URL for the Sponsors dashboard for this Sponsors listing. + """ + dashboardUrl: URI! + + """ + The records featured on the GitHub Sponsors profile. + """ + featuredItems( + """ + The types of featured items to return. + """ + featureableTypes: [SponsorsListingFeaturedItemFeatureableType!] = [ + REPOSITORY + USER + ] + ): [SponsorsListingFeaturedItem!]! + + """ + The fiscal host used for payments, if any. Will only return a value when + queried by the maintainer themselves, or by an admin of the sponsorable organization. + """ + fiscalHost: Organization + + """ + The full description of the listing. + """ + fullDescription: String! + + """ + The full description of the listing rendered to HTML. + """ + fullDescriptionHTML: HTML! + + """ + The Node ID of the SponsorsListing object + """ + id: ID! + + """ + Whether this listing is publicly visible. + """ + isPublic: Boolean! + + """ + The listing's full name. + """ + name: String! + + """ + A future date on which this listing is eligible to receive a payout. + """ + nextPayoutDate: Date + + """ + The name of the country or region where the maintainer resides. Will only + return a value when queried by the maintainer themselves, or by an admin of + the sponsorable organization. + """ + residenceCountryOrRegion: String + + """ + The HTTP path for this Sponsors listing. + """ + resourcePath: URI! + + """ + The short description of the listing. + """ + shortDescription: String! + + """ + The short name of the listing. + """ + slug: String! + + """ + The entity this listing represents who can be sponsored on GitHub Sponsors. + """ + sponsorable: Sponsorable! + + """ + The tiers for this GitHub Sponsors profile. + """ + 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 + + """ + Whether to include tiers that aren't published. Only admins of the Sponsors + listing can see draft tiers. Only admins of the Sponsors listing and viewers + who are currently sponsoring on a retired tier can see those retired tiers. + Defaults to including only published tiers, which are visible to anyone who + can see the GitHub Sponsors profile. + """ + includeUnpublished: Boolean = false + + """ + 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 + + """ + The HTTP URL for this Sponsors listing. + """ + url: URI! +} + +""" +A record that can be featured on a GitHub Sponsors profile. +""" +union SponsorsListingFeatureableItem = Repository | User + +""" +A record that is promoted on a GitHub Sponsors profile. +""" +type SponsorsListingFeaturedItem implements Node { + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + Will either be a description from the sponsorable maintainer about why they + featured this item, or the item's description itself, such as a user's bio + from their GitHub profile page. + """ + description: String + + """ + The record that is featured on the GitHub Sponsors profile. + """ + featureable: SponsorsListingFeatureableItem! + + """ + The Node ID of the SponsorsListingFeaturedItem object + """ + id: ID! + + """ + The position of this featured item on the GitHub Sponsors profile with a lower + position indicating higher precedence. Starts at 1. + """ + position: Int! + + """ + The GitHub Sponsors profile that features this record. + """ + sponsorsListing: SponsorsListing! + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! +} + +""" +The different kinds of records that can be featured on a GitHub Sponsors profile page. +""" +enum SponsorsListingFeaturedItemFeatureableType { + """ + A repository owned by the user or organization with the GitHub Sponsors profile. + """ + REPOSITORY + + """ + A user who belongs to the organization with the GitHub Sponsors profile. + """ + USER +} + +""" +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 + + """ + Get a different tier for this tier's maintainer that is at the same frequency + as this tier but with an equal or lesser cost. Returns the published tier with + the monthly price closest to this tier's without going over. + """ + closestLesserValueTier: SponsorsTier + + """ + 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! + + """ + The Node ID of the SponsorsTier object + """ + id: ID! + + """ + Whether this tier was chosen at checkout time by the sponsor rather than + defined ahead of time by the maintainer who manages the Sponsors listing. + """ + isCustomAmount: Boolean! + + """ + Whether this tier is only for use with one-time sponsorships. + """ + isOneTime: Boolean! + + """ + How much this tier costs per month in cents. + """ + monthlyPriceInCents: Int! + + """ + How much this tier costs per month in USD. + """ + 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 { + """ + Indicates whether this tier is still a work in progress by the sponsorable and + not yet published to the associated GitHub Sponsors profile. Draft tiers + cannot be used for new sponsorships and will not be in use on existing + sponsorships. Draft tiers cannot be seen by anyone but the admins of the + GitHub Sponsors profile. + """ + isDraft: Boolean! + + """ + Indicates whether this tier is published to the associated GitHub Sponsors + profile. Published tiers are visible to anyone who can see the GitHub Sponsors + profile, and are available for use in sponsorships if the GitHub Sponsors + profile is publicly visible. + """ + isPublished: Boolean! + + """ + Indicates whether this tier has been retired from the associated GitHub + Sponsors profile. Retired tiers are no longer shown on the GitHub Sponsors + profile and cannot be chosen for new sponsorships. Existing sponsorships may + still use retired tiers if the sponsor selected the tier before it was retired. + """ + isRetired: Boolean! + + """ + The sponsorships using 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 return private sponsorships using this tier. Defaults to + only returning public sponsorships on this tier. + """ + 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! + + """ + The Node ID of the Sponsorship object + """ + id: ID! + + """ + Whether the sponsorship is active. False implies the sponsor is a past sponsor + of the maintainer, while true implies they are a current sponsor. + """ + isActive: Boolean! + + """ + Whether this sponsorship represents a one-time payment versus a recurring sponsorship. + """ + isOneTimePayment: Boolean! + + """ + Whether the sponsor has chosen to receive sponsorship update emails sent from + the sponsorable. Only returns a non-null value when the viewer has permission to know this. + """ + isSponsorOptedIntoEmail: Boolean + + """ + 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 platform that was most recently used to pay for the sponsorship. + """ + paymentSource: SponsorshipPaymentSource + + """ + 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 + + """ + Identifies the date and time when the current tier was chosen for this sponsorship. + """ + tierSelectedAt: DateTime +} + +""" +A list of sponsorships either from the subject or received by the subject. +""" +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! + + """ + The total amount in cents of all recurring sponsorships in the connection + whose amount you can view. Does not include one-time sponsorships. + """ + totalRecurringMonthlyPriceInCents: Int! + + """ + The total amount in USD of all recurring sponsorships in the connection whose + amount you can view. Does not include one-time sponsorships. + """ + totalRecurringMonthlyPriceInDollars: 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 +} + +""" +An update sent to sponsors of a user or organization on GitHub Sponsors. +""" +type SponsorshipNewsletter implements Node { + """ + The author of the newsletter. + """ + author: User + + """ + The contents of the newsletter, the message the sponsorable wanted to give. + """ + body: String! + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + The Node ID of the SponsorshipNewsletter object + """ + id: ID! + + """ + Indicates if the newsletter has been made available to sponsors. + """ + isPublished: Boolean! + + """ + The user or organization this newsletter is from. + """ + sponsorable: Sponsorable! + + """ + The subject of the newsletter, what it's about. + """ + subject: String! + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! +} + +""" +The connection type for SponsorshipNewsletter. +""" +type SponsorshipNewsletterConnection { + """ + A list of edges. + """ + edges: [SponsorshipNewsletterEdge] + + """ + A list of nodes. + """ + nodes: [SponsorshipNewsletter] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type SponsorshipNewsletterEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: SponsorshipNewsletter +} + +""" +Ordering options for sponsorship newsletter connections. +""" +input SponsorshipNewsletterOrder { + """ + The ordering direction. + """ + direction: OrderDirection! + + """ + The field to order sponsorship newsletters by. + """ + field: SponsorshipNewsletterOrderField! +} + +""" +Properties by which sponsorship update connections can be ordered. +""" +enum SponsorshipNewsletterOrderField { + """ + Order sponsorship newsletters by when they were created. + """ + CREATED_AT +} + +""" +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 +} + +""" +How payment was made for funding a GitHub Sponsors sponsorship. +""" +enum SponsorshipPaymentSource { + """ + Payment was made through GitHub. + """ + GITHUB + + """ + Payment was made through Patreon. + """ + PATREON +} + +""" +The privacy of a sponsorship +""" +enum SponsorshipPrivacy { + """ + Private + """ + PRIVATE + + """ + Public + """ + PUBLIC +} + +""" +The possible default commit messages for squash merges. +""" +enum SquashMergeCommitMessage { + """ + Default to a blank commit message. + """ + BLANK + + """ + Default to the branch's commit messages. + """ + COMMIT_MESSAGES + + """ + Default to the pull request's body. + """ + PR_BODY +} + +""" +The possible default commit titles for squash merges. +""" +enum SquashMergeCommitTitle { + """ + Default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + """ + COMMIT_OR_PR_TITLE + + """ + Default to the pull request's title. + """ + PR_TITLE +} + +""" +Represents an SSH signature on a Commit or Tag. +""" +type SshSignature implements GitSignature { + """ + Email used to sign this object. + """ + email: String! + + """ + True if the signature is valid and verified by GitHub. + """ + isValid: Boolean! + + """ + Hex-encoded fingerprint of the key that signed this object. + """ + keyFingerprint: 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! +} + +""" +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 { + """ + The Node ID of the Starrable object + """ + 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! +} + +""" +Autogenerated input type of StartOrganizationMigration +""" +input StartOrganizationMigrationInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The migration source access token. + """ + sourceAccessToken: String! + + """ + The URL of the organization to migrate. + """ + sourceOrgUrl: URI! + + """ + The ID of the enterprise the target organization belongs to. + """ + targetEnterpriseId: ID! @possibleTypes(concreteTypes: ["Enterprise"]) + + """ + The name of the target organization. + """ + targetOrgName: String! +} + +""" +Autogenerated return type of StartOrganizationMigration. +""" +type StartOrganizationMigrationPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The new organization migration. + """ + orgMigration: OrganizationMigration +} + +""" +Autogenerated input type of StartRepositoryMigration +""" +input StartRepositoryMigrationInput { + """ + The migration source access token. + """ + accessToken: String + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Whether to continue the migration on error. Defaults to `true`. + """ + continueOnError: Boolean + + """ + The signed URL to access the user-uploaded git archive. + """ + gitArchiveUrl: String + + """ + The GitHub personal access token of the user importing to the target repository. + """ + githubPat: String + + """ + Whether to lock the source repository. + """ + lockSource: Boolean + + """ + The signed URL to access the user-uploaded metadata archive. + """ + metadataArchiveUrl: String + + """ + The ID of the organization that will own the imported repository. + """ + ownerId: ID! @possibleTypes(concreteTypes: ["Organization"]) + + """ + The name of the imported repository. + """ + repositoryName: String! + + """ + Whether to skip migrating releases for the repository. + """ + skipReleases: Boolean + + """ + The ID of the migration source. + """ + sourceId: ID! @possibleTypes(concreteTypes: ["MigrationSource"]) + + """ + The URL of the source repository. + """ + sourceRepositoryUrl: URI! + + """ + The visibility of the imported repository. + """ + targetRepoVisibility: String +} + +""" +Autogenerated return type of StartRepositoryMigration. +""" +type StartRepositoryMigrationPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The new repository migration. + """ + repositoryMigration: RepositoryMigration +} + +""" +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!]! + + """ + The Node ID of the Status object + """ + id: ID! + + """ + The combined commit status. + """ + state: StatusState! +} + +""" +Required status check +""" +type StatusCheckConfiguration { + """ + The status check context name that must be present on the commit. + """ + context: String! + + """ + The optional integration ID that this status check must originate from. + """ + integrationId: Int +} + +""" +Required status check +""" +input StatusCheckConfigurationInput { + """ + The status check context name that must be present on the commit. + """ + context: String! + + """ + The optional integration ID that this status check must originate from. + """ + integrationId: Int +} + +""" +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! + + """ + The Node ID of the StatusCheckRollup object + """ + 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 { + """ + The number of check runs in this rollup. + """ + checkRunCount: Int! + + """ + Counts of check runs by state. + """ + checkRunCountsByState: [CheckRunStateCount!] + + """ + A list of edges. + """ + edges: [StatusCheckRollupContextEdge] + + """ + A list of nodes. + """ + nodes: [StatusCheckRollupContext] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The number of status contexts in this rollup. + """ + statusContextCount: Int! + + """ + Counts of status contexts by state. + """ + statusContextCountsByState: [StatusContextStateCount!] + + """ + 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 & RequirableByPullRequest { + """ + 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 + + """ + The Node ID of the StatusContext object + """ + id: ID! + + """ + Whether this is required to pass before merging for a specific pull request. + """ + isRequired( + """ + The id of the pull request this is required for + """ + pullRequestId: ID + + """ + The number of the pull request this is required for + """ + pullRequestNumber: Int + ): Boolean! + + """ + The state of this status context. + """ + state: StatusState! + + """ + The URL for this status context. + """ + targetUrl: URI +} + +""" +Represents a count of the state of a status context. +""" +type StatusContextStateCount { + """ + The number of statuses with this state. + """ + count: Int! + + """ + The state of a status context. + """ + state: StatusState! +} + +""" +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 +} + +""" +A Stripe Connect account for receiving sponsorship funds from GitHub Sponsors. +""" +type StripeConnectAccount { + """ + The account number used to identify this Stripe Connect account. + """ + accountId: String! + + """ + The name of the country or region of an external account, such as a bank + account, tied to the Stripe Connect account. Will only return a value when + queried by the maintainer of the associated GitHub Sponsors profile + themselves, or by an admin of the sponsorable organization. + """ + billingCountryOrRegion: String + + """ + The name of the country or region of the Stripe Connect account. Will only + return a value when queried by the maintainer of the associated GitHub + Sponsors profile themselves, or by an admin of the sponsorable organization. + """ + countryOrRegion: String + + """ + Whether this Stripe Connect account is currently in use for the associated GitHub Sponsors profile. + """ + isActive: Boolean! + + """ + The GitHub Sponsors profile associated with this Stripe Connect account. + """ + sponsorsListing: SponsorsListing! + + """ + The URL to access this Stripe Connect account on Stripe's website. + """ + stripeDashboardUrl: URI! +} + +""" +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 @possibleTypes(concreteTypes: ["PullRequest"]) + + """ + The Pull Request Review ID to submit. + """ + pullRequestReviewId: ID @possibleTypes(concreteTypes: ["PullRequestReview"]) +} + +""" +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 name of the submodule in .gitmodules (Base64-encoded) + """ + nameRaw: Base64String! + + """ + The path in the superproject that this submodule is located in + """ + path: String! + + """ + The path in the superproject that this submodule is located in (Base64-encoded) + """ + pathRaw: Base64String! + + """ + 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 { + """ + The Node ID of the Subscribable object + """ + 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 +} + +""" +Entities that can be subscribed to for web and email notifications. +""" +interface SubscribableThread { + """ + The Node ID of the SubscribableThread object + """ + id: ID! + + """ + Identifies the viewer's thread subscription form action. + """ + viewerThreadSubscriptionFormAction: ThreadSubscriptionFormAction + + """ + Identifies the viewer's thread subscription status. + """ + viewerThreadSubscriptionStatus: ThreadSubscriptionState +} + +""" +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! + + """ + The Node ID of the SubscribedEvent object + """ + 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! + + """ + The Node ID of the Tag object + """ + 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! +} + +""" +Parameters to be used for the tag_name_pattern rule +""" +type TagNamePatternParameters { + """ + How this rule will appear to users. + """ + name: String + + """ + If true, the rule will fail if the pattern matches. + """ + negate: Boolean! + + """ + The operator to use for matching. + """ + operator: String! + + """ + The pattern to match with. + """ + pattern: String! +} + +""" +Parameters to be used for the tag_name_pattern rule +""" +input TagNamePatternParametersInput { + """ + How this rule will appear to users. + """ + name: String + + """ + If true, the rule will fail if the pattern matches. + """ + negate: Boolean + + """ + The operator to use for matching. + """ + operator: String! + + """ + The pattern to match with. + """ + pattern: String! +} + +""" +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! + + """ + The Node ID of the Team object + """ + 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 notification setting that the team has set. + """ + notificationSetting: TeamNotificationSetting! + + """ + 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! + + """ + Finds and returns the project according to the provided project number. + """ + projectV2( + """ + The Project number. + """ + number: Int! + ): ProjectV2 + + """ + List of projects this team has collaborator access to. + """ + projectsV2( + """ + 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 projects returned from this connection + """ + filterBy: ProjectV2Filters = {} + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Filter projects based on user role. + """ + minPermissionLevel: ProjectV2PermissionLevel = READ + + """ + How to order the returned projects. + """ + orderBy: ProjectV2Order = { field: NUMBER, direction: DESC } + + """ + The query to search projects by. + """ + query: String = "" + ): ProjectV2Connection! + + """ + 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. Repositories will be returned where the name contains your search string. + """ + 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! + + """ + What algorithm is used for review assignment for this team + """ + reviewRequestDelegationAlgorithm: TeamReviewAssignmentAlgorithm + + """ + True if review assignment is enabled for this team + """ + reviewRequestDelegationEnabled: Boolean! + + """ + How many team members are required for review assignment for this team + """ + reviewRequestDelegationMemberCount: Int + + """ + When assigning team members via delegation, whether the entire team should be notified as well. + """ + reviewRequestDelegationNotifyTeam: Boolean! + + """ + 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! + + """ + The Node ID of the TeamAddMemberAuditEntry object + """ + 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! + + """ + The Node ID of the TeamAddRepositoryAuditEntry object + """ + 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! + + """ + The Node ID of the TeamChangeParentTeamAuditEntry object + """ + 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! + @deprecated( + reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC." + ) + + """ + 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! + @deprecated( + reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC." + ) + + """ + 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! + @deprecated( + reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC." + ) + + """ + The HTTP path for discussion comments + """ + commentsResourcePath: URI! + @deprecated( + reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC." + ) + + """ + The HTTP URL for discussion comments + """ + commentsUrl: URI! + @deprecated( + reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC." + ) + + """ + 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 Node ID of the TeamDiscussion object + """ + 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! + @deprecated( + reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC." + ) + + """ + Whether or not the discussion is only visible to team members and organization owners. + """ + isPrivate: Boolean! + @deprecated( + reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC." + ) + + """ + The moment the editor made the last edit + """ + lastEditedAt: DateTime + + """ + Identifies the discussion within its team. + """ + number: Int! + @deprecated( + reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC." + ) + + """ + 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! + @deprecated( + reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC." + ) + + """ + The team that defines the context of this discussion. + """ + team: Team! + @deprecated( + reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC." + ) + + """ + The title of the discussion + """ + title: String! + @deprecated( + reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC." + ) + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! + + """ + The HTTP URL for this discussion + """ + url: URI! + @deprecated( + reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC." + ) + + """ + 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! + @deprecated( + reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC." + ) + + """ + 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! + @deprecated( + reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC." + ) + + """ + 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! + @deprecated( + reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC." + ) + + """ + 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! + @deprecated( + reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC." + ) + + """ + The actor who edited the comment. + """ + editor: Actor + + """ + The Node ID of the TeamDiscussionComment object + """ + 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! + @deprecated( + reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC." + ) + + """ + 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! + @deprecated( + reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC." + ) + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! + + """ + The HTTP URL for this comment + """ + url: URI! + @deprecated( + reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC." + ) + + """ + 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 +} + +""" +The possible team notification values. +""" +enum TeamNotificationSetting { + """ + No one will receive notifications. + """ + NOTIFICATIONS_DISABLED + + """ + Everyone will receive notifications when the team is @mentioned. + """ + NOTIFICATIONS_ENABLED +} + +""" +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! + + """ + The Node ID of the TeamRemoveMemberAuditEntry object + """ + 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! + + """ + The Node ID of the TeamRemoveRepositoryAuditEntry object + """ + 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 possible team review assignment algorithms +""" +enum TeamReviewAssignmentAlgorithm { + """ + Balance review load across the entire team + """ + LOAD_BALANCE + + """ + Alternate reviews between each team member + """ + ROUND_ROBIN +} + +""" +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! +} + +""" +The possible states of a thread subscription form action +""" +enum ThreadSubscriptionFormAction { + """ + The User cannot subscribe or unsubscribe to the thread + """ + NONE + + """ + The User can subscribe to the thread + """ + SUBSCRIBE + + """ + The User can unsubscribe to the thread + """ + UNSUBSCRIBE +} + +""" +The possible states of a subscription. +""" +enum ThreadSubscriptionState { + """ + The subscription status is currently disabled. + """ + DISABLED + + """ + The User is never notified because they are ignoring the list + """ + IGNORING_LIST + + """ + The User is never notified because they are ignoring the thread + """ + IGNORING_THREAD + + """ + The User is not recieving notifications from this thread + """ + NONE + + """ + The User is notified becuase they are watching the list + """ + SUBSCRIBED_TO_LIST + + """ + The User is notified because they are subscribed to the thread + """ + SUBSCRIBED_TO_THREAD + + """ + The User is notified because they chose custom settings for this thread. + """ + SUBSCRIBED_TO_THREAD_EVENTS + + """ + The User is notified because they chose custom settings for this thread. + """ + SUBSCRIBED_TO_THREAD_TYPE + + """ + The subscription status is currently unavailable. + """ + UNAVAILABLE +} + +""" +A topic aggregates entities that are related to a subject. +""" +type Topic implements Node & Starrable { + """ + The Node ID of the Topic object + """ + 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!]! + + """ + A list of repositories. + """ + 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 have issues enabled + """ + hasIssuesEnabled: 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. Internal + repositories are considered private; consider using the visibility argument + if only internal repositories are needed. Cannot be combined with the + visibility argument. + """ + privacy: RepositoryPrivacy + + """ + If true, only repositories whose owner can be sponsored via GitHub Sponsors will be returned. + """ + sponsorableOnly: Boolean = false + + """ + If non-null, filters repositories according to visibility. Cannot be combined with the privacy argument. + """ + visibility: RepositoryVisibility + ): RepositoryConnection! + + """ + 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 + @deprecated( + reason: "Suggested topics are no longer supported Removal on 2024-04-01 UTC." + ) + + """ + The viewer does not like the suggested topic. + """ + PERSONAL_PREFERENCE + @deprecated( + reason: "Suggested topics are no longer supported Removal on 2024-04-01 UTC." + ) + + """ + The suggested topic is too general for the repository. + """ + TOO_GENERAL + @deprecated( + reason: "Suggested topics are no longer supported Removal on 2024-04-01 UTC." + ) + + """ + The suggested topic is too specific for the repository (e.g. #ruby-on-rails-version-4-2-1). + """ + TOO_SPECIFIC + @deprecated( + reason: "Suggested topics are no longer supported Removal on 2024-04-01 UTC." + ) +} + +""" +The possible states of a tracked issue. +""" +enum TrackedIssueStates { + """ + The tracked issue is closed + """ + CLOSED + + """ + The tracked issue is open + """ + OPEN +} + +""" +Autogenerated input type of TransferEnterpriseOrganization +""" +input TransferEnterpriseOrganizationInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the enterprise where the organization should be transferred. + """ + destinationEnterpriseId: ID! @possibleTypes(concreteTypes: ["Enterprise"]) + + """ + The ID of the organization to transfer. + """ + organizationId: ID! @possibleTypes(concreteTypes: ["Organization"]) +} + +""" +Autogenerated return type of TransferEnterpriseOrganization. +""" +type TransferEnterpriseOrganizationPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The organization for which a transfer was initiated. + """ + organization: Organization +} + +""" +Autogenerated input type of TransferIssue +""" +input TransferIssueInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Whether to create labels if they don't exist in the target repository (matched by name) + """ + createLabelsIfMissing: Boolean = false + + """ + The Node ID of the issue to be transferred + """ + issueId: ID! @possibleTypes(concreteTypes: ["Issue"]) + + """ + The Node ID of the repository the issue should be transferred to + """ + repositoryId: ID! @possibleTypes(concreteTypes: ["Repository"]) +} + +""" +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 + + """ + The Node ID of the TransferredEvent object + """ + 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!] + + """ + The Node ID of the Tree object + """ + 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! + + """ + The programming language this file is written in. + """ + language: Language + + """ + Number of lines in the file. + """ + lineCount: Int + + """ + Entry file mode. + """ + mode: Int! + + """ + Entry file name. + """ + name: String! + + """ + Entry file name. (Base64-encoded) + """ + nameRaw: Base64String! + + """ + Entry file object. + """ + object: GitObject + + """ + Entry file Git object ID. + """ + oid: GitObjectID! + + """ + The full path of the file. + """ + path: String + + """ + The full path of the file. (Base64-encoded) + """ + pathRaw: Base64String + + """ + The Repository the tree entry belongs to + """ + repository: Repository! + + """ + Entry byte size + """ + size: Int! + + """ + 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 UnarchiveProjectV2Item +""" +input UnarchiveProjectV2ItemInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the ProjectV2Item to unarchive. + """ + itemId: ID! @possibleTypes(concreteTypes: ["ProjectV2Item"]) + + """ + The ID of the Project to archive the item from. + """ + projectId: ID! @possibleTypes(concreteTypes: ["ProjectV2"]) +} + +""" +Autogenerated return type of UnarchiveProjectV2Item. +""" +type UnarchiveProjectV2ItemPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The item unarchived from the project. + """ + item: ProjectV2Item +} + +""" +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! @possibleTypes(concreteTypes: ["Repository"]) +} + +""" +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! + + """ + The Node ID of the UnassignedEvent object + """ + 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 UnfollowOrganization +""" +input UnfollowOrganizationInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + ID of the organization to unfollow. + """ + organizationId: ID! @possibleTypes(concreteTypes: ["Organization"]) +} + +""" +Autogenerated return type of UnfollowOrganization. +""" +type UnfollowOrganizationPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The organization that was unfollowed. + """ + organization: Organization +} + +""" +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! @possibleTypes(concreteTypes: ["User"]) +} + +""" +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! + + """ + The Node ID of the UnlabeledEvent object + """ + 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 UnlinkProjectV2FromRepository +""" +input UnlinkProjectV2FromRepositoryInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the project to unlink from the repository. + """ + projectId: ID! @possibleTypes(concreteTypes: ["ProjectV2"]) + + """ + The ID of the repository to unlink from the project. + """ + repositoryId: ID! @possibleTypes(concreteTypes: ["Repository"]) +} + +""" +Autogenerated return type of UnlinkProjectV2FromRepository. +""" +type UnlinkProjectV2FromRepositoryPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The repository the project is no longer linked to. + """ + repository: Repository +} + +""" +Autogenerated input type of UnlinkProjectV2FromTeam +""" +input UnlinkProjectV2FromTeamInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the project to unlink from the team. + """ + projectId: ID! @possibleTypes(concreteTypes: ["ProjectV2"]) + + """ + The ID of the team to unlink from the project. + """ + teamId: ID! @possibleTypes(concreteTypes: ["Team"]) +} + +""" +Autogenerated return type of UnlinkProjectV2FromTeam. +""" +type UnlinkProjectV2FromTeamPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The team the project is unlinked from + """ + team: Team +} + +""" +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! @possibleTypes(concreteTypes: ["Project"]) + + """ + The ID of the Repository linked to the Project. + """ + repositoryId: ID! @possibleTypes(concreteTypes: ["Repository"]) +} + +""" +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! + @possibleTypes( + concreteTypes: ["Discussion", "Issue", "PullRequest"] + abstractType: "Lockable" + ) +} + +""" +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! + + """ + The Node ID of the UnlockedEvent object + """ + id: ID! + + """ + Object that was unlocked. + """ + lockable: Lockable! +} + +""" +Autogenerated input type of UnmarkDiscussionCommentAsAnswer +""" +input UnmarkDiscussionCommentAsAnswerInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The Node ID of the discussion comment to unmark as an answer. + """ + id: ID! @possibleTypes(concreteTypes: ["DiscussionComment"]) +} + +""" +Autogenerated return type of UnmarkDiscussionCommentAsAnswer. +""" +type UnmarkDiscussionCommentAsAnswerPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The discussion that includes the comment. + """ + discussion: Discussion +} + +""" +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! @possibleTypes(concreteTypes: ["PullRequest"]) +} + +""" +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! + @possibleTypes( + concreteTypes: ["Issue", "PullRequest"] + abstractType: "IssueOrPullRequest" + ) + + """ + 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! + @possibleTypes( + concreteTypes: ["Issue", "PullRequest"] + abstractType: "IssueOrPullRequest" + ) +} + +""" +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 +} + +""" +Autogenerated input type of UnmarkProjectV2AsTemplate +""" +input UnmarkProjectV2AsTemplateInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the Project to unmark as a template. + """ + projectId: ID! @possibleTypes(concreteTypes: ["ProjectV2"]) +} + +""" +Autogenerated return type of UnmarkProjectV2AsTemplate. +""" +type UnmarkProjectV2AsTemplatePayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The project. + """ + projectV2: ProjectV2 +} + +""" +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 + + """ + The Node ID of the UnmarkedAsDuplicateEvent object + """ + 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! + @possibleTypes( + concreteTypes: [ + "CommitComment" + "DiscussionComment" + "GistComment" + "IssueComment" + "PullRequestReview" + "PullRequestReviewComment" + ] + abstractType: "Minimizable" + ) +} + +""" +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 +} + +""" +Autogenerated input type of UnpinIssue +""" +input UnpinIssueInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the issue to be unpinned + """ + issueId: ID! @possibleTypes(concreteTypes: ["Issue"]) +} + +""" +Autogenerated return type of UnpinIssue. +""" +type UnpinIssuePayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The id of the pinned issue that was unpinned + """ + id: ID + + """ + The issue that was unpinned + """ + issue: Issue +} + +""" +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! + + """ + The Node ID of the UnpinnedEvent object + """ + 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! @possibleTypes(concreteTypes: ["PullRequestReviewThread"]) +} + +""" +Autogenerated return type of UnresolveReviewThread. +""" +type UnresolveReviewThreadPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The thread to resolve. + """ + thread: PullRequestReviewThread +} + +""" +Autogenerated input type of UnsubscribeFromNotifications +""" +input UnsubscribeFromNotificationsInput + @requiredCapabilities( + requiredCapabilities: ["access_internal_graphql_notifications"] + ) { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The NotificationThread IDs of the objects to unsubscribe from. + """ + ids: [ID!]! + @possibleTypes( + concreteTypes: [ + "Commit" + "Discussion" + "Issue" + "PullRequest" + "Repository" + "Team" + "TeamDiscussion" + ] + abstractType: "Subscribable" + ) +} + +""" +Autogenerated return type of UnsubscribeFromNotifications. +""" +type UnsubscribeFromNotificationsPayload + @requiredCapabilities( + requiredCapabilities: ["access_internal_graphql_notifications"] + ) { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Did the operation succeed? + """ + success: Boolean +} + +""" +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! + + """ + The Node ID of the UnsubscribedEvent object + """ + 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 + + """ + Is branch creation a protected operation. + """ + blocksCreations: Boolean + + """ + The global relay id of the branch protection rule to be updated. + """ + branchProtectionRuleId: ID! + @possibleTypes(concreteTypes: ["BranchProtectionRule"]) + + """ + A list of User, Team, or App IDs allowed to bypass force push targeting matching branches. + """ + bypassForcePushActorIds: [ID!] + + """ + A list of User, Team, or App IDs allowed to bypass pull requests targeting matching branches. + """ + bypassPullRequestActorIds: [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 override branch protection. + """ + isAdminEnforced: Boolean + + """ + Whether users can pull changes from upstream when the branch is locked. Set to + `true` to allow fork syncing. Set to `false` to prevent fork syncing. + """ + lockAllowsFetchAndMerge: Boolean + + """ + Whether to set the branch as read-only. If this is true, users will not be able to push to the branch. + """ + lockBranch: 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!] + + """ + Whether the most recent push must be approved by someone other than the person who pushed it + """ + requireLastPushApproval: Boolean + + """ + Number of approving reviews required to update matching branches. + """ + requiredApprovingReviewCount: Int + + """ + The list of required deployment environments + """ + requiredDeploymentEnvironments: [String!] + + """ + List of required status check contexts that must pass for commits to be accepted to matching branches. + """ + requiredStatusCheckContexts: [String!] + + """ + The list of required status checks + """ + requiredStatusChecks: [RequiredStatusCheckInput!] + + """ + 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 conversations required to be resolved before merging. + """ + requiresConversationResolution: Boolean + + """ + Are successful deployments required before merging. + """ + requiresDeployments: 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, Team, or App 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! @possibleTypes(concreteTypes: ["CheckRun"]) + + """ + 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! @possibleTypes(concreteTypes: ["Repository"]) + + """ + 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! @possibleTypes(concreteTypes: ["Repository"]) +} + +""" +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 UpdateDiscussionComment +""" +input UpdateDiscussionCommentInput { + """ + The new contents of the comment body. + """ + body: String! + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The Node ID of the discussion comment to update. + """ + commentId: ID! @possibleTypes(concreteTypes: ["DiscussionComment"]) +} + +""" +Autogenerated return type of UpdateDiscussionComment. +""" +type UpdateDiscussionCommentPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The modified discussion comment. + """ + comment: DiscussionComment +} + +""" +Autogenerated input type of UpdateDiscussion +""" +input UpdateDiscussionInput { + """ + The new contents of the discussion body. + """ + body: String + + """ + The Node ID of a discussion category within the same repository to change this discussion to. + """ + categoryId: ID @possibleTypes(concreteTypes: ["DiscussionCategory"]) + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The Node ID of the discussion to update. + """ + discussionId: ID! @possibleTypes(concreteTypes: ["Discussion"]) + + """ + The new discussion title. + """ + title: String +} + +""" +Autogenerated return type of UpdateDiscussion. +""" +type UpdateDiscussionPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The modified discussion. + """ + discussion: Discussion +} + +""" +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! @possibleTypes(concreteTypes: ["Enterprise"]) + + """ + 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! @possibleTypes(concreteTypes: ["Enterprise"]) + + """ + The value for the allow private repository forking policy on the enterprise. + """ + policyValue: EnterpriseAllowPrivateRepositoryForkingPolicyValue + + """ + 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 base repository permission setting. + """ + enterpriseId: ID! @possibleTypes(concreteTypes: ["Enterprise"]) + + """ + The value for the base 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 base repository permission setting. + """ + enterprise: Enterprise + + """ + A message confirming the result of updating the base 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! @possibleTypes(concreteTypes: ["Enterprise"]) + + """ + 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! @possibleTypes(concreteTypes: ["Enterprise"]) + + """ + 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! @possibleTypes(concreteTypes: ["Enterprise"]) + + """ + 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! @possibleTypes(concreteTypes: ["Enterprise"]) + + """ + 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! @possibleTypes(concreteTypes: ["Enterprise"]) + + """ + 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! @possibleTypes(concreteTypes: ["Enterprise"]) + + """ + 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! @possibleTypes(concreteTypes: ["Enterprise"]) + + """ + 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! @possibleTypes(concreteTypes: ["Enterprise"]) + + """ + 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! @possibleTypes(concreteTypes: ["Enterprise"]) + + """ + 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 UpdateEnterpriseOwnerOrganizationRole +""" +input UpdateEnterpriseOwnerOrganizationRoleInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the Enterprise which the owner belongs to. + """ + enterpriseId: ID! @possibleTypes(concreteTypes: ["Enterprise"]) + + """ + The ID of the organization for membership change. + """ + organizationId: ID! @possibleTypes(concreteTypes: ["Organization"]) + + """ + The role to assume in the organization. + """ + organizationRole: RoleInOrganization! +} + +""" +Autogenerated return type of UpdateEnterpriseOwnerOrganizationRole. +""" +type UpdateEnterpriseOwnerOrganizationRolePayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + A message confirming the result of changing the owner's organization role. + """ + 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! @possibleTypes(concreteTypes: ["Enterprise"]) + + """ + 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! @possibleTypes(concreteTypes: ["Enterprise"]) + + """ + 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! @possibleTypes(concreteTypes: ["Enterprise"]) + + """ + 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! @possibleTypes(concreteTypes: ["Enterprise"]) + + """ + 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 UpdateEnvironment +""" +input UpdateEnvironmentInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The node ID of the environment. + """ + environmentId: ID! @possibleTypes(concreteTypes: ["Environment"]) + + """ + Whether deployments to this environment can be approved by the user who created the deployment. + """ + preventSelfReview: Boolean + + """ + The ids of users or teams that can approve deployments to this environment + """ + reviewers: [ID!] + + """ + The wait timer in minutes. + """ + waitTimer: Int +} + +""" +Autogenerated return type of UpdateEnvironment. +""" +type UpdateEnvironmentPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The updated environment. + """ + environment: Environment +} + +""" +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! + @possibleTypes( + concreteTypes: ["App", "Enterprise", "Organization"] + abstractType: "IpAllowListOwner" + ) + + """ + 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! @possibleTypes(concreteTypes: ["IpAllowListEntry"]) + + """ + 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 UpdateIpAllowListForInstalledAppsEnabledSetting +""" +input UpdateIpAllowListForInstalledAppsEnabledSettingInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the owner. + """ + ownerId: ID! + @possibleTypes( + concreteTypes: ["App", "Enterprise", "Organization"] + abstractType: "IpAllowListOwner" + ) + + """ + The value for the IP allow list configuration for installed GitHub Apps setting. + """ + settingValue: IpAllowListForInstalledAppsEnabledSettingValue! +} + +""" +Autogenerated return type of UpdateIpAllowListForInstalledAppsEnabledSetting. +""" +type UpdateIpAllowListForInstalledAppsEnabledSettingPayload { + """ + 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 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! @possibleTypes(concreteTypes: ["IssueComment"]) +} + +""" +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!] @possibleTypes(concreteTypes: ["User"]) + + """ + 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! @possibleTypes(concreteTypes: ["Issue"]) + + """ + An array of Node IDs of labels for this issue. + """ + labelIds: [ID!] @possibleTypes(concreteTypes: ["Label"]) + + """ + The Node ID of the milestone for this issue. + """ + milestoneId: ID @possibleTypes(concreteTypes: ["Milestone"]) + + """ + 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 UpdateLabel +""" +input UpdateLabelInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + A 6 character hex code, without the leading #, identifying the updated color of the label. + """ + color: String + + """ + A brief description of the label, such as its purpose. + """ + description: String + + """ + The Node ID of the label to be updated. + """ + id: ID! @possibleTypes(concreteTypes: ["Label"]) + + """ + The updated name of the label. + """ + name: String +} + +""" +Autogenerated return type of UpdateLabel. +""" +type UpdateLabelPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The updated label. + """ + label: Label +} + +""" +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! + @possibleTypes( + concreteTypes: ["Enterprise", "Organization"] + abstractType: "VerifiableDomainOwner" + ) + + """ + 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 UpdateOrganizationAllowPrivateRepositoryForkingSetting +""" +input UpdateOrganizationAllowPrivateRepositoryForkingSettingInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Enable forking of private repositories in the organization? + """ + forkingEnabled: Boolean! + + """ + The ID of the organization on which to set the allow private repository forking setting. + """ + organizationId: ID! @possibleTypes(concreteTypes: ["Organization"]) +} + +""" +Autogenerated return type of UpdateOrganizationAllowPrivateRepositoryForkingSetting. +""" +type UpdateOrganizationAllowPrivateRepositoryForkingSettingPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + A message confirming the result of updating the allow private repository forking setting. + """ + message: String + + """ + The organization with the updated allow private repository forking setting. + """ + organization: Organization +} + +""" +Autogenerated input type of UpdateOrganizationWebCommitSignoffSetting +""" +input UpdateOrganizationWebCommitSignoffSettingInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the organization on which to set the web commit signoff setting. + """ + organizationId: ID! @possibleTypes(concreteTypes: ["Organization"]) + + """ + Enable signoff on web-based commits for repositories in the organization? + """ + webCommitSignoffRequired: Boolean! +} + +""" +Autogenerated return type of UpdateOrganizationWebCommitSignoffSetting. +""" +type UpdateOrganizationWebCommitSignoffSettingPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + A message confirming the result of updating the web commit signoff setting. + """ + message: String + + """ + The organization with the updated web commit signoff setting. + """ + organization: Organization +} + +""" +Only allow users with bypass permission to update matching refs. +""" +type UpdateParameters { + """ + Branch can pull changes from its upstream repository + """ + updateAllowsFetchAndMerge: Boolean! +} + +""" +Only allow users with bypass permission to update matching refs. +""" +input UpdateParametersInput { + """ + Branch can pull changes from its upstream repository + """ + updateAllowsFetchAndMerge: Boolean! +} + +""" +Autogenerated input type of UpdatePatreonSponsorability +""" +input UpdatePatreonSponsorabilityInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Whether Patreon tiers should be shown on the GitHub Sponsors profile page, + allowing potential sponsors to make their payment through Patreon instead of GitHub. + """ + enablePatreonSponsorships: Boolean! + + """ + The username of the organization with the GitHub Sponsors profile, if any. + Defaults to the GitHub Sponsors profile for the authenticated user if omitted. + """ + sponsorableLogin: String +} + +""" +Autogenerated return type of UpdatePatreonSponsorability. +""" +type UpdatePatreonSponsorabilityPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The GitHub Sponsors profile. + """ + sponsorsListing: SponsorsListing +} + +""" +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! @possibleTypes(concreteTypes: ["ProjectCard"]) +} + +""" +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! @possibleTypes(concreteTypes: ["ProjectColumn"]) +} + +""" +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! @possibleTypes(concreteTypes: ["Project"]) + + """ + 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 UpdateProjectV2Collaborators +""" +input UpdateProjectV2CollaboratorsInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The collaborators to update. + """ + collaborators: [ProjectV2Collaborator!]! + + """ + The ID of the project to update the collaborators for. + """ + projectId: ID! @possibleTypes(concreteTypes: ["ProjectV2"]) +} + +""" +Autogenerated return type of UpdateProjectV2Collaborators. +""" +type UpdateProjectV2CollaboratorsPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The collaborators granted a role + """ + collaborators( + """ + 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 + ): ProjectV2ActorConnection +} + +""" +Autogenerated input type of UpdateProjectV2DraftIssue +""" +input UpdateProjectV2DraftIssueInput { + """ + The IDs of the assignees of the draft issue. + """ + assigneeIds: [ID!] @possibleTypes(concreteTypes: ["User"]) + + """ + The body of the draft issue. + """ + body: String + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the draft issue to update. + """ + draftIssueId: ID! @possibleTypes(concreteTypes: ["DraftIssue"]) + + """ + The title of the draft issue. + """ + title: String +} + +""" +Autogenerated return type of UpdateProjectV2DraftIssue. +""" +type UpdateProjectV2DraftIssuePayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The draft issue updated in the project. + """ + draftIssue: DraftIssue +} + +""" +Autogenerated input type of UpdateProjectV2 +""" +input UpdateProjectV2Input { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Set the project to closed or open. + """ + closed: Boolean + + """ + The ID of the Project to update. + """ + projectId: ID! @possibleTypes(concreteTypes: ["ProjectV2"]) + + """ + Set the project to public or private. + """ + public: Boolean + + """ + Set the readme description of the project. + """ + readme: String + + """ + Set the short description of the project. + """ + shortDescription: String + + """ + Set the title of the project. + """ + title: String +} + +""" +Autogenerated input type of UpdateProjectV2ItemFieldValue +""" +input UpdateProjectV2ItemFieldValueInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the field to be updated. + """ + fieldId: ID! + @possibleTypes( + concreteTypes: [ + "ProjectV2Field" + "ProjectV2IterationField" + "ProjectV2SingleSelectField" + ] + abstractType: "ProjectV2FieldConfiguration" + ) + + """ + The ID of the item to be updated. + """ + itemId: ID! @possibleTypes(concreteTypes: ["ProjectV2Item"]) + + """ + The ID of the Project. + """ + projectId: ID! @possibleTypes(concreteTypes: ["ProjectV2"]) + + """ + The value which will be set on the field. + """ + value: ProjectV2FieldValue! +} + +""" +Autogenerated return type of UpdateProjectV2ItemFieldValue. +""" +type UpdateProjectV2ItemFieldValuePayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The updated item. + """ + projectV2Item: ProjectV2Item +} + +""" +Autogenerated input type of UpdateProjectV2ItemPosition +""" +input UpdateProjectV2ItemPositionInput { + """ + The ID of the item to position this item after. If omitted or set to null the item will be moved to top. + """ + afterId: ID @possibleTypes(concreteTypes: ["ProjectV2Item"]) + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the item to be moved. + """ + itemId: ID! @possibleTypes(concreteTypes: ["ProjectV2Item"]) + + """ + The ID of the Project. + """ + projectId: ID! @possibleTypes(concreteTypes: ["ProjectV2"]) +} + +""" +Autogenerated return type of UpdateProjectV2ItemPosition. +""" +type UpdateProjectV2ItemPositionPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The items in the new order + """ + 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 + ): ProjectV2ItemConnection +} + +""" +Autogenerated return type of UpdateProjectV2. +""" +type UpdateProjectV2Payload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The updated Project. + """ + projectV2: ProjectV2 +} + +""" +Autogenerated input type of UpdateProjectV2StatusUpdate +""" +input UpdateProjectV2StatusUpdateInput { + """ + The body of the status update. + """ + body: String + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The start date of the status update. + """ + startDate: Date + + """ + The status of the status update. + """ + status: ProjectV2StatusUpdateStatus + + """ + The ID of the status update to be updated. + """ + statusUpdateId: ID! @possibleTypes(concreteTypes: ["ProjectV2StatusUpdate"]) + + """ + The target date of the status update. + """ + targetDate: Date +} + +""" +Autogenerated return type of UpdateProjectV2StatusUpdate. +""" +type UpdateProjectV2StatusUpdatePayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The status update updated in the project. + """ + statusUpdate: ProjectV2StatusUpdate +} + +""" +Autogenerated input type of UpdatePullRequestBranch +""" +input UpdatePullRequestBranchInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The head ref oid for the upstream branch. + """ + expectedHeadOid: GitObjectID + + """ + The Node ID of the pull request. + """ + pullRequestId: ID! @possibleTypes(concreteTypes: ["PullRequest"]) + + """ + The update branch method to use. If omitted, defaults to 'MERGE' + """ + updateMethod: PullRequestBranchUpdateMethod +} + +""" +Autogenerated return type of UpdatePullRequestBranch. +""" +type UpdatePullRequestBranchPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The updated pull request. + """ + pullRequest: PullRequest +} + +""" +Autogenerated input type of UpdatePullRequest +""" +input UpdatePullRequestInput { + """ + An array of Node IDs of users for this pull request. + """ + assigneeIds: [ID!] @possibleTypes(concreteTypes: ["User"]) + + """ + 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!] @possibleTypes(concreteTypes: ["Label"]) + + """ + Indicates whether maintainers can modify the pull request. + """ + maintainerCanModify: Boolean + + """ + The Node ID of the milestone for this pull request. + """ + milestoneId: ID @possibleTypes(concreteTypes: ["Milestone"]) + + """ + An array of Node IDs for projects associated with this pull request. + """ + projectIds: [ID!] + + """ + The Node ID of the pull request. + """ + pullRequestId: ID! @possibleTypes(concreteTypes: ["PullRequest"]) + + """ + 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! + @possibleTypes(concreteTypes: ["PullRequestReviewComment"]) +} + +""" +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! @possibleTypes(concreteTypes: ["PullRequestReview"]) +} + +""" +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! @possibleTypes(concreteTypes: ["Ref"]) +} + +""" +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 UpdateRefs +""" +input UpdateRefsInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + A list of ref updates. + """ + refUpdates: [RefUpdate!]! + + """ + The Node ID of the repository. + """ + repositoryId: ID! @possibleTypes(concreteTypes: ["Repository"]) +} + +""" +Autogenerated return type of UpdateRefs. +""" +type UpdateRefsPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String +} + +""" +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 discussions feature enabled. + """ + hasDiscussionsEnabled: Boolean + + """ + 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 displays a Sponsor button for financial contributions. + """ + hasSponsorshipsEnabled: 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! @possibleTypes(concreteTypes: ["Repository"]) + + """ + 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 UpdateRepositoryRuleset +""" +input UpdateRepositoryRulesetInput { + """ + A list of actors that are allowed to bypass rules in this ruleset. + """ + bypassActors: [RepositoryRulesetBypassActorInput!] + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The list of conditions for this ruleset + """ + conditions: RepositoryRuleConditionsInput + + """ + The enforcement level for this ruleset + """ + enforcement: RuleEnforcement + + """ + The name of the ruleset. + """ + name: String + + """ + The global relay id of the repository ruleset to be updated. + """ + repositoryRulesetId: ID! @possibleTypes(concreteTypes: ["RepositoryRuleset"]) + + """ + The list of rules for this ruleset + """ + rules: [RepositoryRuleInput!] + + """ + The target of the ruleset. + """ + target: RepositoryRulesetTarget +} + +""" +Autogenerated return type of UpdateRepositoryRuleset. +""" +type UpdateRepositoryRulesetPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The newly created Ruleset. + """ + ruleset: RepositoryRuleset +} + +""" +Autogenerated input type of UpdateRepositoryWebCommitSignoffSetting +""" +input UpdateRepositoryWebCommitSignoffSettingInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the repository to update. + """ + repositoryId: ID! @possibleTypes(concreteTypes: ["Repository"]) + + """ + Indicates if the repository should require signoff on web-based commits. + """ + webCommitSignoffRequired: Boolean! +} + +""" +Autogenerated return type of UpdateRepositoryWebCommitSignoffSetting. +""" +type UpdateRepositoryWebCommitSignoffSettingPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + A message confirming the result of updating the web commit signoff setting. + """ + message: String + + """ + The updated repository. + """ + repository: Repository +} + +""" +Autogenerated input type of UpdateSponsorshipPreferences +""" +input UpdateSponsorshipPreferencesInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Specify whether others should be able to see that the sponsor is sponsoring + the sponsorable. Public visibility still does not reveal which tier is used. + """ + privacyLevel: SponsorshipPrivacy = PUBLIC + + """ + Whether the sponsor should receive email updates from the sponsorable. + """ + receiveEmails: Boolean = true + + """ + The ID of the user or organization who is acting as the sponsor, paying for + the sponsorship. Required if sponsorLogin is not given. + """ + sponsorId: ID + @possibleTypes( + concreteTypes: ["Organization", "User"] + abstractType: "Sponsor" + ) + + """ + The username of the user or organization who is acting as the sponsor, paying + for the sponsorship. Required if sponsorId is not given. + """ + sponsorLogin: String + + """ + The ID of the user or organization who is receiving the sponsorship. Required if sponsorableLogin is not given. + """ + sponsorableId: ID + @possibleTypes( + concreteTypes: ["Organization", "User"] + abstractType: "Sponsorable" + ) + + """ + The username of the user or organization who is receiving the sponsorship. Required if sponsorableId is not given. + """ + sponsorableLogin: String +} + +""" +Autogenerated return type of UpdateSponsorshipPreferences. +""" +type UpdateSponsorshipPreferencesPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The sponsorship that was updated. + """ + sponsorship: Sponsorship +} + +""" +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! + @possibleTypes( + concreteTypes: [ + "Commit" + "Discussion" + "Issue" + "PullRequest" + "Repository" + "Team" + "TeamDiscussion" + ] + abstractType: "Subscribable" + ) +} + +""" +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! @possibleTypes(concreteTypes: ["TeamDiscussionComment"]) +} + +""" +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! @possibleTypes(concreteTypes: ["TeamDiscussion"]) + + """ + 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 UpdateTeamReviewAssignment +""" +input UpdateTeamReviewAssignmentInput { + """ + The algorithm to use for review assignment + """ + algorithm: TeamReviewAssignmentAlgorithm = ROUND_ROBIN + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Count any members whose review has already been requested against the required number of members assigned to review + """ + countMembersAlreadyRequested: Boolean = true + + """ + Turn on or off review assignment + """ + enabled: Boolean! + + """ + An array of team member IDs to exclude + """ + excludedTeamMemberIds: [ID!] @possibleTypes(concreteTypes: ["User"]) + + """ + The Node ID of the team to update review assignments of + """ + id: ID! @possibleTypes(concreteTypes: ["Team"]) + + """ + Include the members of any child teams when assigning + """ + includeChildTeamMembers: Boolean = true + + """ + Notify the entire team of the PR if it is delegated + """ + notifyTeam: Boolean = true + + """ + Remove the team review request when assigning + """ + removeTeamRequest: Boolean = true + + """ + The number of team members to assign + """ + teamMemberCount: Int = 1 +} + +""" +Autogenerated return type of UpdateTeamReviewAssignment. +""" +type UpdateTeamReviewAssignmentPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The team that was modified + """ + team: Team +} + +""" +Autogenerated input type of UpdateTeamsRepository +""" +input UpdateTeamsRepositoryInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Permission that should be granted to the teams. + """ + permission: RepositoryPermission! + + """ + Repository ID being granted access to. + """ + repositoryId: ID! @possibleTypes(concreteTypes: ["Repository"]) + + """ + A list of teams being granted access. Limit: 10 + """ + teamIds: [ID!]! @possibleTypes(concreteTypes: ["Team"]) +} + +""" +Autogenerated return type of UpdateTeamsRepository. +""" +type UpdateTeamsRepositoryPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The repository that was updated. + """ + repository: Repository + + """ + The teams granted permission on the repository. + """ + teams: [Team!] +} + +""" +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! @possibleTypes(concreteTypes: ["Repository"]) + + """ + 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 +} + +""" +Autogenerated input type of UpdateUserList +""" +input UpdateUserListInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + A description of the list + """ + description: String + + """ + Whether or not the list is private + """ + isPrivate: Boolean + + """ + The ID of the list to update. + """ + listId: ID! @possibleTypes(concreteTypes: ["UserList"]) + + """ + The name of the list + """ + name: String +} + +""" +Autogenerated return type of UpdateUserList. +""" +type UpdateUserListPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The list that was just updated + """ + list: UserList +} + +""" +Autogenerated input type of UpdateUserListsForItem +""" +input UpdateUserListsForItemInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The item to add to the list + """ + itemId: ID! + @possibleTypes(concreteTypes: ["Repository"], abstractType: "UserListItems") + + """ + The lists to which this item should belong + """ + listIds: [ID!]! @possibleTypes(concreteTypes: ["UserList"]) + + """ + The suggested lists to create and add this item to + """ + suggestedListIds: [ID!] @possibleTypes(concreteTypes: ["UserListSuggestion"]) +} + +""" +Autogenerated return type of UpdateUserListsForItem. +""" +type UpdateUserListsForItemPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The item that was added + """ + item: UserListItems + + """ + The lists to which this item belongs + """ + lists: [UserList!] + + """ + The user who owns the lists + """ + user: User +} + +""" +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 & ProjectV2Owner & ProjectV2Recent & RepositoryDiscussionAuthor & RepositoryDiscussionCommentAuthor & 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! + + """ + Could this user receive email notifications, if the organization had notification restrictions enabled? + """ + canReceiveOrganizationEmailsWhenNotificationsRestricted( + """ + The login of the organization to check. + """ + login: String! + ): Boolean! + + """ + 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 (including) this time will be + counted. If omitted, defaults to the current time or one year from the + provided from argument. + """ + to: DateTime + ): ContributionsCollection! + + """ + The user's Copilot endpoint information + """ + copilotEndpoints: CopilotEndpoints + + """ + 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 enterprises that the user belongs to. + """ + enterprises( + """ + 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 enterprises returned based on the user's membership type. + """ + membershipType: EnterpriseMembershipType = ALL + + """ + Ordering options for the User's enterprises. + """ + orderBy: EnterpriseOrder = { field: NAME, direction: ASC } + ): EnterpriseConnection + + """ + The estimated next GitHub Sponsors payout for this user/organization in cents (USD). + """ + estimatedNextSponsorsPayoutInCents: Int! + + """ + 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! + + """ + The Node ID of the User object + """ + 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 this user is following the viewer. Inverse of viewerIsFollowing + """ + isFollowingViewer: Boolean! + + """ + Whether or not this user is a member of the GitHub Stars Program. + """ + isGitHubStar: 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! + + """ + Whether 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! + + """ + Calculate how much each sponsor has ever paid total to this maintainer via + GitHub Sponsors. Does not include sponsorships paid via Patreon. + """ + lifetimeReceivedSponsorshipValues( + """ + 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 results returned from the connection. + """ + orderBy: SponsorAndLifetimeValueOrder = { + field: SPONSOR_LOGIN + direction: ASC + } + ): SponsorAndLifetimeValueConnection! + + """ + A user-curated list of repositories + """ + lists( + """ + 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 + ): UserListConnection! + + """ + The user's public profile location. + """ + location: String + + """ + The username used to login. + """ + login: String! + + """ + The estimated monthly GitHub Sponsors income for this user/organization in cents (USD). + """ + monthlyEstimatedSponsorsIncomeInCents: Int! + + """ + 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 + + """ + Ordering options for the User's organizations. + """ + orderBy: OrganizationOrder = null + ): 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 + + """ + Find a project by number. + """ + projectV2( + """ + The project number. + """ + number: Int! + ): ProjectV2 + + """ + 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 projects under the owner. + """ + projectsV2( + """ + 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 projects based on user role. + """ + minPermissionLevel: ProjectV2PermissionLevel = READ + + """ + How to order the returned projects. + """ + orderBy: ProjectV2Order = { field: NUMBER, direction: DESC } + + """ + A project to search for under the the owner. + """ + query: String + ): ProjectV2Connection! + + """ + The user's profile pronouns + """ + pronouns: String + + """ + 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! + + """ + Recent projects that this user has modified in the context of the owner. + """ + recentProjects( + """ + 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 + ): ProjectV2Connection! + + """ + 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 have issues enabled + """ + hasIssuesEnabled: Boolean + + """ + If non-null, filters repositories according to whether they are archived and not maintained + """ + isArchived: Boolean + + """ + 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. Internal + repositories are considered private; consider using the visibility argument + if only internal repositories are needed. Cannot be combined with the + visibility argument. + """ + privacy: RepositoryPrivacy + + """ + If non-null, filters repositories according to visibility. Cannot be combined with the privacy argument. + """ + visibility: RepositoryVisibility + ): 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 non-null, filters repositories according to whether they have issues enabled + """ + hasIssues: Boolean + + """ + 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( + """ + Follow repository renames. If disabled, a repository referenced by its old name will return an error. + """ + followRenames: Boolean = true + + """ + Name of Repository to find. + """ + name: String! + ): Repository + + """ + Discussion comments this user has authored. + """ + repositoryDiscussionComments( + """ + 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 discussion comments to only those that were marked as the answer + """ + onlyAnswers: Boolean = false + + """ + Filter discussion comments to only those in a specific repository. + """ + repositoryId: ID + ): DiscussionCommentConnection! + + """ + Discussions this user has started. + """ + repositoryDiscussions( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Filter discussions to only those that have been answered or not. Defaults to + including both answered and unanswered discussions. + """ + answered: Boolean = null + + """ + 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 discussions returned from the connection. + """ + orderBy: DiscussionOrder = { field: CREATED_AT, direction: DESC } + + """ + Filter discussions to only those in a specific repository. + """ + repositoryId: ID + + """ + A list of states to filter the discussions by. + """ + states: [DiscussionState!] = [] + ): DiscussionConnection! + + """ + 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 user's social media accounts, ordered as they appear on the user's profile. + """ + socialAccounts( + """ + 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 + ): SocialAccountConnection! + + """ + List of users and organizations this entity is sponsoring. + """ + sponsoring( + """ + 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 users and organizations returned from the connection. + """ + orderBy: SponsorOrder = { field: RELEVANCE, direction: DESC } + ): SponsorConnection! + + """ + List of sponsors for this user or organization. + """ + sponsors( + """ + 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 returned from the connection. + """ + orderBy: SponsorOrder = { field: RELEVANCE, direction: DESC } + + """ + If given, will filter for sponsors at the given tier. Will only return + sponsors whose tier the viewer is permitted to see. + """ + tierId: ID + ): SponsorConnection! + + """ + Events involving this sponsorable, such as new sponsorships. + """ + sponsorsActivities( + """ + Filter activities to only the specified actions. + """ + actions: [SponsorsActivityAction!] = [] + + """ + 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 include those events where this sponsorable acted as the sponsor. + Defaults to only including events where this sponsorable was the recipient + of a sponsorship. + """ + includeAsSponsor: Boolean = false + + """ + Whether or not to include private activities in the result set. Defaults to including public and private activities. + """ + includePrivate: Boolean = true + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for activity returned from the connection. + """ + orderBy: SponsorsActivityOrder = { field: TIMESTAMP, direction: DESC } + + """ + Filter activities returned to only those that occurred in the most recent + specified time period. Set to ALL to avoid filtering by when the activity + occurred. Will be ignored if `since` or `until` is given. + """ + period: SponsorsActivityPeriod = MONTH + + """ + Filter activities to those that occurred on or after this time. + """ + since: DateTime + + """ + Filter activities to those that occurred before this time. + """ + until: DateTime + ): SponsorsActivityConnection! + + """ + The GitHub Sponsors listing for this user or organization. + """ + sponsorsListing: SponsorsListing + + """ + The sponsorship from the viewer to this user/organization; that is, the sponsorship where you're the sponsor. + """ + sponsorshipForViewerAsSponsor( + """ + Whether to return the sponsorship only if it's still active. Pass false to + get the viewer's sponsorship back even if it has been cancelled. + """ + activeOnly: Boolean = true + ): Sponsorship + + """ + The sponsorship from this user/organization to the viewer; that is, the sponsorship you're receiving. + """ + sponsorshipForViewerAsSponsorable( + """ + Whether to return the sponsorship only if it's still active. Pass false to + get the sponsorship back even if it has been cancelled. + """ + activeOnly: Boolean = true + ): Sponsorship + + """ + List of sponsorship updates sent from this sponsorable to sponsors. + """ + sponsorshipNewsletters( + """ + 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 sponsorship updates returned from the connection. + """ + orderBy: SponsorshipNewsletterOrder = { field: CREATED_AT, direction: DESC } + ): SponsorshipNewsletterConnection! + + """ + The sponsorships where this user or organization is the maintainer receiving the funds. + """ + sponsorshipsAsMaintainer( + """ + Whether to include only sponsorships that are active right now, versus all + sponsorships this maintainer has ever received. + """ + activeOnly: Boolean = true + + """ + 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 sponsorships where this user or organization is the funder. + """ + sponsorshipsAsSponsor( + """ + Whether to include only sponsorships that are active right now, versus all sponsorships this sponsor has ever made. + """ + activeOnly: Boolean = true + + """ + 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 sponsorships returned to those for the specified maintainers. That + is, the recipient of the sponsorship is a user or organization with one of + the given logins. + """ + maintainerLogins: [String!] + + """ + 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 + + """ + Suggested names for user lists + """ + suggestedListNames: [UserListSuggestion!]! + + """ + 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 amount in United States cents (e.g., 500 = $5.00 USD) that this entity has + spent on GitHub to fund sponsorships. Only returns a value when viewed by the + user themselves or by a user who can manage sponsorships for the requested organization. + """ + totalSponsorshipAmountAsSponsorInCents( + """ + Filter payments to those that occurred on or after this time. + """ + since: DateTime + + """ + Filter payments to those made to the users or organizations with the specified usernames. + """ + sponsorableLogins: [String!] = [] + + """ + Filter payments to those that occurred before this time. + """ + until: DateTime + ): Int + + """ + 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. Inverse of isFollowingViewer. + """ + 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 issues enabled + """ + hasIssuesEnabled: 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. Internal + repositories are considered private; consider using the visibility argument + if only internal repositories are needed. Cannot be combined with the + visibility argument. + """ + privacy: RepositoryPrivacy + + """ + If non-null, filters repositories according to visibility. Cannot be combined with the privacy argument. + """ + visibility: RepositoryVisibility + ): 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! + + """ + The Node ID of the UserBlockedEvent object + """ + id: ID! + + """ + The user who was blocked. + """ + subject: User +} + +""" +A list of users. +""" +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 + + """ + The Node ID of the UserContentEdit object + """ + 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! +} + +""" +A user-curated list of repositories +""" +type UserList implements Node { + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + The description of this list + """ + description: String + + """ + The Node ID of the UserList object + """ + id: ID! + + """ + Whether or not this list is private + """ + isPrivate: Boolean! + + """ + The items associated with this list + """ + 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 + ): UserListItemsConnection! + + """ + The date and time at which this list was created or last had items added to it + """ + lastAddedAt: DateTime! + + """ + The name of this list + """ + name: String! + + """ + The slug of this list + """ + slug: String! + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! + + """ + The user to which this list belongs + """ + user: User! +} + +""" +The connection type for UserList. +""" +type UserListConnection { + """ + A list of edges. + """ + edges: [UserListEdge] + + """ + A list of nodes. + """ + nodes: [UserList] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type UserListEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: UserList +} + +""" +Types that can be added to a user list. +""" +union UserListItems = Repository + +""" +The connection type for UserListItems. +""" +type UserListItemsConnection { + """ + A list of edges. + """ + edges: [UserListItemsEdge] + + """ + A list of nodes. + """ + nodes: [UserListItems] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type UserListItemsEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: UserListItems +} + +""" +Represents a suggested user list. +""" +type UserListSuggestion { + """ + The ID of the suggested user list + """ + id: ID + + """ + The name of the suggested user list + """ + name: 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 + + """ + The Node ID of the UserStatus 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 or approved for an organization or an enterprise. +""" +type VerifiableDomain implements Node { + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + 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! + + """ + The Node ID of the VerifiableDomain object + """ + id: ID! + + """ + Whether or not the domain is approved. + """ + isApproved: Boolean! + + """ + Whether this domain is required to exist for an organization or enterprise 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 + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: 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 their creation date. + """ + CREATED_AT + + """ + 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! @possibleTypes(concreteTypes: ["VerifiableDomain"]) +} + +""" +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 subject that may be upvoted. +""" +interface Votable { + """ + Number of upvotes that this subject has received. + """ + upvoteCount: Int! + + """ + Whether or not the current user can add or remove an upvote on this subject. + """ + viewerCanUpvote: Boolean! + + """ + Whether or not the current user has already upvoted this subject. + """ + viewerHasUpvoted: Boolean! +} + +""" +A workflow contains meta information about an Actions workflow file. +""" +type Workflow implements Node & UniformResourceLocatable { + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + Identifies the primary key from the database. + """ + databaseId: Int + + """ + The Node ID of the Workflow object + """ + id: ID! + + """ + The name of the workflow. + """ + name: String! + + """ + The HTTP path for this workflow + """ + resourcePath: URI! + + """ + The runs of the workflow. + """ + runs( + """ + 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 connection + """ + orderBy: WorkflowRunOrder = { field: CREATED_AT, direction: DESC } + ): WorkflowRunConnection! + + """ + The state of the workflow. + """ + state: WorkflowState! + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! + + """ + The HTTP URL for this workflow + """ + url: URI! +} + +""" +A workflow that must run for this rule to pass +""" +type WorkflowFileReference { + """ + The path to the workflow file + """ + path: String! + + """ + The ref (branch or tag) of the workflow file to use + """ + ref: String + + """ + The ID of the repository where the workflow is defined + """ + repositoryId: Int! + + """ + The commit SHA of the workflow file to use + """ + sha: String +} + +""" +A workflow that must run for this rule to pass +""" +input WorkflowFileReferenceInput { + """ + The path to the workflow file + """ + path: String! + + """ + The ref (branch or tag) of the workflow file to use + """ + ref: String + + """ + The ID of the repository where the workflow is defined + """ + repositoryId: Int! + + """ + The commit SHA of the workflow file to use + """ + sha: String +} + +""" +A workflow run. +""" +type WorkflowRun implements Node & UniformResourceLocatable { + """ + The check suite this workflow run belongs to. + """ + checkSuite: CheckSuite! + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + Identifies the primary key from the database. + """ + databaseId: Int + + """ + The log of deployment reviews + """ + deploymentReviews( + """ + 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 + ): DeploymentReviewConnection! + + """ + The event that triggered the workflow run + """ + event: String! + + """ + The workflow file + """ + file: WorkflowRunFile + + """ + The Node ID of the WorkflowRun object + """ + id: ID! + + """ + The pending deployment requests of all check runs in this workflow run + """ + pendingDeploymentRequests( + """ + 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 + ): DeploymentRequestConnection! + + """ + The HTTP path for this workflow run + """ + resourcePath: URI! + + """ + A number that uniquely identifies this workflow run in its parent workflow. + """ + runNumber: Int! + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! + + """ + The HTTP URL for this workflow run + """ + url: URI! + + """ + The workflow executed in this workflow run. + """ + workflow: Workflow! +} + +""" +The connection type for WorkflowRun. +""" +type WorkflowRunConnection { + """ + A list of edges. + """ + edges: [WorkflowRunEdge] + + """ + A list of nodes. + """ + nodes: [WorkflowRun] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type WorkflowRunEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: WorkflowRun +} + +""" +An executed workflow file for a workflow run. +""" +type WorkflowRunFile implements Node & UniformResourceLocatable { + """ + The Node ID of the WorkflowRunFile object + """ + id: ID! + + """ + The path of the workflow file relative to its repository. + """ + path: String! + + """ + The direct link to the file in the repository which stores the workflow file. + """ + repositoryFileUrl: URI! + + """ + The repository name and owner which stores the workflow file. + """ + repositoryName: URI! + + """ + The HTTP path for this workflow run file + """ + resourcePath: URI! + + """ + The parent workflow run execution for this file. + """ + run: WorkflowRun! + + """ + The HTTP URL for this workflow run file + """ + url: URI! + + """ + If the viewer has permissions to push to the repository which stores the workflow. + """ + viewerCanPushRepository: Boolean! + + """ + If the viewer has permissions to read the repository which stores the workflow. + """ + viewerCanReadRepository: Boolean! +} + +""" +Ways in which lists of workflow runs can be ordered upon return. +""" +input WorkflowRunOrder { + """ + The direction in which to order workflow runs by the specified field. + """ + direction: OrderDirection! + + """ + The field by which to order workflows. + """ + field: WorkflowRunOrderField! +} + +""" +Properties by which workflow run connections can be ordered. +""" +enum WorkflowRunOrderField { + """ + Order workflow runs by most recently created + """ + CREATED_AT +} + +""" +The possible states for a workflow. +""" +enum WorkflowState { + """ + The workflow is active. + """ + ACTIVE + + """ + The workflow was deleted from the git repository. + """ + DELETED + + """ + The workflow was disabled by default on a fork. + """ + DISABLED_FORK + + """ + The workflow was disabled for inactivity in the repository. + """ + DISABLED_INACTIVITY + + """ + The workflow was disabled manually. + """ + DISABLED_MANUALLY +} + +""" +Require all changes made to a targeted branch to pass the specified workflows before they can be merged. +""" +type WorkflowsParameters { + """ + Allow repositories and branches to be created if a check would otherwise prohibit it. + """ + doNotEnforceOnCreate: Boolean! + + """ + Workflows that must pass for this rule to pass. + """ + workflows: [WorkflowFileReference!]! +} + +""" +Require all changes made to a targeted branch to pass the specified workflows before they can be merged. +""" +input WorkflowsParametersInput { + """ + Allow repositories and branches to be created if a check would otherwise prohibit it. + """ + doNotEnforceOnCreate: Boolean + + """ + Workflows that must pass for this rule to pass. + """ + workflows: [WorkflowFileReferenceInput!]! +} + +""" +A valid x509 certificate string +""" +scalar X509Certificate diff --git a/src/__tests__/handlers.test.tsx b/src/__tests__/handlers.test.tsx index ccb602b..b5e49c3 100644 --- a/src/__tests__/handlers.test.tsx +++ b/src/__tests__/handlers.test.tsx @@ -1,5 +1,10 @@ import { Suspense } from "react"; -import { ApolloProvider } from "@apollo/client"; +import { + ApolloProvider, + gql, + useSuspenseQuery, + type TypedDocumentNode, +} from "@apollo/client"; import { render, screen, waitFor } from "@testing-library/react"; import { App, @@ -8,166 +13,219 @@ import { } from "../../.storybook/stories/components/apollo-client/ApolloComponent.tsx"; import { replaceSchema, replaceDelay, products } from "./mocks/handlers.js"; -describe("integration tests", () => { - describe("single execution result response", () => { - it("intercepts and resolves with a single payload", async () => { - const client = makeClient(); - - render( +// describe("integration tests", () => { +// describe.skip("single execution result response", () => { +// it.only("intercepts and resolves with a single payload", async () => { +// const client = makeClient(); + +// render( +// +// Loading...}> +// +// +// , +// ); + +// // The app kicks off the request and we see the initial loading indicator... +// await waitFor(() => +// expect( +// screen.getByRole("heading", { name: /loading/i }), +// ).toHaveTextContent("Loading..."), +// ); + +// await waitFor(() => +// expect( +// screen.getByRole("heading", { name: /customers/i }), +// ).toHaveTextContent("Customers also purchased"), +// ); + +// expect(screen.getByText(/beanie/i)).toBeInTheDocument(); +// expect(screen.getAllByTestId(/rating/i)[0]).not.toHaveTextContent("-"); +// }); +// }); +// describe.skip("multipart response", () => { +// it("uses the initial mock schema set in the handler by default", async () => { +// const client = makeClient(); + +// render( +// +// Loading...}> +// +// +// , +// ); + +// // The app kicks off the request and we see the initial loading indicator... +// await waitFor(() => +// expect( +// screen.getByRole("heading", { name: /loading/i }), +// ).toHaveTextContent("Loading..."), +// ); + +// await waitFor(() => +// expect( +// screen.getByRole("heading", { name: /customers/i }), +// ).toHaveTextContent("Customers also purchased"), +// ); + +// // The default "real" delay in a Node process is 20ms to avoid render +// // batching +// // Once the screen unsuspends, we have rendered the first chunk +// expect(screen.getAllByTestId(/rating/i)[0]).toHaveTextContent("-"); +// expect(screen.getByText(/beanie/i)).toBeInTheDocument(); + +// await waitFor(() => { +// expect(screen.getAllByTestId(/rating/i)[0]).not.toHaveTextContent("-"); +// }); +// }); +// it("can set a new schema via replaceSchema", async () => { +// using _restore = replaceSchema({ +// resolvers: { +// Query: { +// products: () => { +// return Array.from({ length: 6 }, (_element, id) => ({ +// id: `${id}`, +// title: `Foo bar ${id}`, +// mediaUrl: `https://storage.googleapis.com/hack-the-supergraph/apollo-${products[id]}.jpg`, +// reviews: [ +// { +// id: `review-${id}`, +// rating: id, +// }, +// ], +// })); +// }, +// }, +// }, +// }); + +// const client = makeClient(); + +// render( +// +// Loading...}> +// +// +// , +// ); + +// // The app kicks off the request and we see the initial loading indicator... +// await waitFor(() => +// expect( +// screen.getByRole("heading", { name: /loading/i }), +// ).toHaveTextContent("Loading..."), +// ); + +// // The default "real" delay in a Node process is 20ms to avoid batching +// // Once the screen unsuspends, we have rendered the first chunk +// await waitFor(() => +// expect( +// screen.getByRole("heading", { name: /customers/i }), +// ).toHaveTextContent("Customers also purchased"), +// ); + +// expect(screen.getAllByTestId(/rating/i)[0]).toHaveTextContent("-"); +// expect(screen.getByText(/foo bar 1/i)).toBeInTheDocument(); + +// await waitFor(() => { +// // This "5/5" review value was set when we called `replaceSchema` with a +// // new executable schema in this test +// expect(screen.getByText(/5\/5/i)).toBeInTheDocument(); +// }); +// }); +// it("can set a new delay via replaceDelay", async () => { +// // In this test we set a new delay value via `replaceDelay` which is used to +// // simulate network latency +// // Usually, in Jest tests we want this to be 20ms (the default in Node +// // processes) so renders are *not* auto-batched, but in certain tests we may +// // want a shorter or longer delay before chunks or entire responses resolve +// using _restore = replaceDelay(1); + +// const client = makeClient(); + +// render( +// +// Loading...}> +// +// +// , +// ); + +// // The app kicks off the request and we see the initial loading indicator... +// await waitFor(() => +// expect( +// screen.getByRole("heading", { name: /loading/i }), +// ).toHaveTextContent("Loading..."), +// ); + +// await waitFor(() => +// expect( +// screen.getByRole("heading", { name: /customers/i }), +// ).toHaveTextContent("Customers also purchased"), +// ); + +// // Since our renders are batched, we will see the final review value +// // in the initial render, since renders have been batched +// // TODO: investigate flakiness when running with Vite that prompted +// // it to be wrapped in waitFor when it shouldn't need to be +// // await waitFor(() => { +// // expect(screen.getAllByTestId(/rating/i)[0]).toHaveTextContent("0/5"); +// // }); +// expect(screen.getByText(/beanie/i)).toBeInTheDocument(); +// }); +// }); +// }); + +describe("integration tests with github schema", () => { + it("renders a component fetching from the GitHub api", async () => { + const client = makeClient(); + + const APP_QUERY = gql` + query AppQuery { + repository(owner: "octocat", name: "Hello-World") { + issues(last: 20, states: CLOSED) { + edges { + node { + title + url + labels(first: 5) { + edges { + node { + name + } + } + } + } + } + } + } + } + `; + + const Shell = () => { + console.log("render"); + return ( Loading...}> - , + ); + }; - // The app kicks off the request and we see the initial loading indicator... - await waitFor(() => - expect( - screen.getByRole("heading", { name: /loading/i }), - ).toHaveTextContent("Loading..."), - ); - - await waitFor(() => - expect( - screen.getByRole("heading", { name: /customers/i }), - ).toHaveTextContent("Customers also purchased"), - ); + const App = () => { + const { data } = useSuspenseQuery(APP_QUERY); + if (data) { + console.log(data.repository.issues.edges); + } + return <>hi; + }; - expect(screen.getByText(/beanie/i)).toBeInTheDocument(); - expect(screen.getAllByTestId(/rating/i)[0]).not.toHaveTextContent("-"); - }); - }); - describe("multipart response", () => { - it("uses the initial mock schema set in the handler by default", async () => { - const client = makeClient(); - - render( - - Loading...}> - - - , - ); - - // The app kicks off the request and we see the initial loading indicator... - await waitFor(() => - expect( - screen.getByRole("heading", { name: /loading/i }), - ).toHaveTextContent("Loading..."), - ); - - await waitFor(() => - expect( - screen.getByRole("heading", { name: /customers/i }), - ).toHaveTextContent("Customers also purchased"), - ); - - // The default "real" delay in a Node process is 20ms to avoid render - // batching - // Once the screen unsuspends, we have rendered the first chunk - expect(screen.getAllByTestId(/rating/i)[0]).toHaveTextContent("-"); - expect(screen.getByText(/beanie/i)).toBeInTheDocument(); - - await waitFor(() => { - expect(screen.getAllByTestId(/rating/i)[0]).not.toHaveTextContent("-"); - }); - }); - it("can set a new schema via replaceSchema", async () => { - using _restore = replaceSchema({ - resolvers: { - Query: { - products: () => { - return Array.from({ length: 6 }, (_element, id) => ({ - id: `${id}`, - title: `Foo bar ${id}`, - mediaUrl: `https://storage.googleapis.com/hack-the-supergraph/apollo-${products[id]}.jpg`, - reviews: [ - { - id: `review-${id}`, - rating: id, - }, - ], - })); - }, - }, - }, - }); - - const client = makeClient(); - - render( - - Loading...}> - - - , - ); - - // The app kicks off the request and we see the initial loading indicator... - await waitFor(() => - expect( - screen.getByRole("heading", { name: /loading/i }), - ).toHaveTextContent("Loading..."), - ); - - // The default "real" delay in a Node process is 20ms to avoid batching - // Once the screen unsuspends, we have rendered the first chunk - await waitFor(() => - expect( - screen.getByRole("heading", { name: /customers/i }), - ).toHaveTextContent("Customers also purchased"), - ); - - expect(screen.getAllByTestId(/rating/i)[0]).toHaveTextContent("-"); - expect(screen.getByText(/foo bar 1/i)).toBeInTheDocument(); - - await waitFor(() => { - // This "5/5" review value was set when we called `replaceSchema` with a - // new executable schema in this test - expect(screen.getByText(/5\/5/i)).toBeInTheDocument(); - }); - }); - it("can set a new delay via replaceDelay", async () => { - // In this test we set a new delay value via `replaceDelay` which is used to - // simulate network latency - // Usually, in Jest tests we want this to be 20ms (the default in Node - // processes) so renders are *not* auto-batched, but in certain tests we may - // want a shorter or longer delay before chunks or entire responses resolve - using _restore = replaceDelay(1); - - const client = makeClient(); - - render( - - Loading...}> - - - , - ); - - // The app kicks off the request and we see the initial loading indicator... - await waitFor(() => - expect( - screen.getByRole("heading", { name: /loading/i }), - ).toHaveTextContent("Loading..."), - ); - - await waitFor(() => - expect( - screen.getByRole("heading", { name: /customers/i }), - ).toHaveTextContent("Customers also purchased"), - ); + render(); - // Since our renders are batched, we will see the final review value - // in the initial render, since renders have been batched - // TODO: investigate flakiness when running with Vite that prompted - // it to be wrapped in waitFor when it shouldn't need to be - // await waitFor(() => { - // expect(screen.getAllByTestId(/rating/i)[0]).toHaveTextContent("0/5"); - // }); - expect(screen.getByText(/beanie/i)).toBeInTheDocument(); - }); + await waitFor(() => + expect(screen.getByText(/beanie/i)).toBeInTheDocument(), + ); }); }); diff --git a/src/__tests__/mocks/handlers.ts b/src/__tests__/mocks/handlers.ts index 1cf45db..c22ca72 100644 --- a/src/__tests__/mocks/handlers.ts +++ b/src/__tests__/mocks/handlers.ts @@ -1,26 +1,46 @@ import { createHandler } from "../../handlers.js"; import typeDefs from "../../../.storybook/stories/components/relay/schema.graphql"; +import gitHubSchema from "../../../publicGitHubSchema.graphql"; import type { Resolvers } from "../../__generated__/resolvers-types.ts"; export const products = ["beanie", "bottle", "cap", "onesie", "shirt", "socks"]; +// const { handler, replaceSchema, replaceDelay } = createHandler({ +// typeDefs, +// resolvers: { +// Query: { +// products: () => +// Array.from({ length: products.length }, (_element, id) => ({ +// id: `${id}`, +// title: products[id], +// mediaUrl: `https://storage.googleapis.com/hack-the-supergraph/apollo-${products[id]}.jpg`, +// reviews: [ +// { +// id: `review-${id}`, +// rating: id * 2, +// }, +// ], +// })), +// }, +// }, +// }); const { handler, replaceSchema, replaceDelay } = createHandler({ - typeDefs, + typeDefs: gitHubSchema, resolvers: { - Query: { - products: () => - Array.from({ length: products.length }, (_element, id) => ({ - id: `${id}`, - title: products[id], - mediaUrl: `https://storage.googleapis.com/hack-the-supergraph/apollo-${products[id]}.jpg`, - reviews: [ - { - id: `review-${id}`, - rating: id * 2, - }, - ], - })), - }, + // Query: { + // products: () => + // Array.from({ length: products.length }, (_element, id) => ({ + // id: `${id}`, + // title: products[id], + // mediaUrl: `https://storage.googleapis.com/hack-the-supergraph/apollo-${products[id]}.jpg`, + // reviews: [ + // { + // id: `review-${id}`, + // rating: id * 2, + // }, + // ], + // })), + // }, }, }); diff --git a/src/handlers.ts b/src/handlers.ts index 41290f6..de23eaf 100644 --- a/src/handlers.ts +++ b/src/handlers.ts @@ -1,12 +1,18 @@ import { gql } from "graphql-tag"; import { execute } from "@graphql-tools/executor"; import { isNodeProcess } from "is-node-process"; -import type { - ExecutionResult, - GraphQLSchema, - ASTNode, - DocumentNode, - GraphQLResolveInfo, +import { + type ExecutionResult, + type GraphQLSchema, + type ASTNode, + type DocumentNode, + type GraphQLResolveInfo, + GraphQLEnumType, + type GraphQLEnumValue, + isUnionType, + isInterfaceType, + isObjectType, + isScalarType, } from "graphql"; import { visit, BREAK } from "graphql"; import { HttpResponse, graphql, delay as mswDelay } from "msw"; @@ -15,8 +21,16 @@ import type { SingularExecutionResult, SubsequentIncrementalExecutionResult, } from "@graphql-tools/executor"; -import { makeExecutableSchema } from "@graphql-tools/schema"; -import { addMocksToSchema, type IMockStore } from "@graphql-tools/mock"; +import { + addResolversToSchema, + makeExecutableSchema, +} from "@graphql-tools/schema"; +import { + addMocksToSchema, + type IMocks, + type IMockStore, +} from "@graphql-tools/mock"; +import { mergeResolvers } from "@graphql-tools/merge"; const encoder = new TextEncoder(); @@ -43,35 +57,135 @@ interface DelayOptions { delay?: Delay; } -type DocumentNodeAndResolversOptions = { +type DocumentResolversWithOptions = { typeDefs: DocumentNode; resolvers: Partial | ((store: IMockStore) => Partial); - schema?: never; + mocks?: IMocks; } & DelayOptions; -type SchemaOptions = { +type SchemaWithOptions = { schema: GraphQLSchema; - typeDefs?: never; - resolvers?: never; } & DelayOptions; -export type CreateHandlerDefinition = - | SchemaOptions - | DocumentNodeAndResolversOptions; +// Generates a Map of possible types. The keys are Union | Interface type names +// which map to Sets of either union members or types that implement the +// interface. +const createPossibleTypesMap = (executableSchema: GraphQLSchema) => { + const typeMap = executableSchema.getTypeMap(); + const typesMap = new Map>(); + + for (const typeName of Object.keys(typeMap)) { + const type = typeMap[typeName]; + + if (isUnionType(type) && !typesMap.has(typeName)) { + typesMap.set(typeName, new Set(type.getTypes().map((item) => item.name))); + } + + if (isObjectType(type) && type.getInterfaces().length > 0) { + for (const interfaceType of type.getInterfaces()) { + if (typesMap.has(interfaceType.name)) { + const setOfTypes = typesMap.get(interfaceType.name); + if (setOfTypes) { + typesMap.set( + interfaceType.name, + new Set([...Array.from(setOfTypes), typeName]), + ); + } + } else { + typesMap.set(interfaceType.name, new Set([typeName])); + } + } + } + } + return typesMap; +}; + +// From a Map of possible types, create +const createDefaultResolvers = (typesMap: Map>) => { + const defaultResolvers: { + [key: string]: { + __resolveType(data: { __typename?: string }): string; + }; + } = {}; + + for (const key of typesMap.keys()) { + defaultResolvers[key] = { + __resolveType(data: { __typename?: string }) { + return data.__typename || typesMap.get(key)?.values().next().value; + }, + }; + } + return defaultResolvers; +}; + +const sortEnumsByValue = () => { + const key = "value"; + return (a: GraphQLEnumValue, b: GraphQLEnumValue) => + a[key] > b[key] ? 1 : b[key] > a[key] ? -1 : 0; +}; + +// TODO: memoize +// Creates a map of enum types and mock resolver functions that return +// the first possible value. +export const mockEnums = (schema: GraphQLSchema) => { + return Object.fromEntries( + Object.entries(schema.getTypeMap()) + .filter( + (arg): arg is [string, GraphQLEnumType] => + arg[1] instanceof GraphQLEnumType, + ) + .map(([typeName, type]) => { + const value = type + .getValues() + .concat() + .sort(sortEnumsByValue())[0]?.value; + return [typeName, () => value] as const; + }), + ); +}; + +const mockScalars = (schema: GraphQLSchema) => { + const typeMap = schema.getTypeMap(); + const mockScalarsMap: Record string> = {}; + + for (const typeName of Object.keys(typeMap)) { + const type = typeMap[typeName]; + if (isScalarType(type) && type.astNode) { + // console.log(typeName, type); + mockScalarsMap[typeName] = () => + `Default value for custom scalar \`${typeName}\``; + } + } + return mockScalarsMap; +}; export const createHandler = ( - schemaOrDocumentAndResolvers: CreateHandlerDefinition, + documentResolversWithOptions: DocumentResolversWithOptions, ) => { - const { schema, resolvers, delay, typeDefs } = schemaOrDocumentAndResolvers; + const { resolvers, typeDefs, mocks, ...rest } = documentResolversWithOptions; - let executableSchema = schema ?? makeExecutableSchema({ typeDefs }); + let executableSchema = makeExecutableSchema({ typeDefs }); - let schemaWithMocks = - schema ?? - addMocksToSchema({ - schema: executableSchema, - resolvers, - }); + const enumMocks = mockEnums(executableSchema); + const typesMap = createPossibleTypesMap(executableSchema); + const defaultResolvers = createDefaultResolvers(typesMap); + const defaultMockScalars = mockScalars(executableSchema); + + let schemaWithMocks = addMocksToSchema({ + schema: executableSchema, + // TODO: combine with default custom scalar mocks and user-defined scalar mocks + mocks: { ...enumMocks, ...defaultMockScalars }, + resolvers, + preserveResolvers: true, + }); + + return createHandlerFromSchema({ schema: schemaWithMocks, ...rest }); +}; + +export const createHandlerFromSchema = ( + schemaWithOptions: SchemaWithOptions, +) => { + const { schema, delay } = schemaWithOptions; let _delay = delay ?? "real"; // The default node server response time in MSW's delay utility is 5ms. @@ -82,24 +196,12 @@ export const createHandler = ( _delay = 20; } - let testSchema: GraphQLSchema = schemaWithMocks; + let testSchema: GraphQLSchema = schema; - function replaceSchema( - newSchemaOrResolvers: Omit< - CreateHandlerDefinition, - "delay" | "typeDefs" - >, - ) { + function replaceSchema(newSchema: GraphQLSchema) { const oldSchema = testSchema; - const { schema: newSchema, resolvers: newResolvers } = newSchemaOrResolvers; - - testSchema = - newSchema ?? - addMocksToSchema({ - schema: executableSchema, - resolvers: newResolvers, - }); + testSchema = newSchema; function restore() { testSchema = oldSchema; From 90318f47d2e2f9aaf8ed7e8224abb77a8d094d76 Mon Sep 17 00:00:00 2001 From: Alessia Bellisario Date: Thu, 1 Aug 2024 06:36:26 -0400 Subject: [PATCH 03/19] save progress --- src/handlers.ts | 140 ++++------------------------------------------- src/index.ts | 17 +++++- src/utilities.ts | 135 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 162 insertions(+), 130 deletions(-) create mode 100644 src/utilities.ts diff --git a/src/handlers.ts b/src/handlers.ts index de23eaf..c8e5488 100644 --- a/src/handlers.ts +++ b/src/handlers.ts @@ -4,53 +4,30 @@ import { isNodeProcess } from "is-node-process"; import { type ExecutionResult, type GraphQLSchema, - type ASTNode, type DocumentNode, - type GraphQLResolveInfo, - GraphQLEnumType, - type GraphQLEnumValue, - isUnionType, - isInterfaceType, - isObjectType, - isScalarType, } from "graphql"; -import { visit, BREAK } from "graphql"; import { HttpResponse, graphql, delay as mswDelay } from "msw"; import type { InitialIncrementalExecutionResult, SingularExecutionResult, SubsequentIncrementalExecutionResult, } from "@graphql-tools/executor"; -import { - addResolversToSchema, - makeExecutableSchema, -} from "@graphql-tools/schema"; +import { makeExecutableSchema } from "@graphql-tools/schema"; import { addMocksToSchema, type IMocks, type IMockStore, } from "@graphql-tools/mock"; -import { mergeResolvers } from "@graphql-tools/merge"; +import { + createDefaultResolvers, + createPossibleTypesMap, + mockCustomScalars, + mockEnums, + hasDirectives, +} from "./utilities.ts"; const encoder = new TextEncoder(); -export function hasDirectives(names: string[], root: ASTNode, all?: boolean) { - const nameSet = new Set(names); - const uniqueCount = nameSet.size; - - visit(root, { - Directive(node) { - if (nameSet.delete(node.name.value) && (!all || !nameSet.size)) { - return BREAK; - } - }, - }); - - // If we found all the names, nameSet will be empty. If we only care about - // finding some of them, the < condition is sufficient. - return all ? !nameSet.size : nameSet.size < uniqueCount; -} - type Delay = number | "infinite" | "real"; interface DelayOptions { @@ -67,98 +44,6 @@ type SchemaWithOptions = { schema: GraphQLSchema; } & DelayOptions; -// Generates a Map of possible types. The keys are Union | Interface type names -// which map to Sets of either union members or types that implement the -// interface. -const createPossibleTypesMap = (executableSchema: GraphQLSchema) => { - const typeMap = executableSchema.getTypeMap(); - const typesMap = new Map>(); - - for (const typeName of Object.keys(typeMap)) { - const type = typeMap[typeName]; - - if (isUnionType(type) && !typesMap.has(typeName)) { - typesMap.set(typeName, new Set(type.getTypes().map((item) => item.name))); - } - - if (isObjectType(type) && type.getInterfaces().length > 0) { - for (const interfaceType of type.getInterfaces()) { - if (typesMap.has(interfaceType.name)) { - const setOfTypes = typesMap.get(interfaceType.name); - if (setOfTypes) { - typesMap.set( - interfaceType.name, - new Set([...Array.from(setOfTypes), typeName]), - ); - } - } else { - typesMap.set(interfaceType.name, new Set([typeName])); - } - } - } - } - return typesMap; -}; - -// From a Map of possible types, create -const createDefaultResolvers = (typesMap: Map>) => { - const defaultResolvers: { - [key: string]: { - __resolveType(data: { __typename?: string }): string; - }; - } = {}; - - for (const key of typesMap.keys()) { - defaultResolvers[key] = { - __resolveType(data: { __typename?: string }) { - return data.__typename || typesMap.get(key)?.values().next().value; - }, - }; - } - return defaultResolvers; -}; - -const sortEnumsByValue = () => { - const key = "value"; - return (a: GraphQLEnumValue, b: GraphQLEnumValue) => - a[key] > b[key] ? 1 : b[key] > a[key] ? -1 : 0; -}; - -// TODO: memoize -// Creates a map of enum types and mock resolver functions that return -// the first possible value. -export const mockEnums = (schema: GraphQLSchema) => { - return Object.fromEntries( - Object.entries(schema.getTypeMap()) - .filter( - (arg): arg is [string, GraphQLEnumType] => - arg[1] instanceof GraphQLEnumType, - ) - .map(([typeName, type]) => { - const value = type - .getValues() - .concat() - .sort(sortEnumsByValue())[0]?.value; - return [typeName, () => value] as const; - }), - ); -}; - -const mockScalars = (schema: GraphQLSchema) => { - const typeMap = schema.getTypeMap(); - const mockScalarsMap: Record string> = {}; - - for (const typeName of Object.keys(typeMap)) { - const type = typeMap[typeName]; - if (isScalarType(type) && type.astNode) { - // console.log(typeName, type); - mockScalarsMap[typeName] = () => - `Default value for custom scalar \`${typeName}\``; - } - } - return mockScalarsMap; -}; - export const createHandler = ( documentResolversWithOptions: DocumentResolversWithOptions, ) => { @@ -166,16 +51,15 @@ export const createHandler = ( let executableSchema = makeExecutableSchema({ typeDefs }); - const enumMocks = mockEnums(executableSchema); + const enumMocks = mockEnums(executableSchema); + const customScalarMocks = mockCustomScalars(executableSchema); const typesMap = createPossibleTypesMap(executableSchema); const defaultResolvers = createDefaultResolvers(typesMap); - const defaultMockScalars = mockScalars(executableSchema); let schemaWithMocks = addMocksToSchema({ schema: executableSchema, - // TODO: combine with default custom scalar mocks and user-defined scalar mocks - mocks: { ...enumMocks, ...defaultMockScalars }, - resolvers, + mocks: { ...enumMocks, ...customScalarMocks, ...mocks }, + resolvers: { ...defaultResolvers, ...resolvers }, preserveResolvers: true, }); diff --git a/src/index.ts b/src/index.ts index 04375bb..7eb4804 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,3 +1,16 @@ -import { createHandler } from "./handlers.js"; +import { createHandler, createHandlerFromSchema } from "./handlers.js"; +import { + mockEnums, + mockCustomScalars, + createPossibleTypesMap, + createDefaultResolvers, +} from "./utilities.ts"; -export { createHandler }; +export { + createHandler, + createHandlerFromSchema, + mockEnums, + mockCustomScalars, + createPossibleTypesMap, + createDefaultResolvers, +}; diff --git a/src/utilities.ts b/src/utilities.ts new file mode 100644 index 0000000..150a1d3 --- /dev/null +++ b/src/utilities.ts @@ -0,0 +1,135 @@ +import { + type ASTNode, + type GraphQLSchema, + type GraphQLEnumValue, + GraphQLEnumType, + isUnionType, + isObjectType, + isScalarType, + visit, + BREAK, +} from "graphql"; +import { + type IMocks, + type IScalarMock, + type ITypeMock, +} from "@graphql-tools/mock"; + +export function hasDirectives(names: string[], root: ASTNode, all?: boolean) { + const nameSet = new Set(names); + const uniqueCount = nameSet.size; + + visit(root, { + Directive(node) { + if (nameSet.delete(node.name.value) && (!all || !nameSet.size)) { + return BREAK; + } + }, + }); + + // If we found all the names, nameSet will be empty. If we only care about + // finding some of them, the < condition is sufficient. + return all ? !nameSet.size : nameSet.size < uniqueCount; +} + +// Generates a Map of possible types. The keys are Union | Interface type names +// which map to Sets of either union members or types that implement the +// interface. +export const createPossibleTypesMap = (executableSchema: GraphQLSchema) => { + const typeMap = executableSchema.getTypeMap(); + const possibleTypesMap = new Map>(); + + for (const typeName of Object.keys(typeMap)) { + const type = typeMap[typeName]; + + if (isUnionType(type) && !possibleTypesMap.has(typeName)) { + possibleTypesMap.set( + typeName, + new Set(type.getTypes().map(({ name }) => name)), + ); + } + + if (isObjectType(type) && type.getInterfaces().length > 0) { + for (const interfaceType of type.getInterfaces()) { + if (possibleTypesMap.has(interfaceType.name)) { + const setOfTypes = possibleTypesMap.get(interfaceType.name); + if (setOfTypes) { + possibleTypesMap.set(interfaceType.name, setOfTypes.add(typeName)); + } + } else { + possibleTypesMap.set(interfaceType.name, new Set([typeName])); + } + } + } + } + return possibleTypesMap; +}; + +// From a Map of possible types, create default resolvers with __resolveType +// functions that pick the first possible type if no __typename is present. +export const createDefaultResolvers = (typesMap: Map>) => { + const defaultResolvers: { + [key: string]: { + __resolveType(data: { __typename?: string }): string; + }; + } = {}; + + for (const key of typesMap.keys()) { + defaultResolvers[key] = { + __resolveType(data) { + return data.__typename || typesMap.get(key)?.values().next().value; + }, + }; + } + return defaultResolvers; +}; + +// Sorts enum values alphabetically. +const sortEnumValues = () => { + const key = "value"; + return (a: GraphQLEnumValue, b: GraphQLEnumValue) => + a[key] > b[key] ? 1 : b[key] > a[key] ? -1 : 0; +}; + +// TODO: memoize +// Creates a map of enum types and mock resolver functions that return +// the first possible value. +export const mockEnums = ( + schema: GraphQLSchema, +): IMocks => { + // @ts-ignore + return Object.fromEntries( + Object.entries(schema.getTypeMap()) + .filter( + (arg): arg is [string, GraphQLEnumType] => + arg[1] instanceof GraphQLEnumType, + ) + .map(([typeName, type]) => { + const value = type + .getValues() + .concat() + .sort(sortEnumValues())[0]?.value; + return [typeName, () => value] as const; + }), + ); +}; + +export const mockCustomScalars = ( + schema: GraphQLSchema, +): IMocks => { + const typeMap = schema.getTypeMap(); + + const mockScalarsMap: { + [typeOrScalarName: string]: IScalarMock | ITypeMock; + } = {}; + + for (const typeName of Object.keys(typeMap)) { + const type = typeMap[typeName]; + // Only mock custom scalars + if (isScalarType(type) && type.astNode) { + mockScalarsMap[typeName] = () => + `Default value for custom scalar \`${typeName}\``; + } + } + return mockScalarsMap as IMocks; +}; From 9d1dc27abe1c515a437fb039e58f52f21dae4021 Mon Sep 17 00:00:00 2001 From: Alessia Bellisario Date: Thu, 1 Aug 2024 17:20:25 -0400 Subject: [PATCH 04/19] chore: refactor --- .../stories/github.graphql | 0 docs/tsconfig.json | 2 +- package.json | 1 + pnpm-lock.yaml | 3 + src/__tests__/handlers.test.tsx | 395 +++++++++--------- src/__tests__/mocks/handlers.ts | 61 +-- src/createSchema.ts | 141 +++++++ src/handlers.ts | 84 +++- src/index.ts | 12 +- src/utilities.ts | 132 +++++- 10 files changed, 548 insertions(+), 283 deletions(-) rename publicGitHubSchema.graphql => .storybook/stories/github.graphql (100%) create mode 100644 src/createSchema.ts diff --git a/publicGitHubSchema.graphql b/.storybook/stories/github.graphql similarity index 100% rename from publicGitHubSchema.graphql rename to .storybook/stories/github.graphql diff --git a/docs/tsconfig.json b/docs/tsconfig.json index 77da9dd..bcbf8b5 100644 --- a/docs/tsconfig.json +++ b/docs/tsconfig.json @@ -1,3 +1,3 @@ { "extends": "astro/tsconfigs/strict" -} \ No newline at end of file +} diff --git a/package.json b/package.json index 26b9762..cb7e381 100644 --- a/package.json +++ b/package.json @@ -122,6 +122,7 @@ "@graphql-tools/merge": "^9.0.4", "@graphql-tools/mock": "^9.0.4", "@graphql-tools/schema": "^10.0.4", + "@graphql-tools/utils": "^10.3.2", "graphql-tag": "^2.12.6", "is-node-process": "^1.2.0" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1239bfe..008d726 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -20,6 +20,9 @@ importers: '@graphql-tools/schema': specifier: ^10.0.4 version: 10.0.4(graphql@16.9.0) + '@graphql-tools/utils': + specifier: ^10.3.2 + version: 10.3.2(graphql@16.9.0) graphql-tag: specifier: ^2.12.6 version: 2.12.6(graphql@16.9.0) diff --git a/src/__tests__/handlers.test.tsx b/src/__tests__/handlers.test.tsx index b5e49c3..fe566ef 100644 --- a/src/__tests__/handlers.test.tsx +++ b/src/__tests__/handlers.test.tsx @@ -11,224 +11,227 @@ import { AppWithDefer, makeClient, } from "../../.storybook/stories/components/apollo-client/ApolloComponent.tsx"; -import { replaceSchema, replaceDelay, products } from "./mocks/handlers.js"; +import { + replaceSchema, + replaceDelay, + products, + withResolvers, +} from "./mocks/handlers.js"; + +describe("integration tests", () => { + describe("single execution result response", () => { + it("intercepts and resolves with a single payload", async () => { + const client = makeClient(); + + render( + + Loading...}> + + + , + ); -// describe("integration tests", () => { -// describe.skip("single execution result response", () => { -// it.only("intercepts and resolves with a single payload", async () => { -// const client = makeClient(); + // The app kicks off the request and we see the initial loading indicator... + await waitFor(() => + expect( + screen.getByRole("heading", { name: /loading/i }), + ).toHaveTextContent("Loading..."), + ); -// render( -// -// Loading...}> -// -// -// , -// ); + await waitFor(() => + expect( + screen.getByRole("heading", { name: /customers/i }), + ).toHaveTextContent("Customers also purchased"), + ); -// // The app kicks off the request and we see the initial loading indicator... -// await waitFor(() => -// expect( -// screen.getByRole("heading", { name: /loading/i }), -// ).toHaveTextContent("Loading..."), -// ); + expect(screen.getByText(/beanie/i)).toBeInTheDocument(); + expect(screen.getAllByTestId(/rating/i)[0]).not.toHaveTextContent("-"); + }); + }); + describe("multipart response", () => { + it("uses the initial mock schema set in the handler by default", async () => { + const client = makeClient(); -// await waitFor(() => -// expect( -// screen.getByRole("heading", { name: /customers/i }), -// ).toHaveTextContent("Customers also purchased"), -// ); + render( + + Loading...}> + + + , + ); -// expect(screen.getByText(/beanie/i)).toBeInTheDocument(); -// expect(screen.getAllByTestId(/rating/i)[0]).not.toHaveTextContent("-"); -// }); -// }); -// describe.skip("multipart response", () => { -// it("uses the initial mock schema set in the handler by default", async () => { -// const client = makeClient(); + // The app kicks off the request and we see the initial loading indicator... + await waitFor(() => + expect( + screen.getByRole("heading", { name: /loading/i }), + ).toHaveTextContent("Loading..."), + ); -// render( -// -// Loading...}> -// -// -// , -// ); + await waitFor(() => + expect( + screen.getByRole("heading", { name: /customers/i }), + ).toHaveTextContent("Customers also purchased"), + ); -// // The app kicks off the request and we see the initial loading indicator... -// await waitFor(() => -// expect( -// screen.getByRole("heading", { name: /loading/i }), -// ).toHaveTextContent("Loading..."), -// ); + // The default "real" delay in a Node process is 20ms to avoid render + // batching + // Once the screen unsuspends, we have rendered the first chunk + expect(screen.getAllByTestId(/rating/i)[0]).toHaveTextContent("-"); + expect(screen.getByText(/beanie/i)).toBeInTheDocument(); + + await waitFor(() => { + expect(screen.getAllByTestId(/rating/i)[0]).not.toHaveTextContent("-"); + }); + }); + it("can set a new schema via replaceSchema", async () => { + using _restore = withResolvers({ + Query: { + products: () => { + return Array.from({ length: 6 }, (_element, id) => ({ + id: `${id}`, + title: `Foo bar ${id}`, + mediaUrl: `https://storage.googleapis.com/hack-the-supergraph/apollo-${products[id]}.jpg`, + reviews: [ + { + id: `review-${id}`, + rating: id, + }, + ], + })); + }, + }, + }); + + const client = makeClient(); + + render( + + Loading...}> + + + , + ); -// await waitFor(() => -// expect( -// screen.getByRole("heading", { name: /customers/i }), -// ).toHaveTextContent("Customers also purchased"), -// ); + // The app kicks off the request and we see the initial loading indicator... + await waitFor(() => + expect( + screen.getByRole("heading", { name: /loading/i }), + ).toHaveTextContent("Loading..."), + ); -// // The default "real" delay in a Node process is 20ms to avoid render -// // batching -// // Once the screen unsuspends, we have rendered the first chunk -// expect(screen.getAllByTestId(/rating/i)[0]).toHaveTextContent("-"); -// expect(screen.getByText(/beanie/i)).toBeInTheDocument(); - -// await waitFor(() => { -// expect(screen.getAllByTestId(/rating/i)[0]).not.toHaveTextContent("-"); -// }); -// }); -// it("can set a new schema via replaceSchema", async () => { -// using _restore = replaceSchema({ -// resolvers: { -// Query: { -// products: () => { -// return Array.from({ length: 6 }, (_element, id) => ({ -// id: `${id}`, -// title: `Foo bar ${id}`, -// mediaUrl: `https://storage.googleapis.com/hack-the-supergraph/apollo-${products[id]}.jpg`, -// reviews: [ -// { -// id: `review-${id}`, -// rating: id, -// }, -// ], -// })); -// }, -// }, -// }, -// }); - -// const client = makeClient(); - -// render( -// -// Loading...}> -// -// -// , -// ); + // The default "real" delay in a Node process is 20ms to avoid batching + // Once the screen unsuspends, we have rendered the first chunk + await waitFor(() => + expect( + screen.getByRole("heading", { name: /customers/i }), + ).toHaveTextContent("Customers also purchased"), + ); -// // The app kicks off the request and we see the initial loading indicator... -// await waitFor(() => -// expect( -// screen.getByRole("heading", { name: /loading/i }), -// ).toHaveTextContent("Loading..."), -// ); + expect(screen.getAllByTestId(/rating/i)[0]).toHaveTextContent("-"); + expect(screen.getByText(/foo bar 1/i)).toBeInTheDocument(); + + await waitFor(() => { + // This "5/5" review value was set when we called `replaceSchema` with a + // new executable schema in this test + expect(screen.getByText(/5\/5/i)).toBeInTheDocument(); + }); + }); + it("can set a new delay via replaceDelay", async () => { + // In this test we set a new delay value via `replaceDelay` which is used to + // simulate network latency + // Usually, in Jest tests we want this to be 20ms (the default in Node + // processes) so renders are *not* auto-batched, but in certain tests we may + // want a shorter or longer delay before chunks or entire responses resolve + using _restore = replaceDelay(1); + + const client = makeClient(); + + render( + + Loading...}> + + + , + ); -// // The default "real" delay in a Node process is 20ms to avoid batching -// // Once the screen unsuspends, we have rendered the first chunk -// await waitFor(() => -// expect( -// screen.getByRole("heading", { name: /customers/i }), -// ).toHaveTextContent("Customers also purchased"), -// ); + // The app kicks off the request and we see the initial loading indicator... + await waitFor(() => + expect( + screen.getByRole("heading", { name: /loading/i }), + ).toHaveTextContent("Loading..."), + ); + + await waitFor(() => + expect( + screen.getByRole("heading", { name: /customers/i }), + ).toHaveTextContent("Customers also purchased"), + ); + + // Since our renders are batched, we will see the final review value + // in the initial render, since renders have been batched + // TODO: investigate flakiness when running with Vite that prompted + // it to be wrapped in waitFor when it shouldn't need to be + // await waitFor(() => { + // expect(screen.getAllByTestId(/rating/i)[0]).toHaveTextContent("0/5"); + // }); + expect(screen.getByText(/beanie/i)).toBeInTheDocument(); + }); + }); +}); -// expect(screen.getAllByTestId(/rating/i)[0]).toHaveTextContent("-"); -// expect(screen.getByText(/foo bar 1/i)).toBeInTheDocument(); - -// await waitFor(() => { -// // This "5/5" review value was set when we called `replaceSchema` with a -// // new executable schema in this test -// expect(screen.getByText(/5\/5/i)).toBeInTheDocument(); -// }); -// }); -// it("can set a new delay via replaceDelay", async () => { -// // In this test we set a new delay value via `replaceDelay` which is used to -// // simulate network latency -// // Usually, in Jest tests we want this to be 20ms (the default in Node -// // processes) so renders are *not* auto-batched, but in certain tests we may -// // want a shorter or longer delay before chunks or entire responses resolve -// using _restore = replaceDelay(1); - -// const client = makeClient(); - -// render( +// describe.skip("integration tests with github schema", () => { +// it("renders a component fetching from the GitHub api", async () => { +// const client = makeClient(); + +// const APP_QUERY = gql` +// query AppQuery { +// repository(owner: "octocat", name: "Hello-World") { +// issues(last: 20, states: CLOSED) { +// edges { +// node { +// title +// url +// labels(first: 5) { +// edges { +// node { +// name +// } +// } +// } +// } +// } +// } +// } +// } +// `; + +// const Shell = () => { +// console.log("render"); +// return ( // // Loading...}> -// +// // -// , +// // ); +// }; -// // The app kicks off the request and we see the initial loading indicator... -// await waitFor(() => -// expect( -// screen.getByRole("heading", { name: /loading/i }), -// ).toHaveTextContent("Loading..."), -// ); +// const App = () => { +// const { data } = useSuspenseQuery(APP_QUERY); +// if (data) { +// console.log(data.repository.issues.edges); +// } +// return <>hi; +// }; -// await waitFor(() => -// expect( -// screen.getByRole("heading", { name: /customers/i }), -// ).toHaveTextContent("Customers also purchased"), -// ); +// render(); -// // Since our renders are batched, we will see the final review value -// // in the initial render, since renders have been batched -// // TODO: investigate flakiness when running with Vite that prompted -// // it to be wrapped in waitFor when it shouldn't need to be -// // await waitFor(() => { -// // expect(screen.getAllByTestId(/rating/i)[0]).toHaveTextContent("0/5"); -// // }); -// expect(screen.getByText(/beanie/i)).toBeInTheDocument(); -// }); +// await waitFor(() => +// expect(screen.getByText(/beanie/i)).toBeInTheDocument(), +// ); // }); // }); -describe("integration tests with github schema", () => { - it("renders a component fetching from the GitHub api", async () => { - const client = makeClient(); - - const APP_QUERY = gql` - query AppQuery { - repository(owner: "octocat", name: "Hello-World") { - issues(last: 20, states: CLOSED) { - edges { - node { - title - url - labels(first: 5) { - edges { - node { - name - } - } - } - } - } - } - } - } - `; - - const Shell = () => { - console.log("render"); - return ( - - Loading...}> - - - - ); - }; - - const App = () => { - const { data } = useSuspenseQuery(APP_QUERY); - if (data) { - console.log(data.repository.issues.edges); - } - return <>hi; - }; - - render(); - - await waitFor(() => - expect(screen.getByText(/beanie/i)).toBeInTheDocument(), - ); - }); -}); - describe("unit tests", () => { it("can roll back delay via disposable", () => { function innerFn() { diff --git a/src/__tests__/mocks/handlers.ts b/src/__tests__/mocks/handlers.ts index c22ca72..8e7fec1 100644 --- a/src/__tests__/mocks/handlers.ts +++ b/src/__tests__/mocks/handlers.ts @@ -1,49 +1,30 @@ import { createHandler } from "../../handlers.js"; import typeDefs from "../../../.storybook/stories/components/relay/schema.graphql"; -import gitHubSchema from "../../../publicGitHubSchema.graphql"; import type { Resolvers } from "../../__generated__/resolvers-types.ts"; export const products = ["beanie", "bottle", "cap", "onesie", "shirt", "socks"]; -// const { handler, replaceSchema, replaceDelay } = createHandler({ -// typeDefs, -// resolvers: { -// Query: { -// products: () => -// Array.from({ length: products.length }, (_element, id) => ({ -// id: `${id}`, -// title: products[id], -// mediaUrl: `https://storage.googleapis.com/hack-the-supergraph/apollo-${products[id]}.jpg`, -// reviews: [ -// { -// id: `review-${id}`, -// rating: id * 2, -// }, -// ], -// })), -// }, -// }, -// }); -const { handler, replaceSchema, replaceDelay } = createHandler({ - typeDefs: gitHubSchema, - resolvers: { - // Query: { - // products: () => - // Array.from({ length: products.length }, (_element, id) => ({ - // id: `${id}`, - // title: products[id], - // mediaUrl: `https://storage.googleapis.com/hack-the-supergraph/apollo-${products[id]}.jpg`, - // reviews: [ - // { - // id: `review-${id}`, - // rating: id * 2, - // }, - // ], - // })), - // }, - }, -}); +const { handler, replaceSchema, withResolvers, replaceDelay } = + createHandler({ + typeDefs, + resolvers: { + Query: { + products: () => + Array.from({ length: products.length }, (_element, id) => ({ + id: `${id}`, + title: products[id], + mediaUrl: `https://storage.googleapis.com/hack-the-supergraph/apollo-${products[id]}.jpg`, + reviews: [ + { + id: `review-${id}`, + rating: id * 2, + }, + ], + })), + }, + }, + }); const handlers = [handler]; -export { replaceSchema, replaceDelay, handlers, handler }; +export { replaceSchema, replaceDelay, handlers, handler, withResolvers }; diff --git a/src/createSchema.ts b/src/createSchema.ts new file mode 100644 index 0000000..8e7e934 --- /dev/null +++ b/src/createSchema.ts @@ -0,0 +1,141 @@ +// import type { FieldNode, FragmentDefinitionNode, GraphQLSchema } from "graphql"; +// import { addResolversToSchema } from "@graphql-tools/schema"; +// import { mergeResolvers } from "@graphql-tools/merge"; + +// type ProxiedSchema = GraphQLSchema & TestSchemaFns; + +// export interface FragmentMap { +// [fragmentName: string]: FragmentDefinitionNode; +// } + +// export type Resolver = ( +// rootValue?: any, +// args?: any, +// context?: any, +// info?: { +// field: FieldNode; +// fragmentMap: FragmentMap; +// }, +// ) => any; + +// interface Resolvers { +// [key: string]: { +// [field: string]: Resolver; +// }; +// } + +// export interface TestSchemaFns { +// add: (addOptions: { resolvers: Resolvers }) => ProxiedSchema; +// fork: (forkOptions?: { resolvers?: Resolvers }) => ProxiedSchema; +// reset: () => void; +// } + +// interface TestSchemaOptions { +// resolvers?: Resolvers; +// } + +// /** +// * A function that creates a [Proxy object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy) +// * around a given `schema` with `resolvers`. This proxied schema can be used to +// * progressively layer resolvers on top of the original schema using the `add` +// * method. The `fork` method can be used to create a new proxied schema which +// * can be modified independently of the original schema. `reset` will restore +// * resolvers to the original proxied schema. +// * +// */ +// const createTestSchema = ( +// schemaWithTypeDefs: GraphQLSchema, +// options: TestSchemaOptions, +// ): ProxiedSchema => { +// let targetResolvers = { ...options.resolvers }; +// let targetSchema = addResolversToSchema({ +// schema: schemaWithTypeDefs, +// resolvers: targetResolvers, +// }); + +// const fns: TestSchemaFns = { +// add: ({ resolvers: newResolvers }) => { +// // @ts-ignore TODO(fixme): IResolvers type does not play well with our Resolvers +// targetResolvers = mergeResolvers([targetResolvers, newResolvers]); + +// targetSchema = addResolversToSchema({ +// schema: targetSchema, +// resolvers: targetResolvers, +// }); + +// return targetSchema as ProxiedSchema; +// }, + +// fork: ({ resolvers: newResolvers } = {}) => { +// return createTestSchema(targetSchema, { +// // @ts-ignore TODO(fixme): IResolvers type does not play well with our Resolvers +// resolvers: +// mergeResolvers([targetResolvers, newResolvers]) ?? targetResolvers, +// }); +// }, + +// reset: () => { +// targetSchema = addResolversToSchema({ +// schema: schemaWithTypeDefs, +// resolvers: options.resolvers || {}, +// }); +// }, +// }; + +// const schema = new Proxy(targetSchema, { +// get(_target, p) { +// if (p in fns) { +// return Reflect.get(fns, p); +// } + +// // An optimization that eliminates round-trips through the proxy +// // on class methods invoked via `this` on a base class instance wrapped by +// // the proxy. +// // +// // For example, consider the following class: +// // +// // class Base { +// // foo(){ +// // this.bar() +// // } +// // bar(){ +// // ... +// // } +// // } +// // +// // Calling `proxy.foo()` would call `foo` with `this` being the proxy. +// // This would result in calling `proxy.bar()` which would again invoke +// // the proxy to resolve `bar` and call that method. +// // +// // Instead, calls to `proxy.foo()` should result in a call to +// // `innerObject.foo()` with a `this` of `innerObject`, and that call +// // should directly call `innerObject.bar()`. + +// const property = Reflect.get(targetSchema, p); +// if (typeof property === "function") { +// return property.bind(targetSchema); +// } +// return property; +// }, +// }); + +// // let testSchema: GraphQLSchema = schema; + +// // const oldSchema = testSchema; + +// // testSchema = newSchema; + +// function restore() { +// testSchema = oldSchema; +// } + +// return Object.assign(schema, { +// [Symbol.dispose]() { +// restore(); +// }, +// }) as unknown as ProxiedSchema; + +// // return schema as ProxiedSchema; +// }; + +// export { createTestSchema }; diff --git a/src/handlers.ts b/src/handlers.ts index c8e5488..c1443d9 100644 --- a/src/handlers.ts +++ b/src/handlers.ts @@ -12,7 +12,10 @@ import type { SingularExecutionResult, SubsequentIncrementalExecutionResult, } from "@graphql-tools/executor"; -import { makeExecutableSchema } from "@graphql-tools/schema"; +import { + addResolversToSchema, + makeExecutableSchema, +} from "@graphql-tools/schema"; import { addMocksToSchema, type IMocks, @@ -24,6 +27,7 @@ import { mockCustomScalars, mockEnums, hasDirectives, + mergeResolvers, } from "./utilities.ts"; const encoder = new TextEncoder(); @@ -36,39 +40,60 @@ interface DelayOptions { type DocumentResolversWithOptions = { typeDefs: DocumentNode; - resolvers: Partial | ((store: IMockStore) => Partial); + resolvers: Resolvers; mocks?: IMocks; } & DelayOptions; -type SchemaWithOptions = { +type Resolvers = + | Partial + | ((store: IMockStore) => Partial); + +type SchemaWithOptions = { schema: GraphQLSchema; + resolvers?: Resolvers; } & DelayOptions; -export const createHandler = ( +function createHandler( documentResolversWithOptions: DocumentResolversWithOptions, -) => { +) { const { resolvers, typeDefs, mocks, ...rest } = documentResolversWithOptions; - let executableSchema = makeExecutableSchema({ typeDefs }); + const executableSchema = makeExecutableSchema({ typeDefs }); + + const schemaWithMocks = createSchemaWithDefaultMocks( + executableSchema, + resolvers, + ); + + return createHandlerFromSchema({ + schema: schemaWithMocks, + ...rest, + }); +} - const enumMocks = mockEnums(executableSchema); - const customScalarMocks = mockCustomScalars(executableSchema); +function createSchemaWithDefaultMocks( + executableSchema: GraphQLSchema, + resolvers: Resolvers, + mocks?: IMocks, +) { + const enumMocks = mockEnums(executableSchema); + const customScalarMocks = mockCustomScalars(executableSchema); const typesMap = createPossibleTypesMap(executableSchema); const defaultResolvers = createDefaultResolvers(typesMap); - let schemaWithMocks = addMocksToSchema({ + return addMocksToSchema({ schema: executableSchema, - mocks: { ...enumMocks, ...customScalarMocks, ...mocks }, - resolvers: { ...defaultResolvers, ...resolvers }, + // @ts-expect-error reconcile mock resolver types + mocks: mergeResolvers(enumMocks, customScalarMocks, mocks ?? {}), + // @ts-expect-error reconcile mock resolver types + resolvers: mergeResolvers(defaultResolvers, resolvers), preserveResolvers: true, }); +} - return createHandlerFromSchema({ schema: schemaWithMocks, ...rest }); -}; - -export const createHandlerFromSchema = ( - schemaWithOptions: SchemaWithOptions, -) => { +function createHandlerFromSchema( + schemaWithOptions: SchemaWithOptions, +) { const { schema, delay } = schemaWithOptions; let _delay = delay ?? "real"; @@ -98,11 +123,22 @@ export const createHandlerFromSchema = ( }); } - // TODO: - // function replaceResolvers() {} + function withResolvers(resolvers: Resolvers) { + const oldSchema = testSchema; + + // @ts-expect-error reconcile mock resolver types + testSchema = addResolversToSchema({ schema: oldSchema, resolvers }); + + function restore() { + testSchema = oldSchema; + } - // TODO: - // function mergeResolvers() {} + return Object.assign(restore, { + [Symbol.dispose]() { + restore(); + }, + }); + } function replaceDelay(newDelay: Delay) { const oldDelay = _delay; @@ -146,6 +182,7 @@ export const createHandlerFromSchema = ( JSON.stringify(value), ]; } + // attach cleanup/update resolver fns to custom handler class return { handler: graphql.operation< @@ -227,5 +264,8 @@ export const createHandlerFromSchema = ( }), replaceSchema, replaceDelay, + withResolvers, }; -}; +} + +export { createHandler, createHandlerFromSchema, createSchemaWithDefaultMocks }; diff --git a/src/index.ts b/src/index.ts index 7eb4804..33dba0c 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,16 +1,26 @@ -import { createHandler, createHandlerFromSchema } from "./handlers.js"; +import { + createHandler, + createHandlerFromSchema, + createSchemaWithDefaultMocks, +} from "./handlers.js"; import { mockEnums, + mergeResolvers, mockCustomScalars, createPossibleTypesMap, createDefaultResolvers, + type ResolverMap, } from "./utilities.ts"; +export type { ResolverMap }; + export { createHandler, createHandlerFromSchema, mockEnums, + mergeResolvers, mockCustomScalars, createPossibleTypesMap, createDefaultResolvers, + createSchemaWithDefaultMocks, }; diff --git a/src/utilities.ts b/src/utilities.ts index 150a1d3..e487231 100644 --- a/src/utilities.ts +++ b/src/utilities.ts @@ -1,21 +1,20 @@ import { type ASTNode, - type GraphQLSchema, type GraphQLEnumValue, + type GraphQLResolveInfo, + type GraphQLSchema, GraphQLEnumType, isUnionType, isObjectType, isScalarType, visit, BREAK, + GraphQLScalarType, + Kind, + GraphQLError, } from "graphql"; -import { - type IMocks, - type IScalarMock, - type ITypeMock, -} from "@graphql-tools/mock"; -export function hasDirectives(names: string[], root: ASTNode, all?: boolean) { +function hasDirectives(names: string[], root: ASTNode, all?: boolean) { const nameSet = new Set(names); const uniqueCount = nameSet.size; @@ -35,7 +34,7 @@ export function hasDirectives(names: string[], root: ASTNode, all?: boolean) { // Generates a Map of possible types. The keys are Union | Interface type names // which map to Sets of either union members or types that implement the // interface. -export const createPossibleTypesMap = (executableSchema: GraphQLSchema) => { +function createPossibleTypesMap(executableSchema: GraphQLSchema) { const typeMap = executableSchema.getTypeMap(); const possibleTypesMap = new Map>(); @@ -63,11 +62,11 @@ export const createPossibleTypesMap = (executableSchema: GraphQLSchema) => { } } return possibleTypesMap; -}; +} // From a Map of possible types, create default resolvers with __resolveType // functions that pick the first possible type if no __typename is present. -export const createDefaultResolvers = (typesMap: Map>) => { +function createDefaultResolvers(typesMap: Map>) { const defaultResolvers: { [key: string]: { __resolveType(data: { __typename?: string }): string; @@ -82,7 +81,7 @@ export const createDefaultResolvers = (typesMap: Map>) => { }; } return defaultResolvers; -}; +} // Sorts enum values alphabetically. const sortEnumValues = () => { @@ -94,10 +93,7 @@ const sortEnumValues = () => { // TODO: memoize // Creates a map of enum types and mock resolver functions that return // the first possible value. -export const mockEnums = ( - schema: GraphQLSchema, -): IMocks => { - // @ts-ignore +function mockEnums(schema: GraphQLSchema) { return Object.fromEntries( Object.entries(schema.getTypeMap()) .filter( @@ -112,24 +108,114 @@ export const mockEnums = ( return [typeName, () => value] as const; }), ); -}; +} -export const mockCustomScalars = ( - schema: GraphQLSchema, -): IMocks => { +function mockCustomScalars(schema: GraphQLSchema) { const typeMap = schema.getTypeMap(); const mockScalarsMap: { - [typeOrScalarName: string]: IScalarMock | ITypeMock; + [typeOrScalarName: string]: GraphQLScalarType; } = {}; for (const typeName of Object.keys(typeMap)) { const type = typeMap[typeName]; // Only mock custom scalars if (isScalarType(type) && type.astNode) { - mockScalarsMap[typeName] = () => - `Default value for custom scalar \`${typeName}\``; + mockScalarsMap[typeName] = new GraphQLScalarType({ + name: typeName, + serialize: (value) => value, + parseValue: (value) => value, + parseLiteral(ast) { + if (ast.kind !== Kind.STRING) { + throw new GraphQLError( + `Query error: Can only parse strings to Blobs but got a: ${ast.kind}`, + [ast], + ); + } + // const result = ast.value; + // return result; + return `Default value for custom scalar \`${typeName}\``; + }, + }); } } - return mockScalarsMap as IMocks; + return mockScalarsMap; +} + +export type ResolverMap = { + [key in keyof ResolversTypes]?: () => ResolversTypes[key] extends () => unknown + ? + | ReturnType + | { + [key2 in keyof ReturnType]: + | ReturnType[key2] + | (( + args: Record | undefined, + context: unknown, + field: GraphQLResolveInfo, + ) => ReturnType[key2]); + } + | null + : null; +}; + +// adapted from https://github.com/apollographql/graphql-tools/pull/1084/files +// as per https://www.freecodecamp.org/news/a-new-approach-to-mocking-graphql-data-1ef49de3d491/ + +/** + * Given a map of mock GraphQL resolver functions, merge in a map of + * desired mocks. Generally, `target` will be the default mocked values, + * and `input` will be the values desired for a portal example or Jest tests. + */ +function mergeResolver( + target: ResolverMap, + input: ResolverMap, +) { + const inputTypenames = Object.keys(input) as (keyof ResolverMap)[]; + const merged = inputTypenames.reduce( + (accum, key) => { + const inputResolver = input[key]; + if (!inputResolver) throw new Error("missing input resolver"); + if (Object.prototype.hasOwnProperty.call(target, key)) { + const resolvedInput: unknown = inputResolver(); + const resolvedTarget: unknown = target[key]?.(); + if ( + !!resolvedTarget && + !!resolvedInput && + typeof resolvedTarget === "object" && + typeof resolvedInput === "object" && + !Array.isArray(resolvedTarget) && + !Array.isArray(resolvedInput) + ) { + return { + ...accum, + [key]: () => ({ ...resolvedTarget, ...resolvedInput }), + }; + } + } + return { ...accum, [key]: inputResolver }; + }, + { ...target }, + ); + return merged; +} + +function mergeResolvers( + target: ResolverMap, + ...inputs: ResolverMap[] +) { + let resolver = target; + inputs.forEach((input) => { + resolver = mergeResolver(resolver, input); + }); + return resolver; +} + +export { + hasDirectives, + createPossibleTypesMap, + createDefaultResolvers, + mockEnums, + mockCustomScalars, + mergeResolvers, }; From d88d254ad58b847954ac02c464c3fa973b920e1b Mon Sep 17 00:00:00 2001 From: Alessia Bellisario Date: Thu, 1 Aug 2024 17:28:19 -0400 Subject: [PATCH 05/19] chore: adds changeset --- .changeset/strange-socks-admire.md | 5 +++++ .github/workflows/test.yml | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 .changeset/strange-socks-admire.md diff --git a/.changeset/strange-socks-admire.md b/.changeset/strange-socks-admire.md new file mode 100644 index 0000000..67dcf6d --- /dev/null +++ b/.changeset/strange-socks-admire.md @@ -0,0 +1,5 @@ +--- +"@apollo/graphql-testing-library": patch +--- + +Adds `createHandlerFromSchema` diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 240d183..ae49f79 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -227,7 +227,7 @@ jobs: run: pnpm install - name: Lint - run: pnpm run lint + run: pnpm run prettier type-check: name: Check types From 256d93948fa2416b5dc721bfeedfe71d92fafd5b Mon Sep 17 00:00:00 2001 From: Alessia Bellisario Date: Mon, 5 Aug 2024 14:56:52 -0400 Subject: [PATCH 06/19] chore: simplify types --- src/__tests__/handlers.test.tsx | 104 ++++++++++++++++---------------- src/__tests__/mocks/handlers.ts | 3 + src/handlers.ts | 32 +++++++--- src/index.ts | 15 ++--- src/utilities.ts | 75 +---------------------- 5 files changed, 84 insertions(+), 145 deletions(-) diff --git a/src/__tests__/handlers.test.tsx b/src/__tests__/handlers.test.tsx index fe566ef..eca6f63 100644 --- a/src/__tests__/handlers.test.tsx +++ b/src/__tests__/handlers.test.tsx @@ -179,58 +179,58 @@ describe("integration tests", () => { }); }); -// describe.skip("integration tests with github schema", () => { -// it("renders a component fetching from the GitHub api", async () => { -// const client = makeClient(); - -// const APP_QUERY = gql` -// query AppQuery { -// repository(owner: "octocat", name: "Hello-World") { -// issues(last: 20, states: CLOSED) { -// edges { -// node { -// title -// url -// labels(first: 5) { -// edges { -// node { -// name -// } -// } -// } -// } -// } -// } -// } -// } -// `; - -// const Shell = () => { -// console.log("render"); -// return ( -// -// Loading...}> -// -// -// -// ); -// }; - -// const App = () => { -// const { data } = useSuspenseQuery(APP_QUERY); -// if (data) { -// console.log(data.repository.issues.edges); -// } -// return <>hi; -// }; - -// render(); - -// await waitFor(() => -// expect(screen.getByText(/beanie/i)).toBeInTheDocument(), -// ); -// }); -// }); +describe.skip("integration tests with github schema", () => { + it("renders a component fetching from the GitHub api", async () => { + const client = makeClient(); + + const APP_QUERY = gql` + query AppQuery { + repository(owner: "octocat", name: "Hello-World") { + issues(last: 20, states: CLOSED) { + edges { + node { + title + url + labels(first: 5) { + edges { + node { + name + } + } + } + } + } + } + } + } + `; + + const Shell = () => { + console.log("render"); + return ( + + Loading...}> + + + + ); + }; + + const App = () => { + const { data } = useSuspenseQuery(APP_QUERY); + if (data) { + console.log(data.repository.issues.edges); + } + return <>hi; + }; + + render(); + + await waitFor(() => + expect(screen.getByText(/beanie/i)).toBeInTheDocument(), + ); + }); +}); describe("unit tests", () => { it("can roll back delay via disposable", () => { diff --git a/src/__tests__/mocks/handlers.ts b/src/__tests__/mocks/handlers.ts index 8e7fec1..53a0e9f 100644 --- a/src/__tests__/mocks/handlers.ts +++ b/src/__tests__/mocks/handlers.ts @@ -23,6 +23,9 @@ const { handler, replaceSchema, withResolvers, replaceDelay } = })), }, }, + mocks: { + String: () => "foo bar", + }, }); const handlers = [handler]; diff --git a/src/handlers.ts b/src/handlers.ts index c1443d9..b0db886 100644 --- a/src/handlers.ts +++ b/src/handlers.ts @@ -21,14 +21,15 @@ import { type IMocks, type IMockStore, } from "@graphql-tools/mock"; +import { mergeResolvers } from "@graphql-tools/merge"; import { createDefaultResolvers, createPossibleTypesMap, mockCustomScalars, - mockEnums, hasDirectives, - mergeResolvers, + generateEnumMocksFromSchema, } from "./utilities.ts"; +import type { IResolvers, Maybe } from "@graphql-tools/utils"; const encoder = new TextEncoder(); @@ -63,6 +64,7 @@ function createHandler( const schemaWithMocks = createSchemaWithDefaultMocks( executableSchema, resolvers, + mocks, ); return createHandlerFromSchema({ @@ -73,20 +75,27 @@ function createHandler( function createSchemaWithDefaultMocks( executableSchema: GraphQLSchema, - resolvers: Resolvers, + resolvers: Partial | ((store: IMockStore) => Partial), mocks?: IMocks, ) { - const enumMocks = mockEnums(executableSchema); + const enumMocks = generateEnumMocksFromSchema(executableSchema); const customScalarMocks = mockCustomScalars(executableSchema); const typesMap = createPossibleTypesMap(executableSchema); const defaultResolvers = createDefaultResolvers(typesMap); return addMocksToSchema({ schema: executableSchema, - // @ts-expect-error reconcile mock resolver types - mocks: mergeResolvers(enumMocks, customScalarMocks, mocks ?? {}), - // @ts-expect-error reconcile mock resolver types - resolvers: mergeResolvers(defaultResolvers, resolvers), + mocks: { + ...enumMocks, + ...customScalarMocks, + ...mocks, + } as IMocks, + resolvers: mergeResolvers([ + defaultResolvers, + resolvers as Maybe< + IResolvers<{ __typename?: string | undefined }, unknown> + >, + ]) as Partial, preserveResolvers: true, }); } @@ -126,8 +135,11 @@ function createHandlerFromSchema( function withResolvers(resolvers: Resolvers) { const oldSchema = testSchema; - // @ts-expect-error reconcile mock resolver types - testSchema = addResolversToSchema({ schema: oldSchema, resolvers }); + testSchema = addResolversToSchema({ + schema: oldSchema, + // @ts-expect-error reconcile mock resolver types + resolvers, + }); function restore() { testSchema = oldSchema; diff --git a/src/index.ts b/src/index.ts index 33dba0c..f7a4000 100644 --- a/src/index.ts +++ b/src/index.ts @@ -4,23 +4,18 @@ import { createSchemaWithDefaultMocks, } from "./handlers.js"; import { - mockEnums, - mergeResolvers, - mockCustomScalars, - createPossibleTypesMap, createDefaultResolvers, - type ResolverMap, + createPossibleTypesMap, + generateEnumMocksFromSchema, + mockCustomScalars, } from "./utilities.ts"; -export type { ResolverMap }; - export { createHandler, createHandlerFromSchema, - mockEnums, - mergeResolvers, + generateEnumMocksFromSchema, mockCustomScalars, - createPossibleTypesMap, createDefaultResolvers, + createPossibleTypesMap, createSchemaWithDefaultMocks, }; diff --git a/src/utilities.ts b/src/utilities.ts index e487231..9679d15 100644 --- a/src/utilities.ts +++ b/src/utilities.ts @@ -1,7 +1,6 @@ import { type ASTNode, type GraphQLEnumValue, - type GraphQLResolveInfo, type GraphQLSchema, GraphQLEnumType, isUnionType, @@ -93,7 +92,7 @@ const sortEnumValues = () => { // TODO: memoize // Creates a map of enum types and mock resolver functions that return // the first possible value. -function mockEnums(schema: GraphQLSchema) { +function generateEnumMocksFromSchema(schema: GraphQLSchema) { return Object.fromEntries( Object.entries(schema.getTypeMap()) .filter( @@ -142,80 +141,10 @@ function mockCustomScalars(schema: GraphQLSchema) { return mockScalarsMap; } -export type ResolverMap = { - [key in keyof ResolversTypes]?: () => ResolversTypes[key] extends () => unknown - ? - | ReturnType - | { - [key2 in keyof ReturnType]: - | ReturnType[key2] - | (( - args: Record | undefined, - context: unknown, - field: GraphQLResolveInfo, - ) => ReturnType[key2]); - } - | null - : null; -}; - -// adapted from https://github.com/apollographql/graphql-tools/pull/1084/files -// as per https://www.freecodecamp.org/news/a-new-approach-to-mocking-graphql-data-1ef49de3d491/ - -/** - * Given a map of mock GraphQL resolver functions, merge in a map of - * desired mocks. Generally, `target` will be the default mocked values, - * and `input` will be the values desired for a portal example or Jest tests. - */ -function mergeResolver( - target: ResolverMap, - input: ResolverMap, -) { - const inputTypenames = Object.keys(input) as (keyof ResolverMap)[]; - const merged = inputTypenames.reduce( - (accum, key) => { - const inputResolver = input[key]; - if (!inputResolver) throw new Error("missing input resolver"); - if (Object.prototype.hasOwnProperty.call(target, key)) { - const resolvedInput: unknown = inputResolver(); - const resolvedTarget: unknown = target[key]?.(); - if ( - !!resolvedTarget && - !!resolvedInput && - typeof resolvedTarget === "object" && - typeof resolvedInput === "object" && - !Array.isArray(resolvedTarget) && - !Array.isArray(resolvedInput) - ) { - return { - ...accum, - [key]: () => ({ ...resolvedTarget, ...resolvedInput }), - }; - } - } - return { ...accum, [key]: inputResolver }; - }, - { ...target }, - ); - return merged; -} - -function mergeResolvers( - target: ResolverMap, - ...inputs: ResolverMap[] -) { - let resolver = target; - inputs.forEach((input) => { - resolver = mergeResolver(resolver, input); - }); - return resolver; -} - export { hasDirectives, createPossibleTypesMap, createDefaultResolvers, - mockEnums, + generateEnumMocksFromSchema, mockCustomScalars, - mergeResolvers, }; From b0725356a5a309b8307198c5c3fc06ee69bf81a1 Mon Sep 17 00:00:00 2001 From: Alessia Bellisario Date: Mon, 5 Aug 2024 14:59:31 -0400 Subject: [PATCH 07/19] fix: do not lint generated filed --- .eslintrc.cjs | 1 + 1 file changed, 1 insertion(+) diff --git a/.eslintrc.cjs b/.eslintrc.cjs index 6a078b9..8c8c7f0 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -18,6 +18,7 @@ module.exports = { sourceType: "module", }, plugins: ["@typescript-eslint"], + ignorePatterns: ["**/__generated__/*.ts"], rules: { "@typescript-eslint/no-explicit-any": "off", "@typescript-eslint/no-unused-vars": [ From 1e22429ed68b52398c8c0b55a9a27b8b1a52d563 Mon Sep 17 00:00:00 2001 From: Alessia Bellisario Date: Wed, 7 Aug 2024 10:32:53 -0400 Subject: [PATCH 08/19] wip --- .../RelayComponentAppQuery.graphql.ts | 225 +- ...omponentReviewsFragment_product.graphql.ts | 71 +- ...RelayComponentWithDeferAppQuery.graphql.ts | 255 +- ...chema.graphql => ecommerce-schema.graphql} | 0 .../{github.graphql => github-schema.graphql} | 0 codegen.ts | 8 +- global.d.ts | 4 + package.json | 4 +- pnpm-lock.yaml | 6 + ...-types.ts => resolvers-types-ecommerce.ts} | 247 +- src/__generated__/resolvers-types-github.ts | 90503 ++++++++++++++++ src/__tests__/handlers.test.tsx | 93 +- src/__tests__/mocks/handlers.ts | 53 +- src/handlers.ts | 57 +- src/requestHandler.ts | 136 + src/utilities.ts | 23 +- tsconfig.json | 2 +- 17 files changed, 91297 insertions(+), 390 deletions(-) rename .storybook/stories/{components/relay/schema.graphql => ecommerce-schema.graphql} (100%) rename .storybook/stories/{github.graphql => github-schema.graphql} (100%) create mode 100644 global.d.ts rename src/__generated__/{resolvers-types.ts => resolvers-types-ecommerce.ts} (62%) create mode 100644 src/__generated__/resolvers-types-github.ts create mode 100644 src/requestHandler.ts diff --git a/.storybook/stories/components/relay/__generated__/RelayComponentAppQuery.graphql.ts b/.storybook/stories/components/relay/__generated__/RelayComponentAppQuery.graphql.ts index 8833d3c..c9265e0 100644 --- a/.storybook/stories/components/relay/__generated__/RelayComponentAppQuery.graphql.ts +++ b/.storybook/stories/components/relay/__generated__/RelayComponentAppQuery.graphql.ts @@ -8,131 +8,124 @@ /* eslint-disable */ // @ts-nocheck -import { ConcreteRequest, Query } from "relay-runtime"; +import { ConcreteRequest, Query } from 'relay-runtime'; import { FragmentRefs } from "relay-runtime"; export type RelayComponentAppQuery$variables = Record; export type RelayComponentAppQuery$data = { - readonly products: - | ReadonlyArray< - | { - readonly id: string; - readonly mediaUrl: string | null | undefined; - readonly title: string | null | undefined; - readonly " $fragmentSpreads": FragmentRefs<"RelayComponentReviewsFragment_product">; - } - | null - | undefined - > - | null - | undefined; + readonly products: ReadonlyArray<{ + readonly id: string; + readonly mediaUrl: string | null | undefined; + readonly title: string | null | undefined; + readonly " $fragmentSpreads": FragmentRefs<"RelayComponentReviewsFragment_product">; + } | null | undefined> | null | undefined; }; export type RelayComponentAppQuery = { response: RelayComponentAppQuery$data; variables: RelayComponentAppQuery$variables; }; -const node: ConcreteRequest = (function () { - var v0 = { - alias: null, - args: null, - kind: "ScalarField", - name: "id", - storageKey: null, - }, - v1 = { - alias: null, - args: null, - kind: "ScalarField", - name: "title", - storageKey: null, - }, - v2 = { - alias: null, - args: null, - kind: "ScalarField", - name: "mediaUrl", - storageKey: null, - }; - return { - fragment: { - argumentDefinitions: [], - kind: "Fragment", - metadata: null, - name: "RelayComponentAppQuery", - selections: [ - { - alias: null, - args: null, - concreteType: "Product", - kind: "LinkedField", - name: "products", - plural: true, - selections: [ - v0 /*: any*/, - { - args: null, - kind: "FragmentSpread", - name: "RelayComponentReviewsFragment_product", - }, - v1 /*: any*/, - v2 /*: any*/, - ], - storageKey: null, - }, - ], - type: "Query", - abstractKey: null, - }, - kind: "Request", - operation: { - argumentDefinitions: [], - kind: "Operation", - name: "RelayComponentAppQuery", - selections: [ - { - alias: null, - args: null, - concreteType: "Product", - kind: "LinkedField", - name: "products", - plural: true, - selections: [ - v0 /*: any*/, - { - alias: null, - args: null, - concreteType: "Review", - kind: "LinkedField", - name: "reviews", - plural: true, - selections: [ - v0 /*: any*/, - { - alias: null, - args: null, - kind: "ScalarField", - name: "rating", - storageKey: null, - }, - ], - storageKey: null, - }, - v1 /*: any*/, - v2 /*: any*/, - ], - storageKey: null, - }, - ], - }, - params: { - cacheID: "0f4ff7bfd1b621ec073644a2e8b2a199", - id: null, - metadata: {}, - name: "RelayComponentAppQuery", - operationKind: "query", - text: "query RelayComponentAppQuery {\n products {\n id\n ...RelayComponentReviewsFragment_product\n title\n mediaUrl\n }\n}\n\nfragment RelayComponentReviewsFragment_product on Product {\n reviews {\n id\n rating\n }\n}\n", - }, - }; +const node: ConcreteRequest = (function(){ +var v0 = { + "alias": null, + "args": null, + "kind": "ScalarField", + "name": "id", + "storageKey": null +}, +v1 = { + "alias": null, + "args": null, + "kind": "ScalarField", + "name": "title", + "storageKey": null +}, +v2 = { + "alias": null, + "args": null, + "kind": "ScalarField", + "name": "mediaUrl", + "storageKey": null +}; +return { + "fragment": { + "argumentDefinitions": [], + "kind": "Fragment", + "metadata": null, + "name": "RelayComponentAppQuery", + "selections": [ + { + "alias": null, + "args": null, + "concreteType": "Product", + "kind": "LinkedField", + "name": "products", + "plural": true, + "selections": [ + (v0/*: any*/), + { + "args": null, + "kind": "FragmentSpread", + "name": "RelayComponentReviewsFragment_product" + }, + (v1/*: any*/), + (v2/*: any*/) + ], + "storageKey": null + } + ], + "type": "Query", + "abstractKey": null + }, + "kind": "Request", + "operation": { + "argumentDefinitions": [], + "kind": "Operation", + "name": "RelayComponentAppQuery", + "selections": [ + { + "alias": null, + "args": null, + "concreteType": "Product", + "kind": "LinkedField", + "name": "products", + "plural": true, + "selections": [ + (v0/*: any*/), + { + "alias": null, + "args": null, + "concreteType": "Review", + "kind": "LinkedField", + "name": "reviews", + "plural": true, + "selections": [ + (v0/*: any*/), + { + "alias": null, + "args": null, + "kind": "ScalarField", + "name": "rating", + "storageKey": null + } + ], + "storageKey": null + }, + (v1/*: any*/), + (v2/*: any*/) + ], + "storageKey": null + } + ] + }, + "params": { + "cacheID": "0f4ff7bfd1b621ec073644a2e8b2a199", + "id": null, + "metadata": {}, + "name": "RelayComponentAppQuery", + "operationKind": "query", + "text": "query RelayComponentAppQuery {\n products {\n id\n ...RelayComponentReviewsFragment_product\n title\n mediaUrl\n }\n}\n\nfragment RelayComponentReviewsFragment_product on Product {\n reviews {\n id\n rating\n }\n}\n" + } +}; })(); (node as any).hash = "03cceceba96fb0404eb4759dc44bb7c9"; diff --git a/.storybook/stories/components/relay/__generated__/RelayComponentReviewsFragment_product.graphql.ts b/.storybook/stories/components/relay/__generated__/RelayComponentReviewsFragment_product.graphql.ts index 2f498d3..3faa7b1 100644 --- a/.storybook/stories/components/relay/__generated__/RelayComponentReviewsFragment_product.graphql.ts +++ b/.storybook/stories/components/relay/__generated__/RelayComponentReviewsFragment_product.graphql.ts @@ -8,20 +8,13 @@ /* eslint-disable */ // @ts-nocheck -import { Fragment, ReaderFragment } from "relay-runtime"; +import { Fragment, ReaderFragment } from 'relay-runtime'; import { FragmentRefs } from "relay-runtime"; export type RelayComponentReviewsFragment_product$data = { - readonly reviews: - | ReadonlyArray< - | { - readonly id: string; - readonly rating: number | null | undefined; - } - | null - | undefined - > - | null - | undefined; + readonly reviews: ReadonlyArray<{ + readonly id: string; + readonly rating: number | null | undefined; + } | null | undefined> | null | undefined; readonly " $fragmentType": "RelayComponentReviewsFragment_product"; }; export type RelayComponentReviewsFragment_product$key = { @@ -30,39 +23,39 @@ export type RelayComponentReviewsFragment_product$key = { }; const node: ReaderFragment = { - argumentDefinitions: [], - kind: "Fragment", - metadata: null, - name: "RelayComponentReviewsFragment_product", - selections: [ + "argumentDefinitions": [], + "kind": "Fragment", + "metadata": null, + "name": "RelayComponentReviewsFragment_product", + "selections": [ { - alias: null, - args: null, - concreteType: "Review", - kind: "LinkedField", - name: "reviews", - plural: true, - selections: [ + "alias": null, + "args": null, + "concreteType": "Review", + "kind": "LinkedField", + "name": "reviews", + "plural": true, + "selections": [ { - alias: null, - args: null, - kind: "ScalarField", - name: "id", - storageKey: null, + "alias": null, + "args": null, + "kind": "ScalarField", + "name": "id", + "storageKey": null }, { - alias: null, - args: null, - kind: "ScalarField", - name: "rating", - storageKey: null, - }, + "alias": null, + "args": null, + "kind": "ScalarField", + "name": "rating", + "storageKey": null + } ], - storageKey: null, - }, + "storageKey": null + } ], - type: "Product", - abstractKey: null, + "type": "Product", + "abstractKey": null }; (node as any).hash = "9017708b7b8d3c62f47be61c11fa4625"; diff --git a/.storybook/stories/components/relay/__generated__/RelayComponentWithDeferAppQuery.graphql.ts b/.storybook/stories/components/relay/__generated__/RelayComponentWithDeferAppQuery.graphql.ts index 475c415..67b6304 100644 --- a/.storybook/stories/components/relay/__generated__/RelayComponentWithDeferAppQuery.graphql.ts +++ b/.storybook/stories/components/relay/__generated__/RelayComponentWithDeferAppQuery.graphql.ts @@ -8,147 +8,136 @@ /* eslint-disable */ // @ts-nocheck -import { ConcreteRequest, Query } from "relay-runtime"; +import { ConcreteRequest, Query } from 'relay-runtime'; import { FragmentRefs } from "relay-runtime"; -export type RelayComponentWithDeferAppQuery$variables = Record< - PropertyKey, - never ->; +export type RelayComponentWithDeferAppQuery$variables = Record; export type RelayComponentWithDeferAppQuery$data = { - readonly products: - | ReadonlyArray< - | { - readonly id: string; - readonly mediaUrl: string | null | undefined; - readonly title: string | null | undefined; - readonly " $fragmentSpreads": FragmentRefs<"RelayComponentReviewsFragment_product">; - } - | null - | undefined - > - | null - | undefined; + readonly products: ReadonlyArray<{ + readonly id: string; + readonly mediaUrl: string | null | undefined; + readonly title: string | null | undefined; + readonly " $fragmentSpreads": FragmentRefs<"RelayComponentReviewsFragment_product">; + } | null | undefined> | null | undefined; }; export type RelayComponentWithDeferAppQuery = { response: RelayComponentWithDeferAppQuery$data; variables: RelayComponentWithDeferAppQuery$variables; }; -const node: ConcreteRequest = (function () { - var v0 = { - alias: null, - args: null, - kind: "ScalarField", - name: "id", - storageKey: null, - }, - v1 = { - alias: null, - args: null, - kind: "ScalarField", - name: "title", - storageKey: null, - }, - v2 = { - alias: null, - args: null, - kind: "ScalarField", - name: "mediaUrl", - storageKey: null, - }; - return { - fragment: { - argumentDefinitions: [], - kind: "Fragment", - metadata: null, - name: "RelayComponentWithDeferAppQuery", - selections: [ - { - alias: null, - args: null, - concreteType: "Product", - kind: "LinkedField", - name: "products", - plural: true, - selections: [ - v0 /*: any*/, - { - kind: "Defer", - selections: [ - { - args: null, - kind: "FragmentSpread", - name: "RelayComponentReviewsFragment_product", - }, - ], - }, - v1 /*: any*/, - v2 /*: any*/, - ], - storageKey: null, - }, - ], - type: "Query", - abstractKey: null, - }, - kind: "Request", - operation: { - argumentDefinitions: [], - kind: "Operation", - name: "RelayComponentWithDeferAppQuery", - selections: [ - { - alias: null, - args: null, - concreteType: "Product", - kind: "LinkedField", - name: "products", - plural: true, - selections: [ - v0 /*: any*/, - { - if: null, - kind: "Defer", - label: - "RelayComponentWithDeferAppQuery$defer$RelayComponentReviewsFragment_product", - selections: [ - { - alias: null, - args: null, - concreteType: "Review", - kind: "LinkedField", - name: "reviews", - plural: true, - selections: [ - v0 /*: any*/, - { - alias: null, - args: null, - kind: "ScalarField", - name: "rating", - storageKey: null, - }, - ], - storageKey: null, - }, - ], - }, - v1 /*: any*/, - v2 /*: any*/, - ], - storageKey: null, - }, - ], - }, - params: { - cacheID: "d39365cfca4b78af84446cd9fdb61a63", - id: null, - metadata: {}, - name: "RelayComponentWithDeferAppQuery", - operationKind: "query", - text: 'query RelayComponentWithDeferAppQuery {\n products {\n id\n ...RelayComponentReviewsFragment_product @defer(label: "RelayComponentWithDeferAppQuery$defer$RelayComponentReviewsFragment_product")\n title\n mediaUrl\n }\n}\n\nfragment RelayComponentReviewsFragment_product on Product {\n reviews {\n id\n rating\n }\n}\n', - }, - }; +const node: ConcreteRequest = (function(){ +var v0 = { + "alias": null, + "args": null, + "kind": "ScalarField", + "name": "id", + "storageKey": null +}, +v1 = { + "alias": null, + "args": null, + "kind": "ScalarField", + "name": "title", + "storageKey": null +}, +v2 = { + "alias": null, + "args": null, + "kind": "ScalarField", + "name": "mediaUrl", + "storageKey": null +}; +return { + "fragment": { + "argumentDefinitions": [], + "kind": "Fragment", + "metadata": null, + "name": "RelayComponentWithDeferAppQuery", + "selections": [ + { + "alias": null, + "args": null, + "concreteType": "Product", + "kind": "LinkedField", + "name": "products", + "plural": true, + "selections": [ + (v0/*: any*/), + { + "kind": "Defer", + "selections": [ + { + "args": null, + "kind": "FragmentSpread", + "name": "RelayComponentReviewsFragment_product" + } + ] + }, + (v1/*: any*/), + (v2/*: any*/) + ], + "storageKey": null + } + ], + "type": "Query", + "abstractKey": null + }, + "kind": "Request", + "operation": { + "argumentDefinitions": [], + "kind": "Operation", + "name": "RelayComponentWithDeferAppQuery", + "selections": [ + { + "alias": null, + "args": null, + "concreteType": "Product", + "kind": "LinkedField", + "name": "products", + "plural": true, + "selections": [ + (v0/*: any*/), + { + "if": null, + "kind": "Defer", + "label": "RelayComponentWithDeferAppQuery$defer$RelayComponentReviewsFragment_product", + "selections": [ + { + "alias": null, + "args": null, + "concreteType": "Review", + "kind": "LinkedField", + "name": "reviews", + "plural": true, + "selections": [ + (v0/*: any*/), + { + "alias": null, + "args": null, + "kind": "ScalarField", + "name": "rating", + "storageKey": null + } + ], + "storageKey": null + } + ] + }, + (v1/*: any*/), + (v2/*: any*/) + ], + "storageKey": null + } + ] + }, + "params": { + "cacheID": "d39365cfca4b78af84446cd9fdb61a63", + "id": null, + "metadata": {}, + "name": "RelayComponentWithDeferAppQuery", + "operationKind": "query", + "text": "query RelayComponentWithDeferAppQuery {\n products {\n id\n ...RelayComponentReviewsFragment_product @defer(label: \"RelayComponentWithDeferAppQuery$defer$RelayComponentReviewsFragment_product\")\n title\n mediaUrl\n }\n}\n\nfragment RelayComponentReviewsFragment_product on Product {\n reviews {\n id\n rating\n }\n}\n" + } +}; })(); (node as any).hash = "f282e572ab3878c9ccb2f4ad43491878"; diff --git a/.storybook/stories/components/relay/schema.graphql b/.storybook/stories/ecommerce-schema.graphql similarity index 100% rename from .storybook/stories/components/relay/schema.graphql rename to .storybook/stories/ecommerce-schema.graphql diff --git a/.storybook/stories/github.graphql b/.storybook/stories/github-schema.graphql similarity index 100% rename from .storybook/stories/github.graphql rename to .storybook/stories/github-schema.graphql diff --git a/codegen.ts b/codegen.ts index 6f56856..de65c7f 100644 --- a/codegen.ts +++ b/codegen.ts @@ -4,9 +4,13 @@ const config: CodegenConfig = { hooks: { afterAllFileWrite: ["prettier --write"], }, - schema: "./.storybook/stories/components/relay/schema.graphql", generates: { - "./src/__generated__/resolvers-types.ts": { + "./src/__generated__/resolvers-types-ecommerce.ts": { + schema: "./.storybook/stories/ecommerce-schema.graphql", + plugins: ["typescript", "typescript-resolvers"], + }, + "./src/__generated__/resolvers-types-github.ts": { + schema: "./.storybook/stories/github-schema.graphql", plugins: ["typescript", "typescript-resolvers"], }, }, diff --git a/global.d.ts b/global.d.ts new file mode 100644 index 0000000..435159a --- /dev/null +++ b/global.d.ts @@ -0,0 +1,4 @@ +declare module "@bundled-es-modules/statuses" { + import * as statuses from "statuses"; + export default statuses; +} diff --git a/package.json b/package.json index cb7e381..1b62c6b 100644 --- a/package.json +++ b/package.json @@ -118,11 +118,13 @@ "wait-on": "7.2.0" }, "dependencies": { + "@bundled-es-modules/statuses": "^1.0.1", "@graphql-tools/executor": "^1.2.7", "@graphql-tools/merge": "^9.0.4", "@graphql-tools/mock": "^9.0.4", "@graphql-tools/schema": "^10.0.4", "@graphql-tools/utils": "^10.3.2", + "@types/statuses": "^2.0.5", "graphql-tag": "^2.12.6", "is-node-process": "^1.2.0" }, @@ -137,7 +139,7 @@ }, "relay": { "src": "./.storybook/stories/components/relay", - "schema": "./.storybook/stories/components/relay/schema.graphql", + "schema": "./.storybook/stories/ecommerce-schema.graphql", "language": "typescript", "eagerEsModules": true, "exclude": [ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 008d726..39e4a7c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8,6 +8,9 @@ importers: .: dependencies: + '@bundled-es-modules/statuses': + specifier: ^1.0.1 + version: 1.0.1 '@graphql-tools/executor': specifier: ^1.2.7 version: 1.3.0(graphql@16.9.0) @@ -23,6 +26,9 @@ importers: '@graphql-tools/utils': specifier: ^10.3.2 version: 10.3.2(graphql@16.9.0) + '@types/statuses': + specifier: ^2.0.5 + version: 2.0.5 graphql-tag: specifier: ^2.12.6 version: 2.12.6(graphql@16.9.0) diff --git a/src/__generated__/resolvers-types.ts b/src/__generated__/resolvers-types-ecommerce.ts similarity index 62% rename from src/__generated__/resolvers-types.ts rename to src/__generated__/resolvers-types-ecommerce.ts index ef64ffc..29155d5 100644 --- a/src/__generated__/resolvers-types.ts +++ b/src/__generated__/resolvers-types-ecommerce.ts @@ -1,4 +1,8 @@ -import type { GraphQLResolveInfo } from "graphql"; +import { + type GraphQLResolveInfo, + GraphQLScalarType, + type GraphQLScalarTypeConfig, +} from "graphql"; export type Maybe = T | null; export type InputMaybe = Maybe; export type Exact = { @@ -29,6 +33,13 @@ export type Scalars = { Boolean: { input: boolean; output: boolean }; Int: { input: number; output: number }; Float: { input: number; output: number }; + Date: { input: any; output: any }; +}; + +export type Book = { + id: Scalars["ID"]["output"]; + publishedAt?: Maybe; + title?: Maybe; }; /** An user's saved cart session. Only one cart can be active at a time */ @@ -40,6 +51,59 @@ export type Cart = { subtotal?: Maybe; }; +export type ColoringBook = Book & { + __typename?: "ColoringBook"; + colors?: Maybe>>; + id: Scalars["ID"]["output"]; + publishedAt?: Maybe; + title?: Maybe; +}; + +export enum ContractVariantFailedStep { + AddDirectiveDefinitionsIfNotPresent = "ADD_DIRECTIVE_DEFINITIONS_IF_NOT_PRESENT", + AddInaccessibleSpecPurpose = "ADD_INACCESSIBLE_SPEC_PURPOSE", + DirectiveDefinitionLocationAugmenting = "DIRECTIVE_DEFINITION_LOCATION_AUGMENTING", + EmptyEnumMasking = "EMPTY_ENUM_MASKING", + EmptyInputObjectMasking = "EMPTY_INPUT_OBJECT_MASKING", + EmptyObjectAndInterfaceFieldMasking = "EMPTY_OBJECT_AND_INTERFACE_FIELD_MASKING", + EmptyObjectAndInterfaceMasking = "EMPTY_OBJECT_AND_INTERFACE_MASKING", + EmptyUnionMasking = "EMPTY_UNION_MASKING", + InputValidation = "INPUT_VALIDATION", + Parsing = "PARSING", + ParsingTagDirectives = "PARSING_TAG_DIRECTIVES", + PartialInterfaceMasking = "PARTIAL_INTERFACE_MASKING", + SchemaRetrieval = "SCHEMA_RETRIEVAL", + TagInheriting = "TAG_INHERITING", + TagMatching = "TAG_MATCHING", + ToApiSchema = "TO_API_SCHEMA", + ToFilterSchema = "TO_FILTER_SCHEMA", + Unknown = "UNKNOWN", + UnreachableTypeMasking = "UNREACHABLE_TYPE_MASKING", + VersionCheck = "VERSION_CHECK", +} + +export type EntitiesError = { + __typename?: "EntitiesError"; + message: Scalars["String"]["output"]; +}; + +export type EntitiesErrorResponse = { + __typename?: "EntitiesErrorResponse"; + errors: Array; +}; + +export type EntitiesResponse = { + __typename?: "EntitiesResponse"; + entities: Array; +}; + +export type EntitiesResponseOrError = EntitiesErrorResponse | EntitiesResponse; + +export type Entity = { + __typename?: "Entity"; + typename: Scalars["String"]["output"]; +}; + export type Money = { __typename?: "Money"; amount?: Maybe; @@ -115,6 +179,10 @@ export type QuerySearchProductsArgs = { searchInput?: ProductSearchInput; }; +export type ReadableObject = { + text?: Maybe; +}; + export type Review = { __typename?: "Review"; content?: Maybe; @@ -122,6 +190,15 @@ export type Review = { rating?: Maybe; }; +export type TextBook = Book & + ReadableObject & { + __typename?: "TextBook"; + id: Scalars["ID"]["output"]; + publishedAt?: Maybe; + text?: Maybe; + title?: Maybe; + }; + /** An user account in our system */ export type User = { __typename?: "User"; @@ -246,10 +323,33 @@ export type DirectiveResolverFn< info: GraphQLResolveInfo, ) => TResult | Promise; +/** Mapping of union types */ +export type ResolversUnionTypes<_RefType extends Record> = { + EntitiesResponseOrError: EntitiesErrorResponse | EntitiesResponse; +}; + +/** Mapping of interface types */ +export type ResolversInterfaceTypes<_RefType extends Record> = + { + Book: ColoringBook | TextBook; + ReadableObject: TextBook; + }; + /** Mapping between all available schema types and the resolvers types */ export type ResolversTypes = { + Book: ResolverTypeWrapper["Book"]>; Boolean: ResolverTypeWrapper; Cart: ResolverTypeWrapper; + ColoringBook: ResolverTypeWrapper; + ContractVariantFailedStep: ContractVariantFailedStep; + Date: ResolverTypeWrapper; + EntitiesError: ResolverTypeWrapper; + EntitiesErrorResponse: ResolverTypeWrapper; + EntitiesResponse: ResolverTypeWrapper; + EntitiesResponseOrError: ResolverTypeWrapper< + ResolversUnionTypes["EntitiesResponseOrError"] + >; + Entity: ResolverTypeWrapper; Float: ResolverTypeWrapper; ID: ResolverTypeWrapper; Int: ResolverTypeWrapper; @@ -259,15 +359,27 @@ export type ResolversTypes = { Product: ResolverTypeWrapper; ProductSearchInput: ProductSearchInput; Query: ResolverTypeWrapper<{}>; + ReadableObject: ResolverTypeWrapper< + ResolversInterfaceTypes["ReadableObject"] + >; Review: ResolverTypeWrapper; String: ResolverTypeWrapper; + TextBook: ResolverTypeWrapper; User: ResolverTypeWrapper; }; /** Mapping between all available schema types and the resolvers parents */ export type ResolversParentTypes = { + Book: ResolversInterfaceTypes["Book"]; Boolean: Scalars["Boolean"]["output"]; Cart: Cart; + ColoringBook: ColoringBook; + Date: Scalars["Date"]["output"]; + EntitiesError: EntitiesError; + EntitiesErrorResponse: EntitiesErrorResponse; + EntitiesResponse: EntitiesResponse; + EntitiesResponseOrError: ResolversUnionTypes["EntitiesResponseOrError"]; + Entity: Entity; Float: Scalars["Float"]["output"]; ID: Scalars["ID"]["output"]; Int: Scalars["Int"]["output"]; @@ -277,8 +389,10 @@ export type ResolversParentTypes = { Product: Product; ProductSearchInput: ProductSearchInput; Query: {}; + ReadableObject: ResolversInterfaceTypes["ReadableObject"]; Review: Review; String: Scalars["String"]["output"]; + TextBook: TextBook; User: User; }; @@ -294,6 +408,25 @@ export type DeferDirectiveResolver< Args = DeferDirectiveArgs, > = DirectiveResolverFn; +export type BookResolvers< + ContextType = any, + ParentType extends + ResolversParentTypes["Book"] = ResolversParentTypes["Book"], +> = { + __resolveType: TypeResolveFn< + "ColoringBook" | "TextBook", + ParentType, + ContextType + >; + id?: Resolver; + publishedAt?: Resolver< + Maybe, + ParentType, + ContextType + >; + title?: Resolver, ParentType, ContextType>; +}; + export type CartResolvers< ContextType = any, ParentType extends @@ -308,6 +441,83 @@ export type CartResolvers< __isTypeOf?: IsTypeOfResolverFn; }; +export type ColoringBookResolvers< + ContextType = any, + ParentType extends + ResolversParentTypes["ColoringBook"] = ResolversParentTypes["ColoringBook"], +> = { + colors?: Resolver< + Maybe>>, + ParentType, + ContextType + >; + id?: Resolver; + publishedAt?: Resolver< + Maybe, + ParentType, + ContextType + >; + title?: Resolver, ParentType, ContextType>; + __isTypeOf?: IsTypeOfResolverFn; +}; + +export interface DateScalarConfig + extends GraphQLScalarTypeConfig { + name: "Date"; +} + +export type EntitiesErrorResolvers< + ContextType = any, + ParentType extends + ResolversParentTypes["EntitiesError"] = ResolversParentTypes["EntitiesError"], +> = { + message?: Resolver; + __isTypeOf?: IsTypeOfResolverFn; +}; + +export type EntitiesErrorResponseResolvers< + ContextType = any, + ParentType extends + ResolversParentTypes["EntitiesErrorResponse"] = ResolversParentTypes["EntitiesErrorResponse"], +> = { + errors?: Resolver< + Array, + ParentType, + ContextType + >; + __isTypeOf?: IsTypeOfResolverFn; +}; + +export type EntitiesResponseResolvers< + ContextType = any, + ParentType extends + ResolversParentTypes["EntitiesResponse"] = ResolversParentTypes["EntitiesResponse"], +> = { + entities?: Resolver, ParentType, ContextType>; + __isTypeOf?: IsTypeOfResolverFn; +}; + +export type EntitiesResponseOrErrorResolvers< + ContextType = any, + ParentType extends + ResolversParentTypes["EntitiesResponseOrError"] = ResolversParentTypes["EntitiesResponseOrError"], +> = { + __resolveType: TypeResolveFn< + "EntitiesErrorResponse" | "EntitiesResponse", + ParentType, + ContextType + >; +}; + +export type EntityResolvers< + ContextType = any, + ParentType extends + ResolversParentTypes["Entity"] = ResolversParentTypes["Entity"], +> = { + typename?: Resolver; + __isTypeOf?: IsTypeOfResolverFn; +}; + export type MoneyResolvers< ContextType = any, ParentType extends @@ -394,6 +604,15 @@ export type QueryResolvers< viewer?: Resolver, ParentType, ContextType>; }; +export type ReadableObjectResolvers< + ContextType = any, + ParentType extends + ResolversParentTypes["ReadableObject"] = ResolversParentTypes["ReadableObject"], +> = { + __resolveType: TypeResolveFn<"TextBook", ParentType, ContextType>; + text?: Resolver, ParentType, ContextType>; +}; + export type ReviewResolvers< ContextType = any, ParentType extends @@ -405,6 +624,22 @@ export type ReviewResolvers< __isTypeOf?: IsTypeOfResolverFn; }; +export type TextBookResolvers< + ContextType = any, + ParentType extends + ResolversParentTypes["TextBook"] = ResolversParentTypes["TextBook"], +> = { + id?: Resolver; + publishedAt?: Resolver< + Maybe, + ParentType, + ContextType + >; + text?: Resolver, ParentType, ContextType>; + title?: Resolver, ParentType, ContextType>; + __isTypeOf?: IsTypeOfResolverFn; +}; + export type UserResolvers< ContextType = any, ParentType extends @@ -428,12 +663,22 @@ export type UserResolvers< }; export type Resolvers = { + Book?: BookResolvers; Cart?: CartResolvers; + ColoringBook?: ColoringBookResolvers; + Date?: GraphQLScalarType; + EntitiesError?: EntitiesErrorResolvers; + EntitiesErrorResponse?: EntitiesErrorResponseResolvers; + EntitiesResponse?: EntitiesResponseResolvers; + EntitiesResponseOrError?: EntitiesResponseOrErrorResolvers; + Entity?: EntityResolvers; Money?: MoneyResolvers; Order?: OrderResolvers; Product?: ProductResolvers; Query?: QueryResolvers; + ReadableObject?: ReadableObjectResolvers; Review?: ReviewResolvers; + TextBook?: TextBookResolvers; User?: UserResolvers; }; diff --git a/src/__generated__/resolvers-types-github.ts b/src/__generated__/resolvers-types-github.ts new file mode 100644 index 0000000..4047bbe --- /dev/null +++ b/src/__generated__/resolvers-types-github.ts @@ -0,0 +1,90503 @@ +import { + type GraphQLResolveInfo, + GraphQLScalarType, + type GraphQLScalarTypeConfig, +} from "graphql"; +export type Maybe = T | null; +export type InputMaybe = Maybe; +export type Exact = { + [K in keyof T]: T[K]; +}; +export type MakeOptional = Omit & { + [SubKey in K]?: Maybe; +}; +export type MakeMaybe = Omit & { + [SubKey in K]: Maybe; +}; +export type MakeEmpty< + T extends { [key: string]: unknown }, + K extends keyof T, +> = { [_ in K]?: never }; +export type Incremental = + | T + | { + [P in keyof T]?: P extends " $fragmentName" | "__typename" ? T[P] : never; + }; +export type Omit = Pick>; +export type RequireFields = Omit & { + [P in K]-?: NonNullable; +}; +/** All built-in and custom scalars, mapped to their actual values */ +export type Scalars = { + ID: { input: string; output: string }; + String: { input: string; output: string }; + Boolean: { input: boolean; output: boolean }; + Int: { input: number; output: number }; + Float: { input: number; output: number }; + /** A (potentially binary) string encoded using base64. */ + Base64String: { input: any; output: any }; + /** + * Represents non-fractional signed whole numeric values. Since the value may + * exceed the size of a 32-bit integer, it's encoded as a string. + */ + BigInt: { input: any; output: any }; + /** An ISO-8601 encoded date string. */ + Date: { input: any; output: any }; + /** An ISO-8601 encoded UTC date string. */ + DateTime: { input: any; output: any }; + /** A Git object ID. */ + GitObjectID: { input: any; output: any }; + /** A fully qualified reference name (e.g. `refs/heads/master`). */ + GitRefname: { input: any; output: any }; + /** Git SSH string */ + GitSSHRemote: { input: any; output: any }; + /** An ISO-8601 encoded date string. Unlike the DateTime type, GitTimestamp is not converted in UTC. */ + GitTimestamp: { input: any; output: any }; + /** A string containing HTML code. */ + HTML: { input: any; output: any }; + /** An ISO-8601 encoded UTC date string with millisecond precision. */ + PreciseDateTime: { input: any; output: any }; + /** An RFC 3986, RFC 3987, and RFC 6570 (level 4) compliant URI string. */ + URI: { input: any; output: any }; + /** A valid x509 certificate string */ + X509Certificate: { input: any; output: any }; +}; + +/** Autogenerated input type of AbortQueuedMigrations */ +export type AbortQueuedMigrationsInput = { + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: InputMaybe; + /** The ID of the organization that is running the migrations. */ + ownerId: Scalars["ID"]["input"]; +}; + +/** Autogenerated return type of AbortQueuedMigrations. */ +export type AbortQueuedMigrationsPayload = { + __typename?: "AbortQueuedMigrationsPayload"; + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: Maybe; + /** Did the operation succeed? */ + success?: Maybe; +}; + +/** Autogenerated input type of AbortRepositoryMigration */ +export type AbortRepositoryMigrationInput = { + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: InputMaybe; + /** The ID of the migration to be aborted. */ + migrationId: Scalars["ID"]["input"]; +}; + +/** Autogenerated return type of AbortRepositoryMigration. */ +export type AbortRepositoryMigrationPayload = { + __typename?: "AbortRepositoryMigrationPayload"; + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: Maybe; + /** Did the operation succeed? */ + success?: Maybe; +}; + +/** Autogenerated input type of AcceptEnterpriseAdministratorInvitation */ +export type AcceptEnterpriseAdministratorInvitationInput = { + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: InputMaybe; + /** The id of the invitation being accepted */ + invitationId: Scalars["ID"]["input"]; +}; + +/** Autogenerated return type of AcceptEnterpriseAdministratorInvitation. */ +export type AcceptEnterpriseAdministratorInvitationPayload = { + __typename?: "AcceptEnterpriseAdministratorInvitationPayload"; + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: Maybe; + /** The invitation that was accepted. */ + invitation?: Maybe; + /** A message confirming the result of accepting an administrator invitation. */ + message?: Maybe; +}; + +/** Autogenerated input type of AcceptEnterpriseMemberInvitation */ +export type AcceptEnterpriseMemberInvitationInput = { + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: InputMaybe; + /** The id of the invitation being accepted */ + invitationId: Scalars["ID"]["input"]; +}; + +/** Autogenerated return type of AcceptEnterpriseMemberInvitation. */ +export type AcceptEnterpriseMemberInvitationPayload = { + __typename?: "AcceptEnterpriseMemberInvitationPayload"; + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: Maybe; + /** The invitation that was accepted. */ + invitation?: Maybe; + /** A message confirming the result of accepting an unaffiliated member invitation. */ + message?: Maybe; +}; + +/** Autogenerated input type of AcceptTopicSuggestion */ +export type AcceptTopicSuggestionInput = { + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: InputMaybe; + /** + * The name of the suggested topic. + * + * **Upcoming Change on 2024-04-01 UTC** + * **Description:** `name` will be removed. + * **Reason:** Suggested topics are no longer supported + */ + name?: InputMaybe; + /** + * The Node ID of the repository. + * + * **Upcoming Change on 2024-04-01 UTC** + * **Description:** `repositoryId` will be removed. + * **Reason:** Suggested topics are no longer supported + */ + repositoryId?: InputMaybe; +}; + +/** Autogenerated return type of AcceptTopicSuggestion. */ +export type AcceptTopicSuggestionPayload = { + __typename?: "AcceptTopicSuggestionPayload"; + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: Maybe; + /** + * The accepted topic. + * @deprecated Suggested topics are no longer supported Removal on 2024-04-01 UTC. + */ + topic?: Maybe; +}; + +/** Represents an object which can take actions on GitHub. Typically a User or Bot. */ +export type Actor = { + /** A URL pointing to the actor's public avatar. */ + avatarUrl: Scalars["URI"]["output"]; + /** The username of the actor. */ + login: Scalars["String"]["output"]; + /** The HTTP path for this actor. */ + resourcePath: Scalars["URI"]["output"]; + /** The HTTP URL for this actor. */ + url: Scalars["URI"]["output"]; +}; + +/** Represents an object which can take actions on GitHub. Typically a User or Bot. */ +export type ActorAvatarUrlArgs = { + size?: InputMaybe; +}; + +/** Location information for an actor */ +export type ActorLocation = { + __typename?: "ActorLocation"; + /** City */ + city?: Maybe; + /** Country name */ + country?: Maybe; + /** Country code */ + countryCode?: Maybe; + /** Region name */ + region?: Maybe; + /** Region or state code */ + regionCode?: Maybe; +}; + +/** The actor's type. */ +export enum ActorType { + /** Indicates a team actor. */ + Team = "TEAM", + /** Indicates a user actor. */ + User = "USER", +} + +/** Autogenerated input type of AddAssigneesToAssignable */ +export type AddAssigneesToAssignableInput = { + /** The id of the assignable object to add assignees to. */ + assignableId: Scalars["ID"]["input"]; + /** The id of users to add as assignees. */ + assigneeIds: Array; + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: InputMaybe; +}; + +/** Autogenerated return type of AddAssigneesToAssignable. */ +export type AddAssigneesToAssignablePayload = { + __typename?: "AddAssigneesToAssignablePayload"; + /** The item that was assigned. */ + assignable?: Maybe; + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: Maybe; +}; + +/** Autogenerated input type of AddComment */ +export type AddCommentInput = { + /** The contents of the comment. */ + body: Scalars["String"]["input"]; + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: InputMaybe; + /** The Node ID of the subject to modify. */ + subjectId: Scalars["ID"]["input"]; +}; + +/** Autogenerated return type of AddComment. */ +export type AddCommentPayload = { + __typename?: "AddCommentPayload"; + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: Maybe; + /** The edge from the subject's comment connection. */ + commentEdge?: Maybe; + /** The subject */ + subject?: Maybe; + /** The edge from the subject's timeline connection. */ + timelineEdge?: Maybe; +}; + +/** Autogenerated input type of AddDiscussionComment */ +export type AddDiscussionCommentInput = { + /** The contents of the comment. */ + body: Scalars["String"]["input"]; + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: InputMaybe; + /** The Node ID of the discussion to comment on. */ + discussionId: Scalars["ID"]["input"]; + /** The Node ID of the discussion comment within this discussion to reply to. */ + replyToId?: InputMaybe; +}; + +/** Autogenerated return type of AddDiscussionComment. */ +export type AddDiscussionCommentPayload = { + __typename?: "AddDiscussionCommentPayload"; + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: Maybe; + /** The newly created discussion comment. */ + comment?: Maybe; +}; + +/** Autogenerated input type of AddDiscussionPollVote */ +export type AddDiscussionPollVoteInput = { + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: InputMaybe; + /** The Node ID of the discussion poll option to vote for. */ + pollOptionId: Scalars["ID"]["input"]; +}; + +/** Autogenerated return type of AddDiscussionPollVote. */ +export type AddDiscussionPollVotePayload = { + __typename?: "AddDiscussionPollVotePayload"; + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: Maybe; + /** The poll option that a vote was added to. */ + pollOption?: Maybe; +}; + +/** Autogenerated input type of AddEnterpriseOrganizationMember */ +export type AddEnterpriseOrganizationMemberInput = { + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: InputMaybe; + /** The ID of the enterprise which owns the organization. */ + enterpriseId: Scalars["ID"]["input"]; + /** The ID of the organization the users will be added to. */ + organizationId: Scalars["ID"]["input"]; + /** The role to assign the users in the organization */ + role?: InputMaybe; + /** The IDs of the enterprise members to add. */ + userIds: Array; +}; + +/** Autogenerated return type of AddEnterpriseOrganizationMember. */ +export type AddEnterpriseOrganizationMemberPayload = { + __typename?: "AddEnterpriseOrganizationMemberPayload"; + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: Maybe; + /** The users who were added to the organization. */ + users?: Maybe>; +}; + +/** Autogenerated input type of AddEnterpriseSupportEntitlement */ +export type AddEnterpriseSupportEntitlementInput = { + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: InputMaybe; + /** The ID of the Enterprise which the admin belongs to. */ + enterpriseId: Scalars["ID"]["input"]; + /** The login of a member who will receive the support entitlement. */ + login: Scalars["String"]["input"]; +}; + +/** Autogenerated return type of AddEnterpriseSupportEntitlement. */ +export type AddEnterpriseSupportEntitlementPayload = { + __typename?: "AddEnterpriseSupportEntitlementPayload"; + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: Maybe; + /** A message confirming the result of adding the support entitlement. */ + message?: Maybe; +}; + +/** Autogenerated input type of AddLabelsToLabelable */ +export type AddLabelsToLabelableInput = { + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: InputMaybe; + /** The ids of the labels to add. */ + labelIds: Array; + /** The id of the labelable object to add labels to. */ + labelableId: Scalars["ID"]["input"]; +}; + +/** Autogenerated return type of AddLabelsToLabelable. */ +export type AddLabelsToLabelablePayload = { + __typename?: "AddLabelsToLabelablePayload"; + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: Maybe; + /** The item that was labeled. */ + labelable?: Maybe; +}; + +/** Autogenerated input type of AddProjectCard */ +export type AddProjectCardInput = { + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: InputMaybe; + /** The content of the card. Must be a member of the ProjectCardItem union */ + contentId?: InputMaybe; + /** The note on the card. */ + note?: InputMaybe; + /** The Node ID of the ProjectColumn. */ + projectColumnId: Scalars["ID"]["input"]; +}; + +/** Autogenerated return type of AddProjectCard. */ +export type AddProjectCardPayload = { + __typename?: "AddProjectCardPayload"; + /** The edge from the ProjectColumn's card connection. */ + cardEdge?: Maybe; + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: Maybe; + /** The ProjectColumn */ + projectColumn?: Maybe; +}; + +/** Autogenerated input type of AddProjectColumn */ +export type AddProjectColumnInput = { + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: InputMaybe; + /** The name of the column. */ + name: Scalars["String"]["input"]; + /** The Node ID of the project. */ + projectId: Scalars["ID"]["input"]; +}; + +/** Autogenerated return type of AddProjectColumn. */ +export type AddProjectColumnPayload = { + __typename?: "AddProjectColumnPayload"; + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: Maybe; + /** The edge from the project's column connection. */ + columnEdge?: Maybe; + /** The project */ + project?: Maybe; +}; + +/** Autogenerated input type of AddProjectV2DraftIssue */ +export type AddProjectV2DraftIssueInput = { + /** The IDs of the assignees of the draft issue. */ + assigneeIds?: InputMaybe>; + /** The body of the draft issue. */ + body?: InputMaybe; + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: InputMaybe; + /** The ID of the Project to add the draft issue to. */ + projectId: Scalars["ID"]["input"]; + /** + * The title of the draft issue. A project item can also be created by providing + * the URL of an Issue or Pull Request if you have access. + */ + title: Scalars["String"]["input"]; +}; + +/** Autogenerated return type of AddProjectV2DraftIssue. */ +export type AddProjectV2DraftIssuePayload = { + __typename?: "AddProjectV2DraftIssuePayload"; + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: Maybe; + /** The draft issue added to the project. */ + projectItem?: Maybe; +}; + +/** Autogenerated input type of AddProjectV2ItemById */ +export type AddProjectV2ItemByIdInput = { + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: InputMaybe; + /** The id of the Issue or Pull Request to add. */ + contentId: Scalars["ID"]["input"]; + /** The ID of the Project to add the item to. */ + projectId: Scalars["ID"]["input"]; +}; + +/** Autogenerated return type of AddProjectV2ItemById. */ +export type AddProjectV2ItemByIdPayload = { + __typename?: "AddProjectV2ItemByIdPayload"; + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: Maybe; + /** The item added to the project. */ + item?: Maybe; +}; + +/** Autogenerated input type of AddPullRequestReviewComment */ +export type AddPullRequestReviewCommentInput = { + /** + * The text of the comment. This field is required + * + * **Upcoming Change on 2023-10-01 UTC** + * **Description:** `body` will be removed. use addPullRequestReviewThread or addPullRequestReviewThreadReply instead + * **Reason:** We are deprecating the addPullRequestReviewComment mutation + */ + body?: InputMaybe; + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: InputMaybe; + /** + * The SHA of the commit to comment on. + * + * **Upcoming Change on 2023-10-01 UTC** + * **Description:** `commitOID` will be removed. use addPullRequestReviewThread or addPullRequestReviewThreadReply instead + * **Reason:** We are deprecating the addPullRequestReviewComment mutation + */ + commitOID?: InputMaybe; + /** + * The comment id to reply to. + * + * **Upcoming Change on 2023-10-01 UTC** + * **Description:** `inReplyTo` will be removed. use addPullRequestReviewThread or addPullRequestReviewThreadReply instead + * **Reason:** We are deprecating the addPullRequestReviewComment mutation + */ + inReplyTo?: InputMaybe; + /** + * The relative path of the file to comment on. + * + * **Upcoming Change on 2023-10-01 UTC** + * **Description:** `path` will be removed. use addPullRequestReviewThread or addPullRequestReviewThreadReply instead + * **Reason:** We are deprecating the addPullRequestReviewComment mutation + */ + path?: InputMaybe; + /** + * The line index in the diff to comment on. + * + * **Upcoming Change on 2023-10-01 UTC** + * **Description:** `position` will be removed. use addPullRequestReviewThread or addPullRequestReviewThreadReply instead + * **Reason:** We are deprecating the addPullRequestReviewComment mutation + */ + position?: InputMaybe; + /** + * The node ID of the pull request reviewing + * + * **Upcoming Change on 2023-10-01 UTC** + * **Description:** `pullRequestId` will be removed. use + * addPullRequestReviewThread or addPullRequestReviewThreadReply instead + * **Reason:** We are deprecating the addPullRequestReviewComment mutation + */ + pullRequestId?: InputMaybe; + /** + * The Node ID of the review to modify. + * + * **Upcoming Change on 2023-10-01 UTC** + * **Description:** `pullRequestReviewId` will be removed. use + * addPullRequestReviewThread or addPullRequestReviewThreadReply instead + * **Reason:** We are deprecating the addPullRequestReviewComment mutation + */ + pullRequestReviewId?: InputMaybe; +}; + +/** Autogenerated return type of AddPullRequestReviewComment. */ +export type AddPullRequestReviewCommentPayload = { + __typename?: "AddPullRequestReviewCommentPayload"; + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: Maybe; + /** The newly created comment. */ + comment?: Maybe; + /** The edge from the review's comment connection. */ + commentEdge?: Maybe; +}; + +/** Autogenerated input type of AddPullRequestReview */ +export type AddPullRequestReviewInput = { + /** The contents of the review body comment. */ + body?: InputMaybe; + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: InputMaybe; + /** + * The review line comments. + * + * **Upcoming Change on 2023-10-01 UTC** + * **Description:** `comments` will be removed. use the `threads` argument instead + * **Reason:** We are deprecating comment fields that use diff-relative positioning + */ + comments?: InputMaybe>>; + /** The commit OID the review pertains to. */ + commitOID?: InputMaybe; + /** The event to perform on the pull request review. */ + event?: InputMaybe; + /** The Node ID of the pull request to modify. */ + pullRequestId: Scalars["ID"]["input"]; + /** The review line comment threads. */ + threads?: InputMaybe>>; +}; + +/** Autogenerated return type of AddPullRequestReview. */ +export type AddPullRequestReviewPayload = { + __typename?: "AddPullRequestReviewPayload"; + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: Maybe; + /** The newly created pull request review. */ + pullRequestReview?: Maybe; + /** The edge from the pull request's review connection. */ + reviewEdge?: Maybe; +}; + +/** Autogenerated input type of AddPullRequestReviewThread */ +export type AddPullRequestReviewThreadInput = { + /** Body of the thread's first comment. */ + body: Scalars["String"]["input"]; + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: InputMaybe; + /** + * The line of the blob to which the thread refers, required for line-level + * threads. The end of the line range for multi-line comments. + */ + line?: InputMaybe; + /** Path to the file being commented on. */ + path: Scalars["String"]["input"]; + /** The node ID of the pull request reviewing */ + pullRequestId?: InputMaybe; + /** The Node ID of the review to modify. */ + pullRequestReviewId?: InputMaybe; + /** 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?: InputMaybe; + /** The first line of the range to which the comment refers. */ + startLine?: InputMaybe; + /** The side of the diff on which the start line resides. */ + startSide?: InputMaybe; + /** The level at which the comments in the corresponding thread are targeted, can be a diff line or a file */ + subjectType?: InputMaybe; +}; + +/** Autogenerated return type of AddPullRequestReviewThread. */ +export type AddPullRequestReviewThreadPayload = { + __typename?: "AddPullRequestReviewThreadPayload"; + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: Maybe; + /** The newly created thread. */ + thread?: Maybe; +}; + +/** Autogenerated input type of AddPullRequestReviewThreadReply */ +export type AddPullRequestReviewThreadReplyInput = { + /** The text of the reply. */ + body: Scalars["String"]["input"]; + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: InputMaybe; + /** The Node ID of the pending review to which the reply will belong. */ + pullRequestReviewId?: InputMaybe; + /** The Node ID of the thread to which this reply is being written. */ + pullRequestReviewThreadId: Scalars["ID"]["input"]; +}; + +/** Autogenerated return type of AddPullRequestReviewThreadReply. */ +export type AddPullRequestReviewThreadReplyPayload = { + __typename?: "AddPullRequestReviewThreadReplyPayload"; + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: Maybe; + /** The newly created reply. */ + comment?: Maybe; +}; + +/** Autogenerated input type of AddReaction */ +export type AddReactionInput = { + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: InputMaybe; + /** The name of the emoji to react with. */ + content: ReactionContent; + /** The Node ID of the subject to modify. */ + subjectId: Scalars["ID"]["input"]; +}; + +/** Autogenerated return type of AddReaction. */ +export type AddReactionPayload = { + __typename?: "AddReactionPayload"; + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: Maybe; + /** The reaction object. */ + reaction?: Maybe; + /** The reaction groups for the subject. */ + reactionGroups?: Maybe>; + /** The reactable subject. */ + subject?: Maybe; +}; + +/** Autogenerated input type of AddStar */ +export type AddStarInput = { + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: InputMaybe; + /** The Starrable ID to star. */ + starrableId: Scalars["ID"]["input"]; +}; + +/** Autogenerated return type of AddStar. */ +export type AddStarPayload = { + __typename?: "AddStarPayload"; + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: Maybe; + /** The starrable. */ + starrable?: Maybe; +}; + +/** Autogenerated input type of AddUpvote */ +export type AddUpvoteInput = { + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: InputMaybe; + /** The Node ID of the discussion or comment to upvote. */ + subjectId: Scalars["ID"]["input"]; +}; + +/** Autogenerated return type of AddUpvote. */ +export type AddUpvotePayload = { + __typename?: "AddUpvotePayload"; + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: Maybe; + /** The votable subject. */ + subject?: Maybe; +}; + +/** Autogenerated input type of AddVerifiableDomain */ +export type AddVerifiableDomainInput = { + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: InputMaybe; + /** The URL of the domain */ + domain: Scalars["URI"]["input"]; + /** The ID of the owner to add the domain to */ + ownerId: Scalars["ID"]["input"]; +}; + +/** Autogenerated return type of AddVerifiableDomain. */ +export type AddVerifiableDomainPayload = { + __typename?: "AddVerifiableDomainPayload"; + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: Maybe; + /** The verifiable domain that was added. */ + domain?: Maybe; +}; + +/** Represents an 'added_to_merge_queue' event on a given pull request. */ +export type AddedToMergeQueueEvent = Node & { + __typename?: "AddedToMergeQueueEvent"; + /** Identifies the actor who performed the event. */ + actor?: Maybe; + /** Identifies the date and time when the object was created. */ + createdAt: Scalars["DateTime"]["output"]; + /** The user who added this Pull Request to the merge queue */ + enqueuer?: Maybe; + /** The Node ID of the AddedToMergeQueueEvent object */ + id: Scalars["ID"]["output"]; + /** The merge queue where this pull request was added to. */ + mergeQueue?: Maybe; + /** PullRequest referenced by event. */ + pullRequest?: Maybe; +}; + +/** Represents a 'added_to_project' event on a given issue or pull request. */ +export type AddedToProjectEvent = Node & { + __typename?: "AddedToProjectEvent"; + /** Identifies the actor who performed the event. */ + actor?: Maybe; + /** Identifies the date and time when the object was created. */ + createdAt: Scalars["DateTime"]["output"]; + /** Identifies the primary key from the database. */ + databaseId?: Maybe; + /** The Node ID of the AddedToProjectEvent object */ + id: Scalars["ID"]["output"]; + /** Project referenced by event. */ + project?: Maybe; + /** Project card referenced by this project event. */ + projectCard?: Maybe; + /** Column name referenced by this project event. */ + projectColumnName: Scalars["String"]["output"]; +}; + +/** Represents an announcement banner. */ +export type AnnouncementBanner = { + /** The text of the announcement */ + announcement?: Maybe; + /** The date the announcement was created */ + announcementCreatedAt?: Maybe; + /** The expiration date of the announcement, if any */ + announcementExpiresAt?: Maybe; + /** Whether the announcement can be dismissed by the user */ + announcementUserDismissible?: Maybe; +}; + +/** A GitHub App. */ +export type App = Node & { + __typename?: "App"; + /** Identifies the date and time when the object was created. */ + createdAt: Scalars["DateTime"]["output"]; + /** Identifies the primary key from the database. */ + databaseId?: Maybe; + /** The description of the app. */ + description?: Maybe; + /** The Node ID of the App object */ + id: Scalars["ID"]["output"]; + /** The IP addresses of the app. */ + ipAllowListEntries: IpAllowListEntryConnection; + /** The hex color code, without the leading '#', for the logo background. */ + logoBackgroundColor: Scalars["String"]["output"]; + /** A URL pointing to the app's logo. */ + logoUrl: Scalars["URI"]["output"]; + /** The name of the app. */ + name: Scalars["String"]["output"]; + /** A slug based on the name of the app for use in URLs. */ + slug: Scalars["String"]["output"]; + /** Identifies the date and time when the object was last updated. */ + updatedAt: Scalars["DateTime"]["output"]; + /** The URL to the app's homepage. */ + url: Scalars["URI"]["output"]; +}; + +/** A GitHub App. */ +export type AppIpAllowListEntriesArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; + orderBy?: InputMaybe; +}; + +/** A GitHub App. */ +export type AppLogoUrlArgs = { + size?: InputMaybe; +}; + +/** Autogenerated input type of ApproveDeployments */ +export type ApproveDeploymentsInput = { + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: InputMaybe; + /** Optional comment for approving deployments */ + comment?: InputMaybe; + /** The ids of environments to reject deployments */ + environmentIds: Array; + /** The node ID of the workflow run containing the pending deployments. */ + workflowRunId: Scalars["ID"]["input"]; +}; + +/** Autogenerated return type of ApproveDeployments. */ +export type ApproveDeploymentsPayload = { + __typename?: "ApproveDeploymentsPayload"; + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: Maybe; + /** The affected deployments. */ + deployments?: Maybe>; +}; + +/** Autogenerated input type of ApproveVerifiableDomain */ +export type ApproveVerifiableDomainInput = { + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: InputMaybe; + /** The ID of the verifiable domain to approve. */ + id: Scalars["ID"]["input"]; +}; + +/** Autogenerated return type of ApproveVerifiableDomain. */ +export type ApproveVerifiableDomainPayload = { + __typename?: "ApproveVerifiableDomainPayload"; + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: Maybe; + /** The verifiable domain that was approved. */ + domain?: Maybe; +}; + +/** Autogenerated input type of ArchiveProjectV2Item */ +export type ArchiveProjectV2ItemInput = { + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: InputMaybe; + /** The ID of the ProjectV2Item to archive. */ + itemId: Scalars["ID"]["input"]; + /** The ID of the Project to archive the item from. */ + projectId: Scalars["ID"]["input"]; +}; + +/** Autogenerated return type of ArchiveProjectV2Item. */ +export type ArchiveProjectV2ItemPayload = { + __typename?: "ArchiveProjectV2ItemPayload"; + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: Maybe; + /** The item archived from the project. */ + item?: Maybe; +}; + +/** Autogenerated input type of ArchiveRepository */ +export type ArchiveRepositoryInput = { + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: InputMaybe; + /** The ID of the repository to mark as archived. */ + repositoryId: Scalars["ID"]["input"]; +}; + +/** Autogenerated return type of ArchiveRepository. */ +export type ArchiveRepositoryPayload = { + __typename?: "ArchiveRepositoryPayload"; + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: Maybe; + /** The repository that was marked as archived. */ + repository?: Maybe; +}; + +/** An object that can have users assigned to it. */ +export type Assignable = { + /** A list of Users assigned to this object. */ + assignees: UserConnection; +}; + +/** An object that can have users assigned to it. */ +export type AssignableAssigneesArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; +}; + +/** Represents an 'assigned' event on any assignable object. */ +export type AssignedEvent = Node & { + __typename?: "AssignedEvent"; + /** Identifies the actor who performed the event. */ + actor?: Maybe; + /** Identifies the assignable associated with the event. */ + assignable: Assignable; + /** Identifies the user or mannequin that was assigned. */ + assignee?: Maybe; + /** Identifies the date and time when the object was created. */ + createdAt: Scalars["DateTime"]["output"]; + /** The Node ID of the AssignedEvent object */ + id: Scalars["ID"]["output"]; + /** + * Identifies the user who was assigned. + * @deprecated Assignees can now be mannequins. Use the `assignee` field instead. Removal on 2020-01-01 UTC. + */ + user?: Maybe; +}; + +/** Types that can be assigned to issues. */ +export type Assignee = Bot | Mannequin | Organization | User; + +/** An entry in the audit log. */ +export type AuditEntry = { + /** The action name */ + action: Scalars["String"]["output"]; + /** The user who initiated the action */ + actor?: Maybe; + /** The IP address of the actor */ + actorIp?: Maybe; + /** A readable representation of the actor's location */ + actorLocation?: Maybe; + /** The username of the user who initiated the action */ + actorLogin?: Maybe; + /** The HTTP path for the actor. */ + actorResourcePath?: Maybe; + /** The HTTP URL for the actor. */ + actorUrl?: Maybe; + /** The time the action was initiated */ + createdAt: Scalars["PreciseDateTime"]["output"]; + /** The corresponding operation type for the action */ + operationType?: Maybe; + /** The user affected by the action */ + user?: Maybe; + /** For actions involving two users, the actor is the initiator and the user is the affected user. */ + userLogin?: Maybe; + /** The HTTP path for the user. */ + userResourcePath?: Maybe; + /** The HTTP URL for the user. */ + userUrl?: Maybe; +}; + +/** Types that can initiate an audit log event. */ +export type AuditEntryActor = Bot | Organization | User; + +/** Ordering options for Audit Log connections. */ +export type AuditLogOrder = { + /** The ordering direction. */ + direction?: InputMaybe; + /** The field to order Audit Logs by. */ + field?: InputMaybe; +}; + +/** Properties by which Audit Log connections can be ordered. */ +export enum AuditLogOrderField { + /** Order audit log entries by timestamp */ + CreatedAt = "CREATED_AT", +} + +/** Represents a 'auto_merge_disabled' event on a given pull request. */ +export type AutoMergeDisabledEvent = Node & { + __typename?: "AutoMergeDisabledEvent"; + /** Identifies the actor who performed the event. */ + actor?: Maybe; + /** Identifies the date and time when the object was created. */ + createdAt: Scalars["DateTime"]["output"]; + /** The user who disabled auto-merge for this Pull Request */ + disabler?: Maybe; + /** The Node ID of the AutoMergeDisabledEvent object */ + id: Scalars["ID"]["output"]; + /** PullRequest referenced by event */ + pullRequest?: Maybe; + /** The reason auto-merge was disabled */ + reason?: Maybe; + /** The reason_code relating to why auto-merge was disabled */ + reasonCode?: Maybe; +}; + +/** Represents a 'auto_merge_enabled' event on a given pull request. */ +export type AutoMergeEnabledEvent = Node & { + __typename?: "AutoMergeEnabledEvent"; + /** Identifies the actor who performed the event. */ + actor?: Maybe; + /** Identifies the date and time when the object was created. */ + createdAt: Scalars["DateTime"]["output"]; + /** The user who enabled auto-merge for this Pull Request */ + enabler?: Maybe; + /** The Node ID of the AutoMergeEnabledEvent object */ + id: Scalars["ID"]["output"]; + /** PullRequest referenced by event. */ + pullRequest?: Maybe; +}; + +/** Represents an auto-merge request for a pull request */ +export type AutoMergeRequest = { + __typename?: "AutoMergeRequest"; + /** The email address of the author of this auto-merge request. */ + authorEmail?: Maybe; + /** + * The commit message of the auto-merge request. If a merge queue is required by + * the base branch, this value will be set by the merge queue when merging. + */ + commitBody?: Maybe; + /** + * The commit title of the auto-merge request. If a merge queue is required by + * the base branch, this value will be set by the merge queue when merging + */ + commitHeadline?: Maybe; + /** When was this auto-merge request was enabled. */ + enabledAt?: Maybe; + /** The actor who created the auto-merge request. */ + enabledBy?: Maybe; + /** + * The merge method of the auto-merge request. If a merge queue is required by + * the base branch, this value will be set by the merge queue when merging. + */ + 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. */ +export type AutoRebaseEnabledEvent = Node & { + __typename?: "AutoRebaseEnabledEvent"; + /** Identifies the actor who performed the event. */ + actor?: Maybe; + /** Identifies the date and time when the object was created. */ + createdAt: Scalars["DateTime"]["output"]; + /** The user who enabled auto-merge (rebase) for this Pull Request */ + enabler?: Maybe; + /** The Node ID of the AutoRebaseEnabledEvent object */ + id: Scalars["ID"]["output"]; + /** PullRequest referenced by event. */ + pullRequest?: Maybe; +}; + +/** Represents a 'auto_squash_enabled' event on a given pull request. */ +export type AutoSquashEnabledEvent = Node & { + __typename?: "AutoSquashEnabledEvent"; + /** Identifies the actor who performed the event. */ + actor?: Maybe; + /** Identifies the date and time when the object was created. */ + createdAt: Scalars["DateTime"]["output"]; + /** The user who enabled auto-merge (squash) for this Pull Request */ + enabler?: Maybe; + /** The Node ID of the AutoSquashEnabledEvent object */ + id: Scalars["ID"]["output"]; + /** PullRequest referenced by event. */ + pullRequest?: Maybe; +}; + +/** Represents a 'automatic_base_change_failed' event on a given pull request. */ +export type AutomaticBaseChangeFailedEvent = Node & { + __typename?: "AutomaticBaseChangeFailedEvent"; + /** Identifies the actor who performed the event. */ + actor?: Maybe; + /** Identifies the date and time when the object was created. */ + createdAt: Scalars["DateTime"]["output"]; + /** The Node ID of the AutomaticBaseChangeFailedEvent object */ + id: Scalars["ID"]["output"]; + /** The new base for this PR */ + newBase: Scalars["String"]["output"]; + /** The old base for this PR */ + oldBase: Scalars["String"]["output"]; + /** PullRequest referenced by event. */ + pullRequest: PullRequest; +}; + +/** Represents a 'automatic_base_change_succeeded' event on a given pull request. */ +export type AutomaticBaseChangeSucceededEvent = Node & { + __typename?: "AutomaticBaseChangeSucceededEvent"; + /** Identifies the actor who performed the event. */ + actor?: Maybe; + /** Identifies the date and time when the object was created. */ + createdAt: Scalars["DateTime"]["output"]; + /** The Node ID of the AutomaticBaseChangeSucceededEvent object */ + id: Scalars["ID"]["output"]; + /** The new base for this PR */ + newBase: Scalars["String"]["output"]; + /** The old base for this PR */ + oldBase: Scalars["String"]["output"]; + /** PullRequest referenced by event. */ + pullRequest: PullRequest; +}; + +/** Represents a 'base_ref_changed' event on a given issue or pull request. */ +export type BaseRefChangedEvent = Node & { + __typename?: "BaseRefChangedEvent"; + /** Identifies the actor who performed the event. */ + actor?: Maybe; + /** Identifies the date and time when the object was created. */ + createdAt: Scalars["DateTime"]["output"]; + /** Identifies the name of the base ref for the pull request after it was changed. */ + currentRefName: Scalars["String"]["output"]; + /** Identifies the primary key from the database. */ + databaseId?: Maybe; + /** The Node ID of the BaseRefChangedEvent object */ + id: Scalars["ID"]["output"]; + /** Identifies the name of the base ref for the pull request before it was changed. */ + previousRefName: Scalars["String"]["output"]; + /** PullRequest referenced by event. */ + pullRequest: PullRequest; +}; + +/** Represents a 'base_ref_deleted' event on a given pull request. */ +export type BaseRefDeletedEvent = Node & { + __typename?: "BaseRefDeletedEvent"; + /** Identifies the actor who performed the event. */ + actor?: Maybe; + /** Identifies the name of the Ref associated with the `base_ref_deleted` event. */ + baseRefName?: Maybe; + /** Identifies the date and time when the object was created. */ + createdAt: Scalars["DateTime"]["output"]; + /** The Node ID of the BaseRefDeletedEvent object */ + id: Scalars["ID"]["output"]; + /** PullRequest referenced by event. */ + pullRequest?: Maybe; +}; + +/** Represents a 'base_ref_force_pushed' event on a given pull request. */ +export type BaseRefForcePushedEvent = Node & { + __typename?: "BaseRefForcePushedEvent"; + /** Identifies the actor who performed the event. */ + actor?: Maybe; + /** Identifies the after commit SHA for the 'base_ref_force_pushed' event. */ + afterCommit?: Maybe; + /** Identifies the before commit SHA for the 'base_ref_force_pushed' event. */ + beforeCommit?: Maybe; + /** Identifies the date and time when the object was created. */ + createdAt: Scalars["DateTime"]["output"]; + /** The Node ID of the BaseRefForcePushedEvent object */ + id: Scalars["ID"]["output"]; + /** PullRequest referenced by event. */ + pullRequest: PullRequest; + /** Identifies the fully qualified ref name for the 'base_ref_force_pushed' event. */ + ref?: Maybe; +}; + +/** Represents a Git blame. */ +export type Blame = { + __typename?: "Blame"; + /** The list of ranges from a Git blame. */ + ranges: Array; +}; + +/** Represents a range of information from a Git blame. */ +export type BlameRange = { + __typename?: "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: Scalars["Int"]["output"]; + /** Identifies the line author */ + commit: Commit; + /** The ending line for the range */ + endingLine: Scalars["Int"]["output"]; + /** The starting line for the range */ + startingLine: Scalars["Int"]["output"]; +}; + +/** Represents a Git blob. */ +export type Blob = GitObject & + Node & { + __typename?: "Blob"; + /** An abbreviated version of the Git object ID */ + abbreviatedOid: Scalars["String"]["output"]; + /** Byte size of Blob object */ + byteSize: Scalars["Int"]["output"]; + /** The HTTP path for this Git object */ + commitResourcePath: Scalars["URI"]["output"]; + /** The HTTP URL for this Git object */ + commitUrl: Scalars["URI"]["output"]; + /** The Node ID of the Blob object */ + id: Scalars["ID"]["output"]; + /** Indicates whether the Blob is binary or text. Returns null if unable to determine the encoding. */ + isBinary?: Maybe; + /** Indicates whether the contents is truncated */ + isTruncated: Scalars["Boolean"]["output"]; + /** The Git object ID */ + oid: Scalars["GitObjectID"]["output"]; + /** The Repository the Git object belongs to */ + repository: Repository; + /** UTF8 text data or null if the Blob is binary */ + text?: Maybe; + }; + +/** A special type of user which takes actions on behalf of GitHub Apps. */ +export type Bot = Actor & + Node & + UniformResourceLocatable & { + __typename?: "Bot"; + /** A URL pointing to the GitHub App's public avatar. */ + avatarUrl: Scalars["URI"]["output"]; + /** Identifies the date and time when the object was created. */ + createdAt: Scalars["DateTime"]["output"]; + /** Identifies the primary key from the database. */ + databaseId?: Maybe; + /** The Node ID of the Bot object */ + id: Scalars["ID"]["output"]; + /** The username of the actor. */ + login: Scalars["String"]["output"]; + /** The HTTP path for this bot */ + resourcePath: Scalars["URI"]["output"]; + /** Identifies the date and time when the object was last updated. */ + updatedAt: Scalars["DateTime"]["output"]; + /** The HTTP URL for this bot */ + url: Scalars["URI"]["output"]; + }; + +/** A special type of user which takes actions on behalf of GitHub Apps. */ +export type BotAvatarUrlArgs = { + size?: InputMaybe; +}; + +/** Types which can be actors for `BranchActorAllowance` objects. */ +export type BranchActorAllowanceActor = App | Team | User; + +/** Parameters to be used for the branch_name_pattern rule */ +export type BranchNamePatternParameters = { + __typename?: "BranchNamePatternParameters"; + /** How this rule will appear to users. */ + name?: Maybe; + /** If true, the rule will fail if the pattern matches. */ + negate: Scalars["Boolean"]["output"]; + /** The operator to use for matching. */ + operator: Scalars["String"]["output"]; + /** The pattern to match with. */ + pattern: Scalars["String"]["output"]; +}; + +/** Parameters to be used for the branch_name_pattern rule */ +export type BranchNamePatternParametersInput = { + /** How this rule will appear to users. */ + name?: InputMaybe; + /** If true, the rule will fail if the pattern matches. */ + negate?: InputMaybe; + /** The operator to use for matching. */ + operator: Scalars["String"]["input"]; + /** The pattern to match with. */ + pattern: Scalars["String"]["input"]; +}; + +/** A branch protection rule. */ +export type BranchProtectionRule = Node & { + __typename?: "BranchProtectionRule"; + /** Can this branch be deleted. */ + allowsDeletions: Scalars["Boolean"]["output"]; + /** Are force pushes allowed on this branch. */ + allowsForcePushes: Scalars["Boolean"]["output"]; + /** Is branch creation a protected operation. */ + blocksCreations: Scalars["Boolean"]["output"]; + /** A list of conflicts matching branches protection rule and other branch protection rules */ + branchProtectionRuleConflicts: BranchProtectionRuleConflictConnection; + /** A list of actors able to force push for this branch protection rule. */ + bypassForcePushAllowances: BypassForcePushAllowanceConnection; + /** A list of actors able to bypass PRs for this branch protection rule. */ + bypassPullRequestAllowances: BypassPullRequestAllowanceConnection; + /** The actor who created this branch protection rule. */ + creator?: Maybe; + /** Identifies the primary key from the database. */ + databaseId?: Maybe; + /** Will new commits pushed to matching branches dismiss pull request review approvals. */ + dismissesStaleReviews: Scalars["Boolean"]["output"]; + /** The Node ID of the BranchProtectionRule object */ + id: Scalars["ID"]["output"]; + /** Can admins override branch protection. */ + isAdminEnforced: Scalars["Boolean"]["output"]; + /** + * Whether users can pull changes from upstream when the branch is locked. Set to + * `true` to allow fork syncing. Set to `false` to prevent fork syncing. + */ + lockAllowsFetchAndMerge: Scalars["Boolean"]["output"]; + /** Whether to set the branch as read-only. If this is true, users will not be able to push to the branch. */ + lockBranch: Scalars["Boolean"]["output"]; + /** Repository refs that are protected by this rule */ + matchingRefs: RefConnection; + /** Identifies the protection rule pattern. */ + pattern: Scalars["String"]["output"]; + /** A list push allowances for this branch protection rule. */ + pushAllowances: PushAllowanceConnection; + /** The repository associated with this branch protection rule. */ + repository?: Maybe; + /** Whether the most recent push must be approved by someone other than the person who pushed it */ + requireLastPushApproval: Scalars["Boolean"]["output"]; + /** Number of approving reviews required to update matching branches. */ + requiredApprovingReviewCount?: Maybe; + /** List of required deployment environments that must be deployed successfully to update matching branches */ + requiredDeploymentEnvironments?: Maybe< + Array> + >; + /** List of required status check contexts that must pass for commits to be accepted to matching branches. */ + requiredStatusCheckContexts?: Maybe< + Array> + >; + /** List of required status checks that must pass for commits to be accepted to matching branches. */ + requiredStatusChecks?: Maybe>; + /** Are approving reviews required to update matching branches. */ + requiresApprovingReviews: Scalars["Boolean"]["output"]; + /** Are reviews from code owners required to update matching branches. */ + requiresCodeOwnerReviews: Scalars["Boolean"]["output"]; + /** Are commits required to be signed. */ + requiresCommitSignatures: Scalars["Boolean"]["output"]; + /** Are conversations required to be resolved before merging. */ + requiresConversationResolution: Scalars["Boolean"]["output"]; + /** Does this branch require deployment to specific environments before merging */ + requiresDeployments: Scalars["Boolean"]["output"]; + /** Are merge commits prohibited from being pushed to this branch. */ + requiresLinearHistory: Scalars["Boolean"]["output"]; + /** Are status checks required to update matching branches. */ + requiresStatusChecks: Scalars["Boolean"]["output"]; + /** Are branches required to be up to date before merging. */ + requiresStrictStatusChecks: Scalars["Boolean"]["output"]; + /** Is pushing to matching branches restricted. */ + restrictsPushes: Scalars["Boolean"]["output"]; + /** Is dismissal of pull request reviews restricted. */ + restrictsReviewDismissals: Scalars["Boolean"]["output"]; + /** A list review dismissal allowances for this branch protection rule. */ + reviewDismissalAllowances: ReviewDismissalAllowanceConnection; +}; + +/** A branch protection rule. */ +export type BranchProtectionRuleBranchProtectionRuleConflictsArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; +}; + +/** A branch protection rule. */ +export type BranchProtectionRuleBypassForcePushAllowancesArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; +}; + +/** A branch protection rule. */ +export type BranchProtectionRuleBypassPullRequestAllowancesArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; +}; + +/** A branch protection rule. */ +export type BranchProtectionRuleMatchingRefsArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; + query?: InputMaybe; +}; + +/** A branch protection rule. */ +export type BranchProtectionRulePushAllowancesArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; +}; + +/** A branch protection rule. */ +export type BranchProtectionRuleReviewDismissalAllowancesArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; +}; + +/** A conflict between two branch protection rules. */ +export type BranchProtectionRuleConflict = { + __typename?: "BranchProtectionRuleConflict"; + /** Identifies the branch protection rule. */ + branchProtectionRule?: Maybe; + /** Identifies the conflicting branch protection rule. */ + conflictingBranchProtectionRule?: Maybe; + /** Identifies the branch ref that has conflicting rules */ + ref?: Maybe; +}; + +/** The connection type for BranchProtectionRuleConflict. */ +export type BranchProtectionRuleConflictConnection = { + __typename?: "BranchProtectionRuleConflictConnection"; + /** A list of edges. */ + edges?: Maybe>>; + /** A list of nodes. */ + nodes?: Maybe>>; + /** Information to aid in pagination. */ + pageInfo: PageInfo; + /** Identifies the total count of items in the connection. */ + totalCount: Scalars["Int"]["output"]; +}; + +/** An edge in a connection. */ +export type BranchProtectionRuleConflictEdge = { + __typename?: "BranchProtectionRuleConflictEdge"; + /** A cursor for use in pagination. */ + cursor: Scalars["String"]["output"]; + /** The item at the end of the edge. */ + node?: Maybe; +}; + +/** The connection type for BranchProtectionRule. */ +export type BranchProtectionRuleConnection = { + __typename?: "BranchProtectionRuleConnection"; + /** A list of edges. */ + edges?: Maybe>>; + /** A list of nodes. */ + nodes?: Maybe>>; + /** Information to aid in pagination. */ + pageInfo: PageInfo; + /** Identifies the total count of items in the connection. */ + totalCount: Scalars["Int"]["output"]; +}; + +/** An edge in a connection. */ +export type BranchProtectionRuleEdge = { + __typename?: "BranchProtectionRuleEdge"; + /** A cursor for use in pagination. */ + cursor: Scalars["String"]["output"]; + /** The item at the end of the edge. */ + node?: Maybe; +}; + +/** + * Information about a sponsorship to make for a user or organization with a GitHub + * Sponsors profile, as part of sponsoring many users or organizations at once. + */ +export type BulkSponsorship = { + /** The amount to pay to the sponsorable in US dollars. Valid values: 1-12000. */ + amount: Scalars["Int"]["input"]; + /** The ID of the user or organization who is receiving the sponsorship. Required if sponsorableLogin is not given. */ + sponsorableId?: InputMaybe; + /** The username of the user or organization who is receiving the sponsorship. Required if sponsorableId is not given. */ + sponsorableLogin?: InputMaybe; +}; + +/** Types that can represent a repository ruleset bypass actor. */ +export type BypassActor = App | Team; + +/** A user, team, or app who has the ability to bypass a force push requirement on a protected branch. */ +export type BypassForcePushAllowance = Node & { + __typename?: "BypassForcePushAllowance"; + /** The actor that can force push. */ + actor?: Maybe; + /** Identifies the branch protection rule associated with the allowed user, team, or app. */ + branchProtectionRule?: Maybe; + /** The Node ID of the BypassForcePushAllowance object */ + id: Scalars["ID"]["output"]; +}; + +/** The connection type for BypassForcePushAllowance. */ +export type BypassForcePushAllowanceConnection = { + __typename?: "BypassForcePushAllowanceConnection"; + /** A list of edges. */ + edges?: Maybe>>; + /** A list of nodes. */ + nodes?: Maybe>>; + /** Information to aid in pagination. */ + pageInfo: PageInfo; + /** Identifies the total count of items in the connection. */ + totalCount: Scalars["Int"]["output"]; +}; + +/** An edge in a connection. */ +export type BypassForcePushAllowanceEdge = { + __typename?: "BypassForcePushAllowanceEdge"; + /** A cursor for use in pagination. */ + cursor: Scalars["String"]["output"]; + /** The item at the end of the edge. */ + node?: Maybe; +}; + +/** A user, team, or app who has the ability to bypass a pull request requirement on a protected branch. */ +export type BypassPullRequestAllowance = Node & { + __typename?: "BypassPullRequestAllowance"; + /** The actor that can bypass. */ + actor?: Maybe; + /** Identifies the branch protection rule associated with the allowed user, team, or app. */ + branchProtectionRule?: Maybe; + /** The Node ID of the BypassPullRequestAllowance object */ + id: Scalars["ID"]["output"]; +}; + +/** The connection type for BypassPullRequestAllowance. */ +export type BypassPullRequestAllowanceConnection = { + __typename?: "BypassPullRequestAllowanceConnection"; + /** A list of edges. */ + edges?: Maybe>>; + /** A list of nodes. */ + nodes?: Maybe>>; + /** Information to aid in pagination. */ + pageInfo: PageInfo; + /** Identifies the total count of items in the connection. */ + totalCount: Scalars["Int"]["output"]; +}; + +/** An edge in a connection. */ +export type BypassPullRequestAllowanceEdge = { + __typename?: "BypassPullRequestAllowanceEdge"; + /** A cursor for use in pagination. */ + cursor: Scalars["String"]["output"]; + /** The item at the end of the edge. */ + node?: Maybe; +}; + +/** The Common Vulnerability Scoring System */ +export type Cvss = { + __typename?: "CVSS"; + /** The CVSS score associated with this advisory */ + score: Scalars["Float"]["output"]; + /** The CVSS vector string associated with this advisory */ + vectorString?: Maybe; +}; + +/** A common weakness enumeration */ +export type Cwe = Node & { + __typename?: "CWE"; + /** The id of the CWE */ + cweId: Scalars["String"]["output"]; + /** A detailed description of this CWE */ + description: Scalars["String"]["output"]; + /** The Node ID of the CWE object */ + id: Scalars["ID"]["output"]; + /** The name of this CWE */ + name: Scalars["String"]["output"]; +}; + +/** The connection type for CWE. */ +export type CweConnection = { + __typename?: "CWEConnection"; + /** A list of edges. */ + edges?: Maybe>>; + /** A list of nodes. */ + nodes?: Maybe>>; + /** Information to aid in pagination. */ + pageInfo: PageInfo; + /** Identifies the total count of items in the connection. */ + totalCount: Scalars["Int"]["output"]; +}; + +/** An edge in a connection. */ +export type CweEdge = { + __typename?: "CWEEdge"; + /** A cursor for use in pagination. */ + cursor: Scalars["String"]["output"]; + /** The item at the end of the edge. */ + node?: Maybe; +}; + +/** Autogenerated input type of CancelEnterpriseAdminInvitation */ +export type CancelEnterpriseAdminInvitationInput = { + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: InputMaybe; + /** The Node ID of the pending enterprise administrator invitation. */ + invitationId: Scalars["ID"]["input"]; +}; + +/** Autogenerated return type of CancelEnterpriseAdminInvitation. */ +export type CancelEnterpriseAdminInvitationPayload = { + __typename?: "CancelEnterpriseAdminInvitationPayload"; + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: Maybe; + /** The invitation that was canceled. */ + invitation?: Maybe; + /** A message confirming the result of canceling an administrator invitation. */ + message?: Maybe; +}; + +/** Autogenerated input type of CancelEnterpriseMemberInvitation */ +export type CancelEnterpriseMemberInvitationInput = { + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: InputMaybe; + /** The Node ID of the pending enterprise member invitation. */ + invitationId: Scalars["ID"]["input"]; +}; + +/** Autogenerated return type of CancelEnterpriseMemberInvitation. */ +export type CancelEnterpriseMemberInvitationPayload = { + __typename?: "CancelEnterpriseMemberInvitationPayload"; + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: Maybe; + /** The invitation that was canceled. */ + invitation?: Maybe; + /** A message confirming the result of canceling an member invitation. */ + message?: Maybe; +}; + +/** Autogenerated input type of CancelSponsorship */ +export type CancelSponsorshipInput = { + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: InputMaybe; + /** + * The ID of the user or organization who is acting as the sponsor, paying for + * the sponsorship. Required if sponsorLogin is not given. + */ + sponsorId?: InputMaybe; + /** + * The username of the user or organization who is acting as the sponsor, paying + * for the sponsorship. Required if sponsorId is not given. + */ + sponsorLogin?: InputMaybe; + /** The ID of the user or organization who is receiving the sponsorship. Required if sponsorableLogin is not given. */ + sponsorableId?: InputMaybe; + /** The username of the user or organization who is receiving the sponsorship. Required if sponsorableId is not given. */ + sponsorableLogin?: InputMaybe; +}; + +/** Autogenerated return type of CancelSponsorship. */ +export type CancelSponsorshipPayload = { + __typename?: "CancelSponsorshipPayload"; + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: Maybe; + /** The tier that was being used at the time of cancellation. */ + sponsorsTier?: Maybe; +}; + +/** Autogenerated input type of ChangeUserStatus */ +export type ChangeUserStatusInput = { + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: InputMaybe; + /** The emoji to represent your status. Can either be a native Unicode emoji or an emoji name with colons, e.g., :grinning:. */ + emoji?: InputMaybe; + /** If set, the user status will not be shown after this date. */ + expiresAt?: InputMaybe; + /** Whether this status should indicate you are not fully available on GitHub, e.g., you are away. */ + limitedAvailability?: InputMaybe; + /** A short description of your current status. */ + message?: InputMaybe; + /** + * The ID of the organization whose members will be allowed to see the status. If + * omitted, the status will be publicly visible. + */ + organizationId?: InputMaybe; +}; + +/** Autogenerated return type of ChangeUserStatus. */ +export type ChangeUserStatusPayload = { + __typename?: "ChangeUserStatusPayload"; + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: Maybe; + /** Your updated status. */ + status?: Maybe; +}; + +/** A single check annotation. */ +export type CheckAnnotation = { + __typename?: "CheckAnnotation"; + /** The annotation's severity level. */ + annotationLevel?: Maybe; + /** The path to the file that this annotation was made on. */ + blobUrl: Scalars["URI"]["output"]; + /** Identifies the primary key from the database. */ + databaseId?: Maybe; + /** The position of this annotation. */ + location: CheckAnnotationSpan; + /** The annotation's message. */ + message: Scalars["String"]["output"]; + /** The path that this annotation was made on. */ + path: Scalars["String"]["output"]; + /** Additional information about the annotation. */ + rawDetails?: Maybe; + /** The annotation's title */ + title?: Maybe; +}; + +/** The connection type for CheckAnnotation. */ +export type CheckAnnotationConnection = { + __typename?: "CheckAnnotationConnection"; + /** A list of edges. */ + edges?: Maybe>>; + /** A list of nodes. */ + nodes?: Maybe>>; + /** Information to aid in pagination. */ + pageInfo: PageInfo; + /** Identifies the total count of items in the connection. */ + totalCount: Scalars["Int"]["output"]; +}; + +/** Information from a check run analysis to specific lines of code. */ +export type 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: Scalars["String"]["input"]; + /** The path of the file to add an annotation to. */ + path: Scalars["String"]["input"]; + /** Details about this annotation. */ + rawDetails?: InputMaybe; + /** The title that represents the annotation. */ + title?: InputMaybe; +}; + +/** An edge in a connection. */ +export type CheckAnnotationEdge = { + __typename?: "CheckAnnotationEdge"; + /** A cursor for use in pagination. */ + cursor: Scalars["String"]["output"]; + /** The item at the end of the edge. */ + node?: Maybe; +}; + +/** Represents an annotation's information level. */ +export enum CheckAnnotationLevel { + /** An annotation indicating an inescapable error. */ + Failure = "FAILURE", + /** An annotation indicating some information. */ + Notice = "NOTICE", + /** An annotation indicating an ignorable error. */ + Warning = "WARNING", +} + +/** A character position in a check annotation. */ +export type CheckAnnotationPosition = { + __typename?: "CheckAnnotationPosition"; + /** Column number (1 indexed). */ + column?: Maybe; + /** Line number (1 indexed). */ + line: Scalars["Int"]["output"]; +}; + +/** Information from a check run analysis to specific lines of code. */ +export type CheckAnnotationRange = { + /** The ending column of the range. */ + endColumn?: InputMaybe; + /** The ending line of the range. */ + endLine: Scalars["Int"]["input"]; + /** The starting column of the range. */ + startColumn?: InputMaybe; + /** The starting line of the range. */ + startLine: Scalars["Int"]["input"]; +}; + +/** An inclusive pair of positions for a check annotation. */ +export type CheckAnnotationSpan = { + __typename?: "CheckAnnotationSpan"; + /** End position (inclusive). */ + end: CheckAnnotationPosition; + /** Start position (inclusive). */ + start: CheckAnnotationPosition; +}; + +/** The possible states for a check suite or run conclusion. */ +export enum CheckConclusionState { + /** The check suite or run requires action. */ + ActionRequired = "ACTION_REQUIRED", + /** The check suite or run has been cancelled. */ + Cancelled = "CANCELLED", + /** The check suite or run has failed. */ + Failure = "FAILURE", + /** The check suite or run was neutral. */ + Neutral = "NEUTRAL", + /** The check suite or run was skipped. */ + Skipped = "SKIPPED", + /** The check suite or run was marked stale by GitHub. Only GitHub can use this conclusion. */ + Stale = "STALE", + /** The check suite or run has failed at startup. */ + StartupFailure = "STARTUP_FAILURE", + /** The check suite or run has succeeded. */ + Success = "SUCCESS", + /** The check suite or run has timed out. */ + TimedOut = "TIMED_OUT", +} + +/** A check run. */ +export type CheckRun = Node & + RequirableByPullRequest & + UniformResourceLocatable & { + __typename?: "CheckRun"; + /** The check run's annotations */ + annotations?: Maybe; + /** The check suite that this run is a part of. */ + checkSuite: CheckSuite; + /** Identifies the date and time when the check run was completed. */ + completedAt?: Maybe; + /** The conclusion of the check run. */ + conclusion?: Maybe; + /** Identifies the primary key from the database. */ + databaseId?: Maybe; + /** The corresponding deployment for this job, if any */ + deployment?: Maybe; + /** The URL from which to find full details of the check run on the integrator's site. */ + detailsUrl?: Maybe; + /** A reference for the check run on the integrator's system. */ + externalId?: Maybe; + /** The Node ID of the CheckRun object */ + id: Scalars["ID"]["output"]; + /** Whether this is required to pass before merging for a specific pull request. */ + isRequired: Scalars["Boolean"]["output"]; + /** The name of the check for this check run. */ + name: Scalars["String"]["output"]; + /** Information about a pending deployment, if any, in this check run */ + pendingDeploymentRequest?: Maybe; + /** The permalink to the check run summary. */ + permalink: Scalars["URI"]["output"]; + /** The repository associated with this check run. */ + repository: Repository; + /** The HTTP path for this check run. */ + resourcePath: Scalars["URI"]["output"]; + /** Identifies the date and time when the check run was started. */ + startedAt?: Maybe; + /** The current status of the check run. */ + status: CheckStatusState; + /** The check run's steps */ + steps?: Maybe; + /** A string representing the check run's summary */ + summary?: Maybe; + /** A string representing the check run's text */ + text?: Maybe; + /** A string representing the check run */ + title?: Maybe; + /** The HTTP URL for this check run. */ + url: Scalars["URI"]["output"]; + }; + +/** A check run. */ +export type CheckRunAnnotationsArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; +}; + +/** A check run. */ +export type CheckRunIsRequiredArgs = { + pullRequestId?: InputMaybe; + pullRequestNumber?: InputMaybe; +}; + +/** A check run. */ +export type CheckRunStepsArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; + number?: InputMaybe; +}; + +/** Possible further actions the integrator can perform. */ +export type CheckRunAction = { + /** A short explanation of what this action would do. */ + description: Scalars["String"]["input"]; + /** A reference for the action on the integrator's system. */ + identifier: Scalars["String"]["input"]; + /** The text to be displayed on a button in the web UI. */ + label: Scalars["String"]["input"]; +}; + +/** The connection type for CheckRun. */ +export type CheckRunConnection = { + __typename?: "CheckRunConnection"; + /** A list of edges. */ + edges?: Maybe>>; + /** A list of nodes. */ + nodes?: Maybe>>; + /** Information to aid in pagination. */ + pageInfo: PageInfo; + /** Identifies the total count of items in the connection. */ + totalCount: Scalars["Int"]["output"]; +}; + +/** An edge in a connection. */ +export type CheckRunEdge = { + __typename?: "CheckRunEdge"; + /** A cursor for use in pagination. */ + cursor: Scalars["String"]["output"]; + /** The item at the end of the edge. */ + node?: Maybe; +}; + +/** The filters that are available when fetching check runs. */ +export type CheckRunFilter = { + /** Filters the check runs created by this application ID. */ + appId?: InputMaybe; + /** Filters the check runs by this name. */ + checkName?: InputMaybe; + /** Filters the check runs by this type. */ + checkType?: InputMaybe; + /** Filters the check runs by these conclusions. */ + conclusions?: InputMaybe>; + /** Filters the check runs by this status. Superceded by statuses. */ + status?: InputMaybe; + /** Filters the check runs by this status. Overrides status. */ + statuses?: InputMaybe>; +}; + +/** Descriptive details about the check run. */ +export type CheckRunOutput = { + /** The annotations that are made as part of the check run. */ + annotations?: InputMaybe>; + /** Images attached to the check run output displayed in the GitHub pull request UI. */ + images?: InputMaybe>; + /** The summary of the check run (supports Commonmark). */ + summary: Scalars["String"]["input"]; + /** The details of the check run (supports Commonmark). */ + text?: InputMaybe; + /** A title to provide for this check run. */ + title: Scalars["String"]["input"]; +}; + +/** Images attached to the check run output displayed in the GitHub pull request UI. */ +export type CheckRunOutputImage = { + /** The alternative text for the image. */ + alt: Scalars["String"]["input"]; + /** A short image description. */ + caption?: InputMaybe; + /** The full URL of the image. */ + imageUrl: Scalars["URI"]["input"]; +}; + +/** The possible states of a check run in a status rollup. */ +export enum CheckRunState { + /** The check run requires action. */ + ActionRequired = "ACTION_REQUIRED", + /** The check run has been cancelled. */ + Cancelled = "CANCELLED", + /** The check run has been completed. */ + Completed = "COMPLETED", + /** The check run has failed. */ + Failure = "FAILURE", + /** The check run is in progress. */ + InProgress = "IN_PROGRESS", + /** The check run was neutral. */ + Neutral = "NEUTRAL", + /** The check run is in pending state. */ + Pending = "PENDING", + /** The check run has been queued. */ + Queued = "QUEUED", + /** The check run was skipped. */ + Skipped = "SKIPPED", + /** The check run was marked stale by GitHub. Only GitHub can use this conclusion. */ + Stale = "STALE", + /** The check run has failed at startup. */ + StartupFailure = "STARTUP_FAILURE", + /** The check run has succeeded. */ + Success = "SUCCESS", + /** The check run has timed out. */ + TimedOut = "TIMED_OUT", + /** The check run is in waiting state. */ + Waiting = "WAITING", +} + +/** Represents a count of the state of a check run. */ +export type CheckRunStateCount = { + __typename?: "CheckRunStateCount"; + /** The number of check runs with this state. */ + count: Scalars["Int"]["output"]; + /** The state of a check run. */ + state: CheckRunState; +}; + +/** The possible types of check runs. */ +export enum CheckRunType { + /** Every check run available. */ + All = "ALL", + /** The latest check run. */ + Latest = "LATEST", +} + +/** The possible states for a check suite or run status. */ +export enum CheckStatusState { + /** The check suite or run has been completed. */ + Completed = "COMPLETED", + /** The check suite or run is in progress. */ + InProgress = "IN_PROGRESS", + /** The check suite or run is in pending state. */ + Pending = "PENDING", + /** The check suite or run has been queued. */ + Queued = "QUEUED", + /** The check suite or run has been requested. */ + Requested = "REQUESTED", + /** The check suite or run is in waiting state. */ + Waiting = "WAITING", +} + +/** A single check step. */ +export type CheckStep = { + __typename?: "CheckStep"; + /** Identifies the date and time when the check step was completed. */ + completedAt?: Maybe; + /** The conclusion of the check step. */ + conclusion?: Maybe; + /** A reference for the check step on the integrator's system. */ + externalId?: Maybe; + /** The step's name. */ + name: Scalars["String"]["output"]; + /** The index of the step in the list of steps of the parent check run. */ + number: Scalars["Int"]["output"]; + /** Number of seconds to completion. */ + secondsToCompletion?: Maybe; + /** Identifies the date and time when the check step was started. */ + startedAt?: Maybe; + /** The current status of the check step. */ + status: CheckStatusState; +}; + +/** The connection type for CheckStep. */ +export type CheckStepConnection = { + __typename?: "CheckStepConnection"; + /** A list of edges. */ + edges?: Maybe>>; + /** A list of nodes. */ + nodes?: Maybe>>; + /** Information to aid in pagination. */ + pageInfo: PageInfo; + /** Identifies the total count of items in the connection. */ + totalCount: Scalars["Int"]["output"]; +}; + +/** An edge in a connection. */ +export type CheckStepEdge = { + __typename?: "CheckStepEdge"; + /** A cursor for use in pagination. */ + cursor: Scalars["String"]["output"]; + /** The item at the end of the edge. */ + node?: Maybe; +}; + +/** A check suite. */ +export type CheckSuite = Node & { + __typename?: "CheckSuite"; + /** The GitHub App which created this check suite. */ + app?: Maybe; + /** The name of the branch for this check suite. */ + branch?: Maybe; + /** The check runs associated with a check suite. */ + checkRuns?: Maybe; + /** The commit for this check suite */ + commit: Commit; + /** The conclusion of this check suite. */ + conclusion?: Maybe; + /** Identifies the date and time when the object was created. */ + createdAt: Scalars["DateTime"]["output"]; + /** The user who triggered the check suite. */ + creator?: Maybe; + /** Identifies the primary key from the database. */ + databaseId?: Maybe; + /** The Node ID of the CheckSuite object */ + id: Scalars["ID"]["output"]; + /** A list of open pull requests matching the check suite. */ + matchingPullRequests?: Maybe; + /** The push that triggered this check suite. */ + push?: Maybe; + /** The repository associated with this check suite. */ + repository: Repository; + /** The HTTP path for this check suite */ + resourcePath: Scalars["URI"]["output"]; + /** The status of this check suite. */ + status: CheckStatusState; + /** Identifies the date and time when the object was last updated. */ + updatedAt: Scalars["DateTime"]["output"]; + /** The HTTP URL for this check suite */ + url: Scalars["URI"]["output"]; + /** The workflow run associated with this check suite. */ + workflowRun?: Maybe; +}; + +/** A check suite. */ +export type CheckSuiteCheckRunsArgs = { + after?: InputMaybe; + before?: InputMaybe; + filterBy?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; +}; + +/** A check suite. */ +export type CheckSuiteMatchingPullRequestsArgs = { + after?: InputMaybe; + baseRefName?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + headRefName?: InputMaybe; + labels?: InputMaybe>; + last?: InputMaybe; + orderBy?: InputMaybe; + states?: InputMaybe>; +}; + +/** The auto-trigger preferences that are available for check suites. */ +export type CheckSuiteAutoTriggerPreference = { + /** The node ID of the application that owns the check suite. */ + appId: Scalars["ID"]["input"]; + /** Set to `true` to enable automatic creation of CheckSuite events upon pushes to the repository. */ + setting: Scalars["Boolean"]["input"]; +}; + +/** The connection type for CheckSuite. */ +export type CheckSuiteConnection = { + __typename?: "CheckSuiteConnection"; + /** A list of edges. */ + edges?: Maybe>>; + /** A list of nodes. */ + nodes?: Maybe>>; + /** Information to aid in pagination. */ + pageInfo: PageInfo; + /** Identifies the total count of items in the connection. */ + totalCount: Scalars["Int"]["output"]; +}; + +/** An edge in a connection. */ +export type CheckSuiteEdge = { + __typename?: "CheckSuiteEdge"; + /** A cursor for use in pagination. */ + cursor: Scalars["String"]["output"]; + /** The item at the end of the edge. */ + node?: Maybe; +}; + +/** The filters that are available when fetching check suites. */ +export type CheckSuiteFilter = { + /** Filters the check suites created by this application ID. */ + appId?: InputMaybe; + /** Filters the check suites by this name. */ + checkName?: InputMaybe; +}; + +/** An object which can have its data claimed or claim data from another. */ +export type Claimable = Mannequin | User; + +/** Autogenerated input type of ClearLabelsFromLabelable */ +export type ClearLabelsFromLabelableInput = { + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: InputMaybe; + /** The id of the labelable object to clear the labels from. */ + labelableId: Scalars["ID"]["input"]; +}; + +/** Autogenerated return type of ClearLabelsFromLabelable. */ +export type ClearLabelsFromLabelablePayload = { + __typename?: "ClearLabelsFromLabelablePayload"; + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: Maybe; + /** The item that was unlabeled. */ + labelable?: Maybe; +}; + +/** Autogenerated input type of ClearProjectV2ItemFieldValue */ +export type ClearProjectV2ItemFieldValueInput = { + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: InputMaybe; + /** The ID of the field to be cleared. */ + fieldId: Scalars["ID"]["input"]; + /** The ID of the item to be cleared. */ + itemId: Scalars["ID"]["input"]; + /** The ID of the Project. */ + projectId: Scalars["ID"]["input"]; +}; + +/** Autogenerated return type of ClearProjectV2ItemFieldValue. */ +export type ClearProjectV2ItemFieldValuePayload = { + __typename?: "ClearProjectV2ItemFieldValuePayload"; + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: Maybe; + /** The updated item. */ + projectV2Item?: Maybe; +}; + +/** Autogenerated input type of CloneProject */ +export type CloneProjectInput = { + /** The description of the project. */ + body?: InputMaybe; + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: InputMaybe; + /** Whether or not to clone the source project's workflows. */ + includeWorkflows: Scalars["Boolean"]["input"]; + /** The name of the project. */ + name: Scalars["String"]["input"]; + /** The visibility of the project, defaults to false (private). */ + public?: InputMaybe; + /** The source project to clone. */ + sourceId: Scalars["ID"]["input"]; + /** The owner ID to create the project under. */ + targetOwnerId: Scalars["ID"]["input"]; +}; + +/** Autogenerated return type of CloneProject. */ +export type CloneProjectPayload = { + __typename?: "CloneProjectPayload"; + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: Maybe; + /** The id of the JobStatus for populating cloned fields. */ + jobStatusId?: Maybe; + /** The new cloned project. */ + project?: Maybe; +}; + +/** Autogenerated input type of CloneTemplateRepository */ +export type CloneTemplateRepositoryInput = { + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: InputMaybe; + /** A short description of the new repository. */ + description?: InputMaybe; + /** + * Whether to copy all branches from the template to the new repository. Defaults + * to copying only the default branch of the template. + */ + includeAllBranches?: InputMaybe; + /** The name of the new repository. */ + name: Scalars["String"]["input"]; + /** The ID of the owner for the new repository. */ + ownerId: Scalars["ID"]["input"]; + /** The Node ID of the template repository. */ + repositoryId: Scalars["ID"]["input"]; + /** Indicates the repository's visibility level. */ + visibility: RepositoryVisibility; +}; + +/** Autogenerated return type of CloneTemplateRepository. */ +export type CloneTemplateRepositoryPayload = { + __typename?: "CloneTemplateRepositoryPayload"; + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: Maybe; + /** The new repository. */ + repository?: Maybe; +}; + +/** An object that can be closed */ +export type Closable = { + /** Indicates if the object is closed (definition of closed may depend on type) */ + closed: Scalars["Boolean"]["output"]; + /** Identifies the date and time when the object was closed. */ + closedAt?: Maybe; + /** Indicates if the object can be closed by the viewer. */ + viewerCanClose: Scalars["Boolean"]["output"]; + /** Indicates if the object can be reopened by the viewer. */ + viewerCanReopen: Scalars["Boolean"]["output"]; +}; + +/** Autogenerated input type of CloseDiscussion */ +export type CloseDiscussionInput = { + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: InputMaybe; + /** ID of the discussion to be closed. */ + discussionId: Scalars["ID"]["input"]; + /** The reason why the discussion is being closed. */ + reason?: InputMaybe; +}; + +/** Autogenerated return type of CloseDiscussion. */ +export type CloseDiscussionPayload = { + __typename?: "CloseDiscussionPayload"; + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: Maybe; + /** The discussion that was closed. */ + discussion?: Maybe; +}; + +/** Autogenerated input type of CloseIssue */ +export type CloseIssueInput = { + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: InputMaybe; + /** ID of the issue to be closed. */ + issueId: Scalars["ID"]["input"]; + /** The reason the issue is to be closed. */ + stateReason?: InputMaybe; +}; + +/** Autogenerated return type of CloseIssue. */ +export type CloseIssuePayload = { + __typename?: "CloseIssuePayload"; + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: Maybe; + /** The issue that was closed. */ + issue?: Maybe; +}; + +/** Autogenerated input type of ClosePullRequest */ +export type ClosePullRequestInput = { + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: InputMaybe; + /** ID of the pull request to be closed. */ + pullRequestId: Scalars["ID"]["input"]; +}; + +/** Autogenerated return type of ClosePullRequest. */ +export type ClosePullRequestPayload = { + __typename?: "ClosePullRequestPayload"; + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: Maybe; + /** The pull request that was closed. */ + pullRequest?: Maybe; +}; + +/** Represents a 'closed' event on any `Closable`. */ +export type ClosedEvent = Node & + UniformResourceLocatable & { + __typename?: "ClosedEvent"; + /** Identifies the actor who performed the event. */ + actor?: Maybe; + /** Object that was closed. */ + closable: Closable; + /** Object which triggered the creation of this event. */ + closer?: Maybe; + /** Identifies the date and time when the object was created. */ + createdAt: Scalars["DateTime"]["output"]; + /** The Node ID of the ClosedEvent object */ + id: Scalars["ID"]["output"]; + /** The HTTP path for this closed event. */ + resourcePath: Scalars["URI"]["output"]; + /** The reason the issue state was changed to closed. */ + stateReason?: Maybe; + /** The HTTP URL for this closed event. */ + url: Scalars["URI"]["output"]; + }; + +/** The object which triggered a `ClosedEvent`. */ +export type Closer = Commit | ProjectV2 | PullRequest; + +/** The Code of Conduct for a repository */ +export type CodeOfConduct = Node & { + __typename?: "CodeOfConduct"; + /** The body of the Code of Conduct */ + body?: Maybe; + /** The Node ID of the CodeOfConduct object */ + id: Scalars["ID"]["output"]; + /** The key for the Code of Conduct */ + key: Scalars["String"]["output"]; + /** The formal name of the Code of Conduct */ + name: Scalars["String"]["output"]; + /** The HTTP path for this Code of Conduct */ + resourcePath?: Maybe; + /** The HTTP URL for this Code of Conduct */ + url?: Maybe; +}; + +/** + * Choose which tools must provide code scanning results before the reference is + * updated. When configured, code scanning must be enabled and have results for + * both the commit and the reference being updated. + */ +export type CodeScanningParameters = { + __typename?: "CodeScanningParameters"; + /** Tools that must provide code scanning results for this rule to pass. */ + codeScanningTools: Array; +}; + +/** + * Choose which tools must provide code scanning results before the reference is + * updated. When configured, code scanning must be enabled and have results for + * both the commit and the reference being updated. + */ +export type CodeScanningParametersInput = { + /** Tools that must provide code scanning results for this rule to pass. */ + codeScanningTools: Array; +}; + +/** A tool that must provide code scanning results for this rule to pass. */ +export type CodeScanningTool = { + __typename?: "CodeScanningTool"; + /** + * The severity level at which code scanning results that raise alerts block a + * reference update. For more information on alert severity levels, see... + */ + alertsThreshold: Scalars["String"]["output"]; + /** + * The severity level at which code scanning results that raise security alerts + * block a reference update. For more information on security severity levels, + * see... + */ + securityAlertsThreshold: Scalars["String"]["output"]; + /** The name of a code scanning tool */ + tool: Scalars["String"]["output"]; +}; + +/** A tool that must provide code scanning results for this rule to pass. */ +export type CodeScanningToolInput = { + /** + * The severity level at which code scanning results that raise alerts block a + * reference update. For more information on alert severity levels, see... + */ + alertsThreshold: Scalars["String"]["input"]; + /** + * The severity level at which code scanning results that raise security alerts + * block a reference update. For more information on security severity levels, + * see... + */ + securityAlertsThreshold: Scalars["String"]["input"]; + /** The name of a code scanning tool */ + tool: Scalars["String"]["input"]; +}; + +/** Collaborators affiliation level with a subject. */ +export enum CollaboratorAffiliation { + /** All collaborators the authenticated user can see. */ + All = "ALL", + /** All collaborators with permissions to an organization-owned subject, regardless of organization membership status. */ + Direct = "DIRECT", + /** All outside collaborators of an organization-owned subject. */ + Outside = "OUTSIDE", +} + +/** Represents a comment. */ +export type Comment = { + /** The actor who authored the comment. */ + author?: Maybe; + /** Author's association with the subject of the comment. */ + authorAssociation: CommentAuthorAssociation; + /** The body as Markdown. */ + body: Scalars["String"]["output"]; + /** The body rendered to HTML. */ + bodyHTML: Scalars["HTML"]["output"]; + /** The body rendered to text. */ + bodyText: Scalars["String"]["output"]; + /** Identifies the date and time when the object was created. */ + createdAt: Scalars["DateTime"]["output"]; + /** Check if this comment was created via an email reply. */ + createdViaEmail: Scalars["Boolean"]["output"]; + /** The actor who edited the comment. */ + editor?: Maybe; + /** The Node ID of the Comment object */ + id: Scalars["ID"]["output"]; + /** Check if this comment was edited and includes an edit with the creation data */ + includesCreatedEdit: Scalars["Boolean"]["output"]; + /** The moment the editor made the last edit */ + lastEditedAt?: Maybe; + /** Identifies when the comment was published at. */ + publishedAt?: Maybe; + /** Identifies the date and time when the object was last updated. */ + updatedAt: Scalars["DateTime"]["output"]; + /** A list of edits to this content. */ + userContentEdits?: Maybe; + /** Did the viewer author this comment. */ + viewerDidAuthor: Scalars["Boolean"]["output"]; +}; + +/** Represents a comment. */ +export type CommentUserContentEditsArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; +}; + +/** A comment author association with repository. */ +export enum CommentAuthorAssociation { + /** Author has been invited to collaborate on the repository. */ + Collaborator = "COLLABORATOR", + /** Author has previously committed to the repository. */ + Contributor = "CONTRIBUTOR", + /** Author has not previously committed to GitHub. */ + FirstTimer = "FIRST_TIMER", + /** Author has not previously committed to the repository. */ + FirstTimeContributor = "FIRST_TIME_CONTRIBUTOR", + /** Author is a placeholder for an unclaimed user. */ + Mannequin = "MANNEQUIN", + /** Author is a member of the organization that owns the repository. */ + Member = "MEMBER", + /** Author has no association with the repository. */ + None = "NONE", + /** Author is the owner of the repository. */ + Owner = "OWNER", +} + +/** The possible errors that will prevent a user from updating a comment. */ +export enum CommentCannotUpdateReason { + /** Unable to create comment because repository is archived. */ + Archived = "ARCHIVED", + /** You cannot update this comment */ + Denied = "DENIED", + /** You must be the author or have write access to this repository to update this comment. */ + InsufficientAccess = "INSUFFICIENT_ACCESS", + /** Unable to create comment because issue is locked. */ + Locked = "LOCKED", + /** You must be logged in to update this comment. */ + LoginRequired = "LOGIN_REQUIRED", + /** Repository is under maintenance. */ + Maintenance = "MAINTENANCE", + /** At least one email address must be verified to update this comment. */ + VerifiedEmailRequired = "VERIFIED_EMAIL_REQUIRED", +} + +/** Represents a 'comment_deleted' event on a given issue or pull request. */ +export type CommentDeletedEvent = Node & { + __typename?: "CommentDeletedEvent"; + /** Identifies the actor who performed the event. */ + actor?: Maybe; + /** Identifies the date and time when the object was created. */ + createdAt: Scalars["DateTime"]["output"]; + /** Identifies the primary key from the database. */ + databaseId?: Maybe; + /** The user who authored the deleted comment. */ + deletedCommentAuthor?: Maybe; + /** The Node ID of the CommentDeletedEvent object */ + id: Scalars["ID"]["output"]; +}; + +/** Represents a Git commit. */ +export type Commit = GitObject & + Node & + Subscribable & + UniformResourceLocatable & { + __typename?: "Commit"; + /** An abbreviated version of the Git object ID */ + abbreviatedOid: Scalars["String"]["output"]; + /** The number of additions in this commit. */ + additions: Scalars["Int"]["output"]; + /** + * The merged Pull Request that introduced the commit to the repository. If the + * commit is not present in the default branch, additionally returns open Pull + * Requests associated with the commit + */ + associatedPullRequests?: Maybe; + /** Authorship details of the commit. */ + author?: Maybe; + /** Check if the committer and the author match. */ + authoredByCommitter: Scalars["Boolean"]["output"]; + /** The datetime when this commit was authored. */ + authoredDate: Scalars["DateTime"]["output"]; + /** + * 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: GitActorConnection; + /** Fetches `git blame` information. */ + blame: Blame; + /** + * We recommend using the `changedFilesIfAvailable` field instead of + * `changedFiles`, as `changedFiles` will cause your request to return an error + * if GitHub is unable to calculate the number of changed files. + * @deprecated `changedFiles` will be removed. Use `changedFilesIfAvailable` instead. Removal on 2023-01-01 UTC. + */ + changedFiles: Scalars["Int"]["output"]; + /** + * The number of changed files in this commit. If GitHub is unable to calculate + * the number of changed files (for example due to a timeout), this will return + * `null`. We recommend using this field instead of `changedFiles`. + */ + changedFilesIfAvailable?: Maybe; + /** The check suites associated with a commit. */ + checkSuites?: Maybe; + /** Comments made on the commit. */ + comments: CommitCommentConnection; + /** The HTTP path for this Git object */ + commitResourcePath: Scalars["URI"]["output"]; + /** The HTTP URL for this Git object */ + commitUrl: Scalars["URI"]["output"]; + /** The datetime when this commit was committed. */ + committedDate: Scalars["DateTime"]["output"]; + /** Check if committed via GitHub web UI. */ + committedViaWeb: Scalars["Boolean"]["output"]; + /** Committer details of the commit. */ + committer?: Maybe; + /** The number of deletions in this commit. */ + deletions: Scalars["Int"]["output"]; + /** The deployments associated with a commit. */ + deployments?: Maybe; + /** The tree entry representing the file located at the given path. */ + file?: Maybe; + /** The linear commit history starting from (and including) this commit, in the same order as `git log`. */ + history: CommitHistoryConnection; + /** The Node ID of the Commit object */ + id: Scalars["ID"]["output"]; + /** The Git commit message */ + message: Scalars["String"]["output"]; + /** The Git commit message body */ + messageBody: Scalars["String"]["output"]; + /** The commit message body rendered to HTML. */ + messageBodyHTML: Scalars["HTML"]["output"]; + /** The Git commit message headline */ + messageHeadline: Scalars["String"]["output"]; + /** The commit message headline rendered to HTML. */ + messageHeadlineHTML: Scalars["HTML"]["output"]; + /** The Git object ID */ + oid: Scalars["GitObjectID"]["output"]; + /** The organization this commit was made on behalf of. */ + onBehalfOf?: Maybe; + /** The parents of a commit. */ + parents: CommitConnection; + /** + * The datetime when this commit was pushed. + * @deprecated `pushedDate` is no longer supported. Removal on 2023-07-01 UTC. + */ + pushedDate?: Maybe; + /** The Repository this commit belongs to */ + repository: Repository; + /** The HTTP path for this commit */ + resourcePath: Scalars["URI"]["output"]; + /** Commit signing information, if present. */ + signature?: Maybe; + /** Status information for this commit */ + status?: Maybe; + /** Check and Status rollup information for this commit. */ + statusCheckRollup?: Maybe; + /** Returns a list of all submodules in this repository as of this Commit parsed from the .gitmodules file. */ + submodules: 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: Scalars["URI"]["output"]; + /** Commit's root Tree */ + tree: Tree; + /** The HTTP path for the tree of this commit */ + treeResourcePath: Scalars["URI"]["output"]; + /** The HTTP URL for the tree of this commit */ + treeUrl: Scalars["URI"]["output"]; + /** The HTTP URL for this commit */ + url: Scalars["URI"]["output"]; + /** Check if the viewer is able to change their subscription status for the repository. */ + viewerCanSubscribe: Scalars["Boolean"]["output"]; + /** Identifies if the viewer is watching, not watching, or ignoring the subscribable entity. */ + viewerSubscription?: Maybe; + /** + * 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: Scalars["URI"]["output"]; + }; + +/** Represents a Git commit. */ +export type CommitAssociatedPullRequestsArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; + orderBy?: InputMaybe; +}; + +/** Represents a Git commit. */ +export type CommitAuthorsArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; +}; + +/** Represents a Git commit. */ +export type CommitBlameArgs = { + path: Scalars["String"]["input"]; +}; + +/** Represents a Git commit. */ +export type CommitCheckSuitesArgs = { + after?: InputMaybe; + before?: InputMaybe; + filterBy?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; +}; + +/** Represents a Git commit. */ +export type CommitCommentsArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; +}; + +/** Represents a Git commit. */ +export type CommitDeploymentsArgs = { + after?: InputMaybe; + before?: InputMaybe; + environments?: InputMaybe>; + first?: InputMaybe; + last?: InputMaybe; + orderBy?: InputMaybe; +}; + +/** Represents a Git commit. */ +export type CommitFileArgs = { + path: Scalars["String"]["input"]; +}; + +/** Represents a Git commit. */ +export type CommitHistoryArgs = { + after?: InputMaybe; + author?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; + path?: InputMaybe; + since?: InputMaybe; + until?: InputMaybe; +}; + +/** Represents a Git commit. */ +export type CommitParentsArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; +}; + +/** Represents a Git commit. */ +export type CommitSubmodulesArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; +}; + +/** Specifies an author for filtering Git commits. */ +export type CommitAuthor = { + /** Email addresses to filter by. Commits authored by any of the specified email addresses will be returned. */ + emails?: InputMaybe>; + /** + * 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?: InputMaybe; +}; + +/** Parameters to be used for the commit_author_email_pattern rule */ +export type CommitAuthorEmailPatternParameters = { + __typename?: "CommitAuthorEmailPatternParameters"; + /** How this rule will appear to users. */ + name?: Maybe; + /** If true, the rule will fail if the pattern matches. */ + negate: Scalars["Boolean"]["output"]; + /** The operator to use for matching. */ + operator: Scalars["String"]["output"]; + /** The pattern to match with. */ + pattern: Scalars["String"]["output"]; +}; + +/** Parameters to be used for the commit_author_email_pattern rule */ +export type CommitAuthorEmailPatternParametersInput = { + /** How this rule will appear to users. */ + name?: InputMaybe; + /** If true, the rule will fail if the pattern matches. */ + negate?: InputMaybe; + /** The operator to use for matching. */ + operator: Scalars["String"]["input"]; + /** The pattern to match with. */ + pattern: Scalars["String"]["input"]; +}; + +/** Represents a comment on a given Commit. */ +export type CommitComment = Comment & + Deletable & + Minimizable & + Node & + Reactable & + RepositoryNode & + Updatable & + UpdatableComment & { + __typename?: "CommitComment"; + /** The actor who authored the comment. */ + author?: Maybe; + /** Author's association with the subject of the comment. */ + authorAssociation: CommentAuthorAssociation; + /** Identifies the comment body. */ + body: Scalars["String"]["output"]; + /** The body rendered to HTML. */ + bodyHTML: Scalars["HTML"]["output"]; + /** The body rendered to text. */ + bodyText: Scalars["String"]["output"]; + /** Identifies the commit associated with the comment, if the commit exists. */ + commit?: Maybe; + /** Identifies the date and time when the object was created. */ + createdAt: Scalars["DateTime"]["output"]; + /** Check if this comment was created via an email reply. */ + createdViaEmail: Scalars["Boolean"]["output"]; + /** Identifies the primary key from the database. */ + databaseId?: Maybe; + /** The actor who edited the comment. */ + editor?: Maybe; + /** The Node ID of the CommitComment object */ + id: Scalars["ID"]["output"]; + /** Check if this comment was edited and includes an edit with the creation data */ + includesCreatedEdit: Scalars["Boolean"]["output"]; + /** Returns whether or not a comment has been minimized. */ + isMinimized: Scalars["Boolean"]["output"]; + /** The moment the editor made the last edit */ + lastEditedAt?: Maybe; + /** + * Returns why the comment was minimized. One of `abuse`, `off-topic`, + * `outdated`, `resolved`, `duplicate` and `spam`. Note that the case and + * formatting of these values differs from the inputs to the `MinimizeComment` mutation. + */ + minimizedReason?: Maybe; + /** Identifies the file path associated with the comment. */ + path?: Maybe; + /** Identifies the line position associated with the comment. */ + position?: Maybe; + /** Identifies when the comment was published at. */ + publishedAt?: Maybe; + /** A list of reactions grouped by content left on the subject. */ + reactionGroups?: Maybe>; + /** A list of Reactions left on the Issue. */ + reactions: ReactionConnection; + /** The repository associated with this node. */ + repository: Repository; + /** The HTTP path permalink for this commit comment. */ + resourcePath: Scalars["URI"]["output"]; + /** Identifies the date and time when the object was last updated. */ + updatedAt: Scalars["DateTime"]["output"]; + /** The HTTP URL permalink for this commit comment. */ + url: Scalars["URI"]["output"]; + /** A list of edits to this content. */ + userContentEdits?: Maybe; + /** Check if the current viewer can delete this object. */ + viewerCanDelete: Scalars["Boolean"]["output"]; + /** Check if the current viewer can minimize this object. */ + viewerCanMinimize: Scalars["Boolean"]["output"]; + /** Can user react to this subject */ + viewerCanReact: Scalars["Boolean"]["output"]; + /** Check if the current viewer can update this object. */ + viewerCanUpdate: Scalars["Boolean"]["output"]; + /** Reasons why the current viewer can not update this comment. */ + viewerCannotUpdateReasons: Array; + /** Did the viewer author this comment. */ + viewerDidAuthor: Scalars["Boolean"]["output"]; + }; + +/** Represents a comment on a given Commit. */ +export type CommitCommentReactionsArgs = { + after?: InputMaybe; + before?: InputMaybe; + content?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; + orderBy?: InputMaybe; +}; + +/** Represents a comment on a given Commit. */ +export type CommitCommentUserContentEditsArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; +}; + +/** The connection type for CommitComment. */ +export type CommitCommentConnection = { + __typename?: "CommitCommentConnection"; + /** A list of edges. */ + edges?: Maybe>>; + /** A list of nodes. */ + nodes?: Maybe>>; + /** Information to aid in pagination. */ + pageInfo: PageInfo; + /** Identifies the total count of items in the connection. */ + totalCount: Scalars["Int"]["output"]; +}; + +/** An edge in a connection. */ +export type CommitCommentEdge = { + __typename?: "CommitCommentEdge"; + /** A cursor for use in pagination. */ + cursor: Scalars["String"]["output"]; + /** The item at the end of the edge. */ + node?: Maybe; +}; + +/** A thread of comments on a commit. */ +export type CommitCommentThread = Node & + RepositoryNode & { + __typename?: "CommitCommentThread"; + /** The comments that exist in this thread. */ + comments: CommitCommentConnection; + /** The commit the comments were made on. */ + commit?: Maybe; + /** The Node ID of the CommitCommentThread object */ + id: Scalars["ID"]["output"]; + /** The file the comments were made on. */ + path?: Maybe; + /** The position in the diff for the commit that the comment was made on. */ + position?: Maybe; + /** The repository associated with this node. */ + repository: Repository; + }; + +/** A thread of comments on a commit. */ +export type CommitCommentThreadCommentsArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; +}; + +/** The connection type for Commit. */ +export type CommitConnection = { + __typename?: "CommitConnection"; + /** A list of edges. */ + edges?: Maybe>>; + /** A list of nodes. */ + nodes?: Maybe>>; + /** Information to aid in pagination. */ + pageInfo: PageInfo; + /** Identifies the total count of items in the connection. */ + totalCount: Scalars["Int"]["output"]; +}; + +/** Ordering options for commit contribution connections. */ +export type 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. */ +export enum CommitContributionOrderField { + /** Order commit contributions by how many commits they represent. */ + CommitCount = "COMMIT_COUNT", + /** Order commit contributions by when they were made. */ + OccurredAt = "OCCURRED_AT", +} + +/** This aggregates commits made by a user within one repository. */ +export type CommitContributionsByRepository = { + __typename?: "CommitContributionsByRepository"; + /** The commit contributions, each representing a day. */ + contributions: 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: Scalars["URI"]["output"]; + /** The HTTP URL for the user's commits to the repository in this time range. */ + url: Scalars["URI"]["output"]; +}; + +/** This aggregates commits made by a user within one repository. */ +export type CommitContributionsByRepositoryContributionsArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; + orderBy?: InputMaybe; +}; + +/** An edge in a connection. */ +export type CommitEdge = { + __typename?: "CommitEdge"; + /** A cursor for use in pagination. */ + cursor: Scalars["String"]["output"]; + /** The item at the end of the edge. */ + node?: Maybe; +}; + +/** The connection type for Commit. */ +export type CommitHistoryConnection = { + __typename?: "CommitHistoryConnection"; + /** A list of edges. */ + edges?: Maybe>>; + /** A list of nodes. */ + nodes?: Maybe>>; + /** Information to aid in pagination. */ + pageInfo: PageInfo; + /** Identifies the total count of items in the connection. */ + totalCount: Scalars["Int"]["output"]; +}; + +/** A message to include with a new commit */ +export type CommitMessage = { + /** The body of the message. */ + body?: InputMaybe; + /** The headline of the message. */ + headline: Scalars["String"]["input"]; +}; + +/** Parameters to be used for the commit_message_pattern rule */ +export type CommitMessagePatternParameters = { + __typename?: "CommitMessagePatternParameters"; + /** How this rule will appear to users. */ + name?: Maybe; + /** If true, the rule will fail if the pattern matches. */ + negate: Scalars["Boolean"]["output"]; + /** The operator to use for matching. */ + operator: Scalars["String"]["output"]; + /** The pattern to match with. */ + pattern: Scalars["String"]["output"]; +}; + +/** Parameters to be used for the commit_message_pattern rule */ +export type CommitMessagePatternParametersInput = { + /** How this rule will appear to users. */ + name?: InputMaybe; + /** If true, the rule will fail if the pattern matches. */ + negate?: InputMaybe; + /** The operator to use for matching. */ + operator: Scalars["String"]["input"]; + /** The pattern to match with. */ + pattern: Scalars["String"]["input"]; +}; + +/** + * A git ref for a commit to be appended to. + * + * The ref must be a branch, i.e. its fully qualified name must start + * with `refs/heads/` (although the input is not required to be fully + * qualified). + * + * The Ref may be specified by its global node ID or by the + * `repositoryNameWithOwner` and `branchName`. + * + * ### Examples + * + * Specify a branch using a global node ID: + * + * { "id": "MDM6UmVmMTpyZWZzL2hlYWRzL21haW4=" } + * + * Specify a branch using `repositoryNameWithOwner` and `branchName`: + * + * { + * "repositoryNameWithOwner": "github/graphql-client", + * "branchName": "main" + * } + */ +export type CommittableBranch = { + /** The unqualified name of the branch to append the commit to. */ + branchName?: InputMaybe; + /** The Node ID of the Ref to be updated. */ + id?: InputMaybe; + /** The nameWithOwner of the repository to commit to. */ + repositoryNameWithOwner?: InputMaybe; +}; + +/** Parameters to be used for the committer_email_pattern rule */ +export type CommitterEmailPatternParameters = { + __typename?: "CommitterEmailPatternParameters"; + /** How this rule will appear to users. */ + name?: Maybe; + /** If true, the rule will fail if the pattern matches. */ + negate: Scalars["Boolean"]["output"]; + /** The operator to use for matching. */ + operator: Scalars["String"]["output"]; + /** The pattern to match with. */ + pattern: Scalars["String"]["output"]; +}; + +/** Parameters to be used for the committer_email_pattern rule */ +export type CommitterEmailPatternParametersInput = { + /** How this rule will appear to users. */ + name?: InputMaybe; + /** If true, the rule will fail if the pattern matches. */ + negate?: InputMaybe; + /** The operator to use for matching. */ + operator: Scalars["String"]["input"]; + /** The pattern to match with. */ + pattern: Scalars["String"]["input"]; +}; + +/** Represents a comparison between two commit revisions. */ +export type Comparison = Node & { + __typename?: "Comparison"; + /** The number of commits ahead of the base branch. */ + aheadBy: Scalars["Int"]["output"]; + /** The base revision of this comparison. */ + baseTarget: GitObject; + /** The number of commits behind the base branch. */ + behindBy: Scalars["Int"]["output"]; + /** The commits which compose this comparison. */ + commits: ComparisonCommitConnection; + /** The head revision of this comparison. */ + headTarget: GitObject; + /** The Node ID of the Comparison object */ + id: Scalars["ID"]["output"]; + /** The status of this comparison. */ + status: ComparisonStatus; +}; + +/** Represents a comparison between two commit revisions. */ +export type ComparisonCommitsArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; +}; + +/** The connection type for Commit. */ +export type ComparisonCommitConnection = { + __typename?: "ComparisonCommitConnection"; + /** The total count of authors and co-authors across all commits. */ + authorCount: Scalars["Int"]["output"]; + /** A list of edges. */ + edges?: Maybe>>; + /** A list of nodes. */ + nodes?: Maybe>>; + /** Information to aid in pagination. */ + pageInfo: PageInfo; + /** Identifies the total count of items in the connection. */ + totalCount: Scalars["Int"]["output"]; +}; + +/** The status of a git comparison between two refs. */ +export enum ComparisonStatus { + /** The head ref is ahead of the base ref. */ + Ahead = "AHEAD", + /** The head ref is behind the base ref. */ + Behind = "BEHIND", + /** The head ref is both ahead and behind of the base ref, indicating git history has diverged. */ + Diverged = "DIVERGED", + /** The head ref and base ref are identical. */ + Identical = "IDENTICAL", +} + +/** Represents a 'connected' event on a given issue or pull request. */ +export type ConnectedEvent = Node & { + __typename?: "ConnectedEvent"; + /** Identifies the actor who performed the event. */ + actor?: Maybe; + /** Identifies the date and time when the object was created. */ + createdAt: Scalars["DateTime"]["output"]; + /** The Node ID of the ConnectedEvent object */ + id: Scalars["ID"]["output"]; + /** Reference originated in a different repository. */ + isCrossRepository: Scalars["Boolean"]["output"]; + /** Issue or pull request that made the reference. */ + source: ReferencedSubject; + /** Issue or pull request which was connected. */ + subject: ReferencedSubject; +}; + +/** The Contributing Guidelines for a repository. */ +export type ContributingGuidelines = { + __typename?: "ContributingGuidelines"; + /** The body of the Contributing Guidelines. */ + body?: Maybe; + /** The HTTP path for the Contributing Guidelines. */ + resourcePath?: Maybe; + /** The HTTP URL for the Contributing Guidelines. */ + url?: Maybe; +}; + +/** Represents a contribution a user made on GitHub, such as opening an issue. */ +export type 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: Scalars["Boolean"]["output"]; + /** When this contribution was made. */ + occurredAt: Scalars["DateTime"]["output"]; + /** The HTTP path for this contribution. */ + resourcePath: Scalars["URI"]["output"]; + /** The HTTP URL for this contribution. */ + url: Scalars["URI"]["output"]; + /** The user who made this contribution. */ + user: User; +}; + +/** A calendar of contributions made on GitHub by a user. */ +export type ContributionCalendar = { + __typename?: "ContributionCalendar"; + /** A list of hex color codes used in this calendar. The darker the color, the more contributions it represents. */ + colors: Array; + /** Determine if the color set was chosen because it's currently Halloween. */ + isHalloween: Scalars["Boolean"]["output"]; + /** A list of the months of contributions in this calendar. */ + months: Array; + /** The count of total contributions in the calendar. */ + totalContributions: Scalars["Int"]["output"]; + /** A list of the weeks of contributions in this calendar. */ + weeks: Array; +}; + +/** Represents a single day of contributions on GitHub by a user. */ +export type ContributionCalendarDay = { + __typename?: "ContributionCalendarDay"; + /** The hex color code that represents how many contributions were made on this day compared to others in the calendar. */ + color: Scalars["String"]["output"]; + /** How many contributions were made by the user on this day. */ + contributionCount: Scalars["Int"]["output"]; + /** + * 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: Scalars["Date"]["output"]; + /** A number representing which day of the week this square represents, e.g., 1 is Monday. */ + weekday: Scalars["Int"]["output"]; +}; + +/** A month of contributions in a user's contribution graph. */ +export type ContributionCalendarMonth = { + __typename?: "ContributionCalendarMonth"; + /** The date of the first day of this month. */ + firstDay: Scalars["Date"]["output"]; + /** The name of the month. */ + name: Scalars["String"]["output"]; + /** How many weeks started in this month. */ + totalWeeks: Scalars["Int"]["output"]; + /** The year the month occurred in. */ + year: Scalars["Int"]["output"]; +}; + +/** A week of contributions in a user's contribution graph. */ +export type ContributionCalendarWeek = { + __typename?: "ContributionCalendarWeek"; + /** The days of contributions in this week. */ + contributionDays: Array; + /** The date of the earliest square in this week. */ + firstDay: Scalars["Date"]["output"]; +}; + +/** Varying levels of contributions from none to many. */ +export enum ContributionLevel { + /** Lowest 25% of days of contributions. */ + FirstQuartile = "FIRST_QUARTILE", + /** Highest 25% of days of contributions. More contributions than the third quartile. */ + FourthQuartile = "FOURTH_QUARTILE", + /** No contributions occurred. */ + None = "NONE", + /** Second lowest 25% of days of contributions. More contributions than the first quartile. */ + SecondQuartile = "SECOND_QUARTILE", + /** Second highest 25% of days of contributions. More contributions than second quartile, less than the fourth quartile. */ + ThirdQuartile = "THIRD_QUARTILE", +} + +/** Ordering options for contribution connections. */ +export type ContributionOrder = { + /** The ordering direction. */ + direction: OrderDirection; +}; + +/** A contributions collection aggregates contributions such as opened issues and commits created by a user. */ +export type ContributionsCollection = { + __typename?: "ContributionsCollection"; + /** Commit contributions made by the user, grouped by repository. */ + commitContributionsByRepository: Array; + /** 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: Array; + /** Determine if this collection's time span ends in the current month. */ + doesEndInCurrentMonth: Scalars["Boolean"]["output"]; + /** + * 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?: Maybe; + /** The ending date and time of this collection. */ + endedAt: Scalars["DateTime"]["output"]; + /** + * 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?: Maybe; + /** + * 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?: Maybe; + /** + * 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?: Maybe; + /** Does the user have any more activity in the timeline that occurred prior to the collection's time range? */ + hasActivityInThePast: Scalars["Boolean"]["output"]; + /** Determine if there are any contributions in this collection. */ + hasAnyContributions: Scalars["Boolean"]["output"]; + /** + * 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: Scalars["Boolean"]["output"]; + /** Whether or not the collector's time span is all within the same day. */ + isSingleDay: Scalars["Boolean"]["output"]; + /** A list of issues the user opened. */ + issueContributions: CreatedIssueContributionConnection; + /** Issue contributions made by the user, grouped by repository. */ + issueContributionsByRepository: Array; + /** + * 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?: Maybe; + /** + * 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?: Maybe; + /** + * 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?: Maybe; + /** + * Returns a different contributions collection from an earlier time range than this one + * that does not have any contributions. + */ + mostRecentCollectionWithoutActivity?: Maybe; + /** + * The issue the user opened on GitHub that received the most comments in the specified + * time frame. + */ + popularIssueContribution?: Maybe; + /** + * The pull request the user opened on GitHub that received the most comments in the + * specified time frame. + */ + popularPullRequestContribution?: Maybe; + /** Pull request contributions made by the user. */ + pullRequestContributions: CreatedPullRequestContributionConnection; + /** Pull request contributions made by the user, grouped by repository. */ + pullRequestContributionsByRepository: Array; + /** + * Pull request review contributions made by the user. Returns the most recently + * submitted review for each PR reviewed by the user. + */ + pullRequestReviewContributions: CreatedPullRequestReviewContributionConnection; + /** Pull request review contributions made by the user, grouped by repository. */ + pullRequestReviewContributionsByRepository: Array; + /** A list of repositories owned by the user that the user created in this time range. */ + repositoryContributions: 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: Scalars["Int"]["output"]; + /** The beginning date and time of this collection. */ + startedAt: Scalars["DateTime"]["output"]; + /** How many commits were made by the user in this time span. */ + totalCommitContributions: Scalars["Int"]["output"]; + /** How many issues the user opened. */ + totalIssueContributions: Scalars["Int"]["output"]; + /** How many pull requests the user opened. */ + totalPullRequestContributions: Scalars["Int"]["output"]; + /** How many pull request reviews the user left. */ + totalPullRequestReviewContributions: Scalars["Int"]["output"]; + /** How many different repositories the user committed to. */ + totalRepositoriesWithContributedCommits: Scalars["Int"]["output"]; + /** How many different repositories the user opened issues in. */ + totalRepositoriesWithContributedIssues: Scalars["Int"]["output"]; + /** How many different repositories the user left pull request reviews in. */ + totalRepositoriesWithContributedPullRequestReviews: Scalars["Int"]["output"]; + /** How many different repositories the user opened pull requests in. */ + totalRepositoriesWithContributedPullRequests: Scalars["Int"]["output"]; + /** How many repositories the user created. */ + totalRepositoryContributions: Scalars["Int"]["output"]; + /** The user who made the contributions in this collection. */ + user: User; +}; + +/** A contributions collection aggregates contributions such as opened issues and commits created by a user. */ +export type ContributionsCollectionCommitContributionsByRepositoryArgs = { + maxRepositories?: InputMaybe; +}; + +/** A contributions collection aggregates contributions such as opened issues and commits created by a user. */ +export type ContributionsCollectionIssueContributionsArgs = { + after?: InputMaybe; + before?: InputMaybe; + excludeFirst?: InputMaybe; + excludePopular?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; + orderBy?: InputMaybe; +}; + +/** A contributions collection aggregates contributions such as opened issues and commits created by a user. */ +export type ContributionsCollectionIssueContributionsByRepositoryArgs = { + excludeFirst?: InputMaybe; + excludePopular?: InputMaybe; + maxRepositories?: InputMaybe; +}; + +/** A contributions collection aggregates contributions such as opened issues and commits created by a user. */ +export type ContributionsCollectionPullRequestContributionsArgs = { + after?: InputMaybe; + before?: InputMaybe; + excludeFirst?: InputMaybe; + excludePopular?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; + orderBy?: InputMaybe; +}; + +/** A contributions collection aggregates contributions such as opened issues and commits created by a user. */ +export type ContributionsCollectionPullRequestContributionsByRepositoryArgs = { + excludeFirst?: InputMaybe; + excludePopular?: InputMaybe; + maxRepositories?: InputMaybe; +}; + +/** A contributions collection aggregates contributions such as opened issues and commits created by a user. */ +export type ContributionsCollectionPullRequestReviewContributionsArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; + orderBy?: InputMaybe; +}; + +/** A contributions collection aggregates contributions such as opened issues and commits created by a user. */ +export type ContributionsCollectionPullRequestReviewContributionsByRepositoryArgs = + { + maxRepositories?: InputMaybe; + }; + +/** A contributions collection aggregates contributions such as opened issues and commits created by a user. */ +export type ContributionsCollectionRepositoryContributionsArgs = { + after?: InputMaybe; + before?: InputMaybe; + excludeFirst?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; + orderBy?: InputMaybe; +}; + +/** A contributions collection aggregates contributions such as opened issues and commits created by a user. */ +export type ContributionsCollectionTotalIssueContributionsArgs = { + excludeFirst?: InputMaybe; + excludePopular?: InputMaybe; +}; + +/** A contributions collection aggregates contributions such as opened issues and commits created by a user. */ +export type ContributionsCollectionTotalPullRequestContributionsArgs = { + excludeFirst?: InputMaybe; + excludePopular?: InputMaybe; +}; + +/** A contributions collection aggregates contributions such as opened issues and commits created by a user. */ +export type ContributionsCollectionTotalRepositoriesWithContributedIssuesArgs = + { + excludeFirst?: InputMaybe; + excludePopular?: InputMaybe; + }; + +/** A contributions collection aggregates contributions such as opened issues and commits created by a user. */ +export type ContributionsCollectionTotalRepositoriesWithContributedPullRequestsArgs = + { + excludeFirst?: InputMaybe; + excludePopular?: InputMaybe; + }; + +/** A contributions collection aggregates contributions such as opened issues and commits created by a user. */ +export type ContributionsCollectionTotalRepositoryContributionsArgs = { + excludeFirst?: InputMaybe; +}; + +/** Autogenerated input type of ConvertProjectCardNoteToIssue */ +export type ConvertProjectCardNoteToIssueInput = { + /** The body of the newly created issue. */ + body?: InputMaybe; + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: InputMaybe; + /** The ProjectCard ID to convert. */ + projectCardId: Scalars["ID"]["input"]; + /** The ID of the repository to create the issue in. */ + repositoryId: Scalars["ID"]["input"]; + /** The title of the newly created issue. Defaults to the card's note text. */ + title?: InputMaybe; +}; + +/** Autogenerated return type of ConvertProjectCardNoteToIssue. */ +export type ConvertProjectCardNoteToIssuePayload = { + __typename?: "ConvertProjectCardNoteToIssuePayload"; + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: Maybe; + /** The updated ProjectCard. */ + projectCard?: Maybe; +}; + +/** Autogenerated input type of ConvertProjectV2DraftIssueItemToIssue */ +export type ConvertProjectV2DraftIssueItemToIssueInput = { + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: InputMaybe; + /** The ID of the draft issue ProjectV2Item to convert. */ + itemId: Scalars["ID"]["input"]; + /** The ID of the repository to create the issue in. */ + repositoryId: Scalars["ID"]["input"]; +}; + +/** Autogenerated return type of ConvertProjectV2DraftIssueItemToIssue. */ +export type ConvertProjectV2DraftIssueItemToIssuePayload = { + __typename?: "ConvertProjectV2DraftIssueItemToIssuePayload"; + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: Maybe; + /** The updated project item. */ + item?: Maybe; +}; + +/** Autogenerated input type of ConvertPullRequestToDraft */ +export type ConvertPullRequestToDraftInput = { + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: InputMaybe; + /** ID of the pull request to convert to draft */ + pullRequestId: Scalars["ID"]["input"]; +}; + +/** Autogenerated return type of ConvertPullRequestToDraft. */ +export type ConvertPullRequestToDraftPayload = { + __typename?: "ConvertPullRequestToDraftPayload"; + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: Maybe; + /** The pull request that is now a draft. */ + pullRequest?: Maybe; +}; + +/** Represents a 'convert_to_draft' event on a given pull request. */ +export type ConvertToDraftEvent = Node & + UniformResourceLocatable & { + __typename?: "ConvertToDraftEvent"; + /** Identifies the actor who performed the event. */ + actor?: Maybe; + /** Identifies the date and time when the object was created. */ + createdAt: Scalars["DateTime"]["output"]; + /** The Node ID of the ConvertToDraftEvent object */ + id: Scalars["ID"]["output"]; + /** PullRequest referenced by event. */ + pullRequest: PullRequest; + /** The HTTP path for this convert to draft event. */ + resourcePath: Scalars["URI"]["output"]; + /** The HTTP URL for this convert to draft event. */ + url: Scalars["URI"]["output"]; + }; + +/** Represents a 'converted_note_to_issue' event on a given issue or pull request. */ +export type ConvertedNoteToIssueEvent = Node & { + __typename?: "ConvertedNoteToIssueEvent"; + /** Identifies the actor who performed the event. */ + actor?: Maybe; + /** Identifies the date and time when the object was created. */ + createdAt: Scalars["DateTime"]["output"]; + /** Identifies the primary key from the database. */ + databaseId?: Maybe; + /** The Node ID of the ConvertedNoteToIssueEvent object */ + id: Scalars["ID"]["output"]; + /** Project referenced by event. */ + project?: Maybe; + /** Project card referenced by this project event. */ + projectCard?: Maybe; + /** Column name referenced by this project event. */ + projectColumnName: Scalars["String"]["output"]; +}; + +/** Represents a 'converted_to_discussion' event on a given issue. */ +export type ConvertedToDiscussionEvent = Node & { + __typename?: "ConvertedToDiscussionEvent"; + /** Identifies the actor who performed the event. */ + actor?: Maybe; + /** Identifies the date and time when the object was created. */ + createdAt: Scalars["DateTime"]["output"]; + /** The discussion that the issue was converted into. */ + discussion?: Maybe; + /** The Node ID of the ConvertedToDiscussionEvent object */ + id: Scalars["ID"]["output"]; +}; + +/** Copilot endpoint information */ +export type CopilotEndpoints = { + __typename?: "CopilotEndpoints"; + /** Copilot API endpoint */ + api: Scalars["String"]["output"]; + /** Copilot origin tracker endpoint */ + originTracker: Scalars["String"]["output"]; + /** Copilot proxy endpoint */ + proxy: Scalars["String"]["output"]; + /** Copilot telemetry endpoint */ + telemetry: Scalars["String"]["output"]; +}; + +/** Autogenerated input type of CopyProjectV2 */ +export type CopyProjectV2Input = { + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: InputMaybe; + /** Include draft issues in the new project */ + includeDraftIssues?: InputMaybe; + /** The owner ID of the new project. */ + ownerId: Scalars["ID"]["input"]; + /** The ID of the source Project to copy. */ + projectId: Scalars["ID"]["input"]; + /** The title of the project. */ + title: Scalars["String"]["input"]; +}; + +/** Autogenerated return type of CopyProjectV2. */ +export type CopyProjectV2Payload = { + __typename?: "CopyProjectV2Payload"; + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: Maybe; + /** The copied project. */ + projectV2?: Maybe; +}; + +/** Autogenerated input type of CreateAttributionInvitation */ +export type CreateAttributionInvitationInput = { + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: InputMaybe; + /** The Node ID of the owner scoping the reattributable data. */ + ownerId: Scalars["ID"]["input"]; + /** The Node ID of the account owning the data to reattribute. */ + sourceId: Scalars["ID"]["input"]; + /** The Node ID of the account which may claim the data. */ + targetId: Scalars["ID"]["input"]; +}; + +/** Autogenerated return type of CreateAttributionInvitation. */ +export type CreateAttributionInvitationPayload = { + __typename?: "CreateAttributionInvitationPayload"; + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: Maybe; + /** The owner scoping the reattributable data. */ + owner?: Maybe; + /** The account owning the data to reattribute. */ + source?: Maybe; + /** The account which may claim the data. */ + target?: Maybe; +}; + +/** Autogenerated input type of CreateBranchProtectionRule */ +export type CreateBranchProtectionRuleInput = { + /** Can this branch be deleted. */ + allowsDeletions?: InputMaybe; + /** Are force pushes allowed on this branch. */ + allowsForcePushes?: InputMaybe; + /** Is branch creation a protected operation. */ + blocksCreations?: InputMaybe; + /** A list of User, Team, or App IDs allowed to bypass force push targeting matching branches. */ + bypassForcePushActorIds?: InputMaybe>; + /** A list of User, Team, or App IDs allowed to bypass pull requests targeting matching branches. */ + bypassPullRequestActorIds?: InputMaybe>; + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: InputMaybe; + /** Will new commits pushed to matching branches dismiss pull request review approvals. */ + dismissesStaleReviews?: InputMaybe; + /** Can admins override branch protection. */ + isAdminEnforced?: InputMaybe; + /** + * Whether users can pull changes from upstream when the branch is locked. Set to + * `true` to allow fork syncing. Set to `false` to prevent fork syncing. + */ + lockAllowsFetchAndMerge?: InputMaybe; + /** Whether to set the branch as read-only. If this is true, users will not be able to push to the branch. */ + lockBranch?: InputMaybe; + /** The glob-like pattern used to determine matching branches. */ + pattern: Scalars["String"]["input"]; + /** A list of User, Team, or App IDs allowed to push to matching branches. */ + pushActorIds?: InputMaybe>; + /** The global relay id of the repository in which a new branch protection rule should be created in. */ + repositoryId: Scalars["ID"]["input"]; + /** Whether the most recent push must be approved by someone other than the person who pushed it */ + requireLastPushApproval?: InputMaybe; + /** Number of approving reviews required to update matching branches. */ + requiredApprovingReviewCount?: InputMaybe; + /** The list of required deployment environments */ + requiredDeploymentEnvironments?: InputMaybe< + Array + >; + /** List of required status check contexts that must pass for commits to be accepted to matching branches. */ + requiredStatusCheckContexts?: InputMaybe>; + /** The list of required status checks */ + requiredStatusChecks?: InputMaybe>; + /** Are approving reviews required to update matching branches. */ + requiresApprovingReviews?: InputMaybe; + /** Are reviews from code owners required to update matching branches. */ + requiresCodeOwnerReviews?: InputMaybe; + /** Are commits required to be signed. */ + requiresCommitSignatures?: InputMaybe; + /** Are conversations required to be resolved before merging. */ + requiresConversationResolution?: InputMaybe; + /** Are successful deployments required before merging. */ + requiresDeployments?: InputMaybe; + /** Are merge commits prohibited from being pushed to this branch. */ + requiresLinearHistory?: InputMaybe; + /** Are status checks required to update matching branches. */ + requiresStatusChecks?: InputMaybe; + /** Are branches required to be up to date before merging. */ + requiresStrictStatusChecks?: InputMaybe; + /** Is pushing to matching branches restricted. */ + restrictsPushes?: InputMaybe; + /** Is dismissal of pull request reviews restricted. */ + restrictsReviewDismissals?: InputMaybe; + /** A list of User, Team, or App IDs allowed to dismiss reviews on pull requests targeting matching branches. */ + reviewDismissalActorIds?: InputMaybe>; +}; + +/** Autogenerated return type of CreateBranchProtectionRule. */ +export type CreateBranchProtectionRulePayload = { + __typename?: "CreateBranchProtectionRulePayload"; + /** The newly created BranchProtectionRule. */ + branchProtectionRule?: Maybe; + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: Maybe; +}; + +/** Autogenerated input type of CreateCheckRun */ +export type CreateCheckRunInput = { + /** Possible further actions the integrator can perform, which a user may trigger. */ + actions?: InputMaybe>; + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: InputMaybe; + /** The time that the check run finished. */ + completedAt?: InputMaybe; + /** The final conclusion of the check. */ + conclusion?: InputMaybe; + /** The URL of the integrator's site that has the full details of the check. */ + detailsUrl?: InputMaybe; + /** A reference for the run on the integrator's system. */ + externalId?: InputMaybe; + /** The SHA of the head commit. */ + headSha: Scalars["GitObjectID"]["input"]; + /** The name of the check. */ + name: Scalars["String"]["input"]; + /** Descriptive details about the run. */ + output?: InputMaybe; + /** The node ID of the repository. */ + repositoryId: Scalars["ID"]["input"]; + /** The time that the check run began. */ + startedAt?: InputMaybe; + /** The current status. */ + status?: InputMaybe; +}; + +/** Autogenerated return type of CreateCheckRun. */ +export type CreateCheckRunPayload = { + __typename?: "CreateCheckRunPayload"; + /** The newly created check run. */ + checkRun?: Maybe; + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: Maybe; +}; + +/** Autogenerated input type of CreateCheckSuite */ +export type CreateCheckSuiteInput = { + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: InputMaybe; + /** The SHA of the head commit. */ + headSha: Scalars["GitObjectID"]["input"]; + /** The Node ID of the repository. */ + repositoryId: Scalars["ID"]["input"]; +}; + +/** Autogenerated return type of CreateCheckSuite. */ +export type CreateCheckSuitePayload = { + __typename?: "CreateCheckSuitePayload"; + /** The newly created check suite. */ + checkSuite?: Maybe; + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: Maybe; +}; + +/** Autogenerated input type of CreateCommitOnBranch */ +export type CreateCommitOnBranchInput = { + /** The Ref to be updated. Must be a branch. */ + branch: CommittableBranch; + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: InputMaybe; + /** The git commit oid expected at the head of the branch prior to the commit */ + expectedHeadOid: Scalars["GitObjectID"]["input"]; + /** A description of changes to files in this commit. */ + fileChanges?: InputMaybe; + /** The commit message the be included with the commit. */ + message: CommitMessage; +}; + +/** Autogenerated return type of CreateCommitOnBranch. */ +export type CreateCommitOnBranchPayload = { + __typename?: "CreateCommitOnBranchPayload"; + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: Maybe; + /** The new commit. */ + commit?: Maybe; + /** The ref which has been updated to point to the new commit. */ + ref?: Maybe; +}; + +/** Autogenerated input type of CreateDeployment */ +export type CreateDeploymentInput = { + /** Attempt to automatically merge the default branch into the requested ref, defaults to true. */ + autoMerge?: InputMaybe; + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: InputMaybe; + /** Short description of the deployment. */ + description?: InputMaybe; + /** Name for the target deployment environment. */ + environment?: InputMaybe; + /** JSON payload with extra information about the deployment. */ + payload?: InputMaybe; + /** The node ID of the ref to be deployed. */ + refId: Scalars["ID"]["input"]; + /** The node ID of the repository. */ + repositoryId: Scalars["ID"]["input"]; + /** + * The status contexts to verify against commit status checks. To bypass required + * contexts, pass an empty array. Defaults to all unique contexts. + */ + requiredContexts?: InputMaybe>; + /** Specifies a task to execute. */ + task?: InputMaybe; +}; + +/** Autogenerated return type of CreateDeployment. */ +export type CreateDeploymentPayload = { + __typename?: "CreateDeploymentPayload"; + /** True if the default branch has been auto-merged into the deployment ref. */ + autoMerged?: Maybe; + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: Maybe; + /** The new deployment. */ + deployment?: Maybe; +}; + +/** Autogenerated input type of CreateDeploymentStatus */ +export type CreateDeploymentStatusInput = { + /** + * Adds a new inactive status to all non-transient, non-production environment + * deployments with the same repository and environment name as the created + * status's deployment. + */ + autoInactive?: InputMaybe; + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: InputMaybe; + /** The node ID of the deployment. */ + deploymentId: Scalars["ID"]["input"]; + /** A short description of the status. Maximum length of 140 characters. */ + description?: InputMaybe; + /** If provided, updates the environment of the deploy. Otherwise, does not modify the environment. */ + environment?: InputMaybe; + /** Sets the URL for accessing your environment. */ + environmentUrl?: InputMaybe; + /** + * The log URL to associate with this status. This URL should contain + * output to keep the user updated while the task is running or serve as + * historical information for what happened in the deployment. + */ + logUrl?: InputMaybe; + /** The state of the deployment. */ + state: DeploymentStatusState; +}; + +/** Autogenerated return type of CreateDeploymentStatus. */ +export type CreateDeploymentStatusPayload = { + __typename?: "CreateDeploymentStatusPayload"; + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: Maybe; + /** The new deployment status. */ + deploymentStatus?: Maybe; +}; + +/** Autogenerated input type of CreateDiscussion */ +export type CreateDiscussionInput = { + /** The body of the discussion. */ + body: Scalars["String"]["input"]; + /** The id of the discussion category to associate with this discussion. */ + categoryId: Scalars["ID"]["input"]; + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: InputMaybe; + /** The id of the repository on which to create the discussion. */ + repositoryId: Scalars["ID"]["input"]; + /** The title of the discussion. */ + title: Scalars["String"]["input"]; +}; + +/** Autogenerated return type of CreateDiscussion. */ +export type CreateDiscussionPayload = { + __typename?: "CreateDiscussionPayload"; + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: Maybe; + /** The discussion that was just created. */ + discussion?: Maybe; +}; + +/** Autogenerated input type of CreateEnterpriseOrganization */ +export type CreateEnterpriseOrganizationInput = { + /** The logins for the administrators of the new organization. */ + adminLogins: Array; + /** The email used for sending billing receipts. */ + billingEmail: Scalars["String"]["input"]; + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: InputMaybe; + /** The ID of the enterprise owning the new organization. */ + enterpriseId: Scalars["ID"]["input"]; + /** The login of the new organization. */ + login: Scalars["String"]["input"]; + /** The profile name of the new organization. */ + profileName: Scalars["String"]["input"]; +}; + +/** Autogenerated return type of CreateEnterpriseOrganization. */ +export type CreateEnterpriseOrganizationPayload = { + __typename?: "CreateEnterpriseOrganizationPayload"; + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: Maybe; + /** The enterprise that owns the created organization. */ + enterprise?: Maybe; + /** The organization that was created. */ + organization?: Maybe; +}; + +/** Autogenerated input type of CreateEnvironment */ +export type CreateEnvironmentInput = { + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: InputMaybe; + /** The name of the environment. */ + name: Scalars["String"]["input"]; + /** The node ID of the repository. */ + repositoryId: Scalars["ID"]["input"]; +}; + +/** Autogenerated return type of CreateEnvironment. */ +export type CreateEnvironmentPayload = { + __typename?: "CreateEnvironmentPayload"; + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: Maybe; + /** The new or existing environment. */ + environment?: Maybe; +}; + +/** Autogenerated input type of CreateIpAllowListEntry */ +export type CreateIpAllowListEntryInput = { + /** An IP address or range of addresses in CIDR notation. */ + allowListValue: Scalars["String"]["input"]; + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: InputMaybe; + /** Whether the IP allow list entry is active when an IP allow list is enabled. */ + isActive: Scalars["Boolean"]["input"]; + /** An optional name for the IP allow list entry. */ + name?: InputMaybe; + /** The ID of the owner for which to create the new IP allow list entry. */ + ownerId: Scalars["ID"]["input"]; +}; + +/** Autogenerated return type of CreateIpAllowListEntry. */ +export type CreateIpAllowListEntryPayload = { + __typename?: "CreateIpAllowListEntryPayload"; + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: Maybe; + /** The IP allow list entry that was created. */ + ipAllowListEntry?: Maybe; +}; + +/** Autogenerated input type of CreateIssue */ +export type CreateIssueInput = { + /** The Node ID for the user assignee for this issue. */ + assigneeIds?: InputMaybe>; + /** The body for the issue description. */ + body?: InputMaybe; + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: InputMaybe; + /** The name of an issue template in the repository, assigns labels and assignees from the template to the issue */ + issueTemplate?: InputMaybe; + /** An array of Node IDs of labels for this issue. */ + labelIds?: InputMaybe>; + /** The Node ID of the milestone for this issue. */ + milestoneId?: InputMaybe; + /** An array of Node IDs for projects associated with this issue. */ + projectIds?: InputMaybe>; + /** The Node ID of the repository. */ + repositoryId: Scalars["ID"]["input"]; + /** The title for the issue. */ + title: Scalars["String"]["input"]; +}; + +/** Autogenerated return type of CreateIssue. */ +export type CreateIssuePayload = { + __typename?: "CreateIssuePayload"; + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: Maybe; + /** The new issue. */ + issue?: Maybe; +}; + +/** Autogenerated input type of CreateLabel */ +export type CreateLabelInput = { + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: InputMaybe; + /** A 6 character hex code, without the leading #, identifying the color of the label. */ + color: Scalars["String"]["input"]; + /** A brief description of the label, such as its purpose. */ + description?: InputMaybe; + /** The name of the label. */ + name: Scalars["String"]["input"]; + /** The Node ID of the repository. */ + repositoryId: Scalars["ID"]["input"]; +}; + +/** Autogenerated return type of CreateLabel. */ +export type CreateLabelPayload = { + __typename?: "CreateLabelPayload"; + /** A unique identifier for the client performing the mutation. */ + clientMutationId?: Maybe; + /** The new label. */ + label?: Maybe