diff --git a/.gitignore b/.gitignore index 6635cf5..472c6de 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,5 @@ node_modules !.env.example vite.config.js.timestamp-* vite.config.ts.timestamp-* + +$houdini diff --git a/.graphqlrc.yaml b/.graphqlrc.yaml new file mode 100644 index 0000000..b2b9055 --- /dev/null +++ b/.graphqlrc.yaml @@ -0,0 +1,9 @@ +projects: + default: + schema: + - ./schema.graphql + - ./$houdini/graphql/schema.graphql + documents: + - '**/*.gql' + - '**/*.svelte' + - ./$houdini/graphql/documents.gql diff --git a/houdini.config.js b/houdini.config.js new file mode 100644 index 0000000..7b3cd38 --- /dev/null +++ b/houdini.config.js @@ -0,0 +1,13 @@ +/// + +/** @type {import('houdini').ConfigFile} */ +const config = { + "watchSchema": { + "url": "https://graphql.andert.me/api/graphql" + }, + "plugins": { + "houdini-svelte": {} + } +} + +export default config diff --git a/package.json b/package.json index 27e34f1..0d26c92 100644 --- a/package.json +++ b/package.json @@ -1,59 +1,61 @@ { - "name": "svelte", - "version": "0.0.1", - "private": true, - "scripts": { - "dev": "vite dev", - "build": "vite build", - "preview": "vite preview", - "test": "npm run test:integration && npm run test:unit", - "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", - "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch", - "lint": "prettier --plugin-search-dir . --check . && eslint .", - "format": "prettier --plugin-search-dir . --write .", - "test:integration": "playwright test", - "test:unit": "vitest" - }, - "devDependencies": { - "@iconify/svelte": "^3.1.4", - "@playwright/test": "^1.36.2", - "@skeletonlabs/skeleton": "^1.10.0", - "@sveltejs/adapter-auto": "^2.1.0", - "@sveltejs/kit": "^1.22.3", - "@tailwindcss/forms": "^0.5.4", - "@typescript-eslint/eslint-plugin": "^5.62.0", - "@typescript-eslint/parser": "^5.62.0", - "autoprefixer": "^10.4.14", - "eslint": "^8.46.0", - "eslint-config-prettier": "^8.9.0", - "eslint-plugin-svelte": "^2.32.4", - "postcss": "^8.4.27", - "prettier": "^2.8.8", - "prettier-plugin-svelte": "^2.10.1", - "svelte": "^4.1.1", - "svelte-check": "^3.4.6", - "sveltekit-superforms": "^1.5.0", - "tailwindcss": "^3.3.3", - "tslib": "^2.6.1", - "typescript": "^5.1.6", - "vite": "^4.4.7", - "vitest": "^0.32.4", - "zod": "^3.21.4" - }, - "type": "module", - "dependencies": { - "@lit-protocol/auth-helpers": "^2.2.47", - "@lit-protocol/constants": "^2.2.47", - "@lit-protocol/lit-auth-client": "^2.2.47", - "@lit-protocol/lit-node-client": "^2.2.47", - "@lit-protocol/pkp-client": "^2.2.47", - "@lit-protocol/pkp-ethers": "^2.2.47", - "@lit-protocol/pkp-walletconnect": "^2.2.47", - "@lit-protocol/types": "^2.2.47", - "@sveltejs/vite-plugin-svelte": "^2.4.3", - "@wagmi/core": "^1.3.8", - "@xstate/svelte": "^2.1.0", - "viem": "^1.4.2", - "xstate": "^4.38.2" - } + "name": "svelte", + "version": "0.0.1", + "private": true, + "scripts": { + "dev": "vite dev", + "build": "vite build", + "preview": "vite preview", + "test": "npm run test:integration && npm run test:unit", + "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", + "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch", + "lint": "prettier --plugin-search-dir . --check . && eslint .", + "format": "prettier --plugin-search-dir . --write .", + "test:integration": "playwright test", + "test:unit": "vitest" + }, + "devDependencies": { + "@iconify/svelte": "^3.1.4", + "@playwright/test": "^1.36.2", + "@skeletonlabs/skeleton": "^1.10.0", + "@sveltejs/adapter-auto": "^2.1.0", + "@sveltejs/kit": "^1.22.3", + "@tailwindcss/forms": "^0.5.4", + "@typescript-eslint/eslint-plugin": "^5.62.0", + "@typescript-eslint/parser": "^5.62.0", + "autoprefixer": "^10.4.14", + "eslint": "^8.46.0", + "eslint-config-prettier": "^8.9.0", + "eslint-plugin-svelte": "^2.32.4", + "postcss": "^8.4.27", + "prettier": "^2.8.8", + "prettier-plugin-svelte": "^2.10.1", + "svelte": "^4.1.1", + "svelte-check": "^3.4.6", + "sveltekit-superforms": "^1.5.0", + "tailwindcss": "^3.3.3", + "tslib": "^2.6.1", + "typescript": "^5.1.6", + "vite": "^4.4.7", + "vitest": "^0.32.4", + "zod": "^3.21.4", + "houdini": "^1.2.8", + "houdini-svelte": "^1.2.8" + }, + "type": "module", + "dependencies": { + "@lit-protocol/auth-helpers": "^2.2.47", + "@lit-protocol/constants": "^2.2.47", + "@lit-protocol/lit-auth-client": "^2.2.47", + "@lit-protocol/lit-node-client": "^2.2.47", + "@lit-protocol/pkp-client": "^2.2.47", + "@lit-protocol/pkp-ethers": "^2.2.47", + "@lit-protocol/pkp-walletconnect": "^2.2.47", + "@lit-protocol/types": "^2.2.47", + "@sveltejs/vite-plugin-svelte": "^2.4.3", + "@wagmi/core": "^1.3.8", + "@xstate/svelte": "^2.1.0", + "viem": "^1.4.2", + "xstate": "^4.38.2" + } } \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 31d95ac..99f77aa 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -78,6 +78,12 @@ devDependencies: eslint-plugin-svelte: specifier: ^2.32.4 version: 2.32.4(eslint@8.46.0)(svelte@4.1.1) + houdini: + specifier: ^1.2.8 + version: 1.2.8 + houdini-svelte: + specifier: ^1.2.8 + version: 1.2.8 postcss: specifier: ^8.4.27 version: 8.4.27 @@ -142,6 +148,24 @@ packages: resolution: {integrity: sha512-HazVq9zwTVwGmqdwYzu7WyQ6FQVZ7SwET0KKQuKm55jD0IfUpZgN0OPIiZG3zV1iSrVYcN0bdwLRXI/VNCYsUA==} dev: false + /@babel/helper-string-parser@7.22.5: + resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-validator-identifier@7.22.5: + resolution: {integrity: sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/parser@7.22.7: + resolution: {integrity: sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.22.5 + dev: true + /@babel/runtime@7.22.6: resolution: {integrity: sha512-wDb5pWm4WDdF6LFUde3Jl8WzPA+3ZbxYqkC6xAXuD3irdEHN1k0NfTRrJD8ZD378SJ61miMLCqIOXYhd8x+AJQ==} engines: {node: '>=6.9.0'} @@ -149,6 +173,15 @@ packages: regenerator-runtime: 0.13.11 dev: false + /@babel/types@7.22.5: + resolution: {integrity: sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.22.5 + '@babel/helper-validator-identifier': 7.22.5 + to-fast-properties: 2.0.0 + dev: true + /@coinbase/wallet-sdk@3.7.1: resolution: {integrity: sha512-LjyoDCB+7p0waQXfK+fUgcAs3Ezk6S6e+LYaoFjpJ6c9VTop3NyZF40Pi7df4z7QJohCwzuIDjz0Rhtig6Y7Pg==} engines: {node: '>= 10.0.0'} @@ -843,6 +876,46 @@ packages: '@ethersproject/strings': 5.7.0 dev: false + /@graphql-tools/merge@8.4.2(graphql@15.8.0): + resolution: {integrity: sha512-XbrHAaj8yDuINph+sAfuq3QCZ/tKblrTLOpirK0+CAgNlZUCHs0Fa+xtMUURgwCVThLle1AF7svJCxFizygLsw==} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + dependencies: + '@graphql-tools/utils': 9.2.1(graphql@15.8.0) + graphql: 15.8.0 + tslib: 2.6.1 + dev: true + + /@graphql-tools/schema@9.0.19(graphql@15.8.0): + resolution: {integrity: sha512-oBRPoNBtCkk0zbUsyP4GaIzCt8C0aCI4ycIRUL67KK5pOHljKLBBtGT+Jr6hkzA74C8Gco8bpZPe7aWFjiaK2w==} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + dependencies: + '@graphql-tools/merge': 8.4.2(graphql@15.8.0) + '@graphql-tools/utils': 9.2.1(graphql@15.8.0) + graphql: 15.8.0 + tslib: 2.6.1 + value-or-promise: 1.0.12 + dev: true + + /@graphql-tools/utils@9.2.1(graphql@15.8.0): + resolution: {integrity: sha512-WUw506Ql6xzmOORlriNrD6Ugx+HjVgYxt9KCXD9mHAak+eaXSwuGGPyE60hy9xaDEoXKBsG7SkG69ybitaVl6A==} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + dependencies: + '@graphql-typed-document-node/core': 3.2.0(graphql@15.8.0) + graphql: 15.8.0 + tslib: 2.6.1 + dev: true + + /@graphql-typed-document-node/core@3.2.0(graphql@15.8.0): + resolution: {integrity: sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==} + 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 || ^17.0.0 + dependencies: + graphql: 15.8.0 + dev: true + /@humanwhocodes/config-array@0.11.10: resolution: {integrity: sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==} engines: {node: '>=10.10.0'} @@ -974,6 +1047,16 @@ packages: '@pedrouid/environment': 1.0.1 dev: false + /@kitql/helper@0.5.0: + resolution: {integrity: sha512-qTDsv8qmbvSyZLb75hE9N4AnmZHtCi8JxgHYAj4dbgViEjs6HVYJKqHabGR7rZCAVQj7LwWu+cTfh52QhlNMcg==} + dev: true + + /@kitql/helper@0.6.1: + resolution: {integrity: sha512-jHl1YHItwOI8Z0h4kvx5LaJjcjY4zbmgSZVajWaGanCmbBKYphVP3UoNHDhs5944Ar7fJ/L7MNSdIINBhurIOA==} + dependencies: + safe-stable-stringify: 2.4.3 + dev: true + /@ledgerhq/connect-kit-loader@1.1.0: resolution: {integrity: sha512-HUy12FEczoWY2FPubnsm1uOA8tkVWc0j90i47suThV3C9NL2xx69ZAIEU3Ytzs2bwLek9S1Q2S1VQJvA+3Ygkg==} dev: false @@ -2138,6 +2221,33 @@ packages: import-meta-resolve: 3.0.0 dev: true + /@sveltejs/kit@1.22.3(svelte@3.59.2)(vite@4.4.7): + resolution: {integrity: sha512-IpHD5wvuoOIHYaHQUBJ1zERD2Iz+fB/rBXhXjl8InKw6X4VKE9BSus+ttHhE7Ke+Ie9ecfilzX8BnWE3FeQyng==} + engines: {node: ^16.14 || >=18} + hasBin: true + requiresBuild: true + peerDependencies: + svelte: ^3.54.0 || ^4.0.0-next.0 + vite: ^4.0.0 + dependencies: + '@sveltejs/vite-plugin-svelte': 2.4.3(svelte@3.59.2)(vite@4.4.7) + '@types/cookie': 0.5.1 + cookie: 0.5.0 + devalue: 4.3.2 + esm-env: 1.0.0 + kleur: 4.1.5 + magic-string: 0.30.2 + mime: 3.0.0 + sade: 1.8.1 + set-cookie-parser: 2.6.0 + sirv: 2.0.3 + svelte: 3.59.2 + undici: 5.22.1 + vite: 4.4.7(@types/node@20.4.5) + transitivePeerDependencies: + - supports-color + dev: true + /@sveltejs/kit@1.22.3(svelte@4.1.1)(vite@4.4.7): resolution: {integrity: sha512-IpHD5wvuoOIHYaHQUBJ1zERD2Iz+fB/rBXhXjl8InKw6X4VKE9BSus+ttHhE7Ke+Ie9ecfilzX8BnWE3FeQyng==} engines: {node: ^16.14 || >=18} @@ -2165,6 +2275,22 @@ packages: - supports-color dev: true + /@sveltejs/vite-plugin-svelte-inspector@1.0.3(@sveltejs/vite-plugin-svelte@2.4.3)(svelte@3.59.2)(vite@4.4.7): + resolution: {integrity: sha512-Khdl5jmmPN6SUsVuqSXatKpQTMIifoQPDanaxC84m9JxIibWvSABJyHpyys0Z+1yYrxY5TTEQm+6elh0XCMaOA==} + engines: {node: ^14.18.0 || >= 16} + peerDependencies: + '@sveltejs/vite-plugin-svelte': ^2.2.0 + svelte: ^3.54.0 || ^4.0.0 + vite: ^4.0.0 + dependencies: + '@sveltejs/vite-plugin-svelte': 2.4.3(svelte@3.59.2)(vite@4.4.7) + debug: 4.3.4 + svelte: 3.59.2 + vite: 4.4.7(@types/node@20.4.5) + transitivePeerDependencies: + - supports-color + dev: true + /@sveltejs/vite-plugin-svelte-inspector@1.0.3(@sveltejs/vite-plugin-svelte@2.4.3)(svelte@4.1.1)(vite@4.4.7): resolution: {integrity: sha512-Khdl5jmmPN6SUsVuqSXatKpQTMIifoQPDanaxC84m9JxIibWvSABJyHpyys0Z+1yYrxY5TTEQm+6elh0XCMaOA==} engines: {node: ^14.18.0 || >= 16} @@ -2180,6 +2306,26 @@ packages: transitivePeerDependencies: - supports-color + /@sveltejs/vite-plugin-svelte@2.4.3(svelte@3.59.2)(vite@4.4.7): + resolution: {integrity: sha512-NY2h+B54KHZO3kDURTdARqthn6D4YSIebtfW75NvZ/fwyk4G+AJw3V/i0OBjyN4406Ht9yZcnNWMuRUFnDNNiA==} + engines: {node: ^14.18.0 || >= 16} + peerDependencies: + svelte: ^3.54.0 || ^4.0.0 + vite: ^4.0.0 + dependencies: + '@sveltejs/vite-plugin-svelte-inspector': 1.0.3(@sveltejs/vite-plugin-svelte@2.4.3)(svelte@3.59.2)(vite@4.4.7) + debug: 4.3.4 + deepmerge: 4.3.1 + kleur: 4.1.5 + magic-string: 0.30.2 + svelte: 3.59.2 + svelte-hmr: 0.15.2(svelte@3.59.2) + vite: 4.4.7(@types/node@20.4.5) + vitefu: 0.2.4(vite@4.4.7) + transitivePeerDependencies: + - supports-color + dev: true + /@sveltejs/vite-plugin-svelte@2.4.3(svelte@4.1.1)(vite@4.4.7): resolution: {integrity: sha512-NY2h+B54KHZO3kDURTdARqthn6D4YSIebtfW75NvZ/fwyk4G+AJw3V/i0OBjyN4406Ht9yZcnNWMuRUFnDNNiA==} engines: {node: ^14.18.0 || >= 16} @@ -2208,6 +2354,10 @@ packages: tailwindcss: 3.3.3 dev: true + /@types/braces@3.0.2: + resolution: {integrity: sha512-U5tlMYa0U/2eFTmJgKcPWQOEICP173sJDa6OjHbj5Tv+NVaYcrq2xmdWpNXOwWYGwJu+jER/pfTLdoQ31q8PzA==} + dev: true + /@types/chai-subset@1.3.3: resolution: {integrity: sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==} dependencies: @@ -2221,7 +2371,7 @@ packages: /@types/connect@3.4.35: resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==} dependencies: - '@types/node': 12.20.55 + '@types/node': 20.4.5 dev: false /@types/cookie@0.5.1: @@ -2237,6 +2387,12 @@ packages: /@types/estree@1.0.1: resolution: {integrity: sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==} + /@types/fs-extra@9.0.13: + resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} + dependencies: + '@types/node': 20.4.5 + dev: true + /@types/json-schema@7.0.12: resolution: {integrity: sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==} dev: true @@ -2245,6 +2401,12 @@ packages: resolution: {integrity: sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==} dev: false + /@types/micromatch@4.0.2: + resolution: {integrity: sha512-oqXqVb0ci19GtH0vOA/U2TmHTcRY9kuZl4mqUxe0QmJAlIW13kzhuK5pi1i9+ngav8FjpSb9FVS/GE00GLX1VA==} + dependencies: + '@types/braces': 3.0.2 + dev: true + /@types/minimatch@3.0.5: resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==} dev: false @@ -2260,6 +2422,13 @@ packages: /@types/node@20.4.5: resolution: {integrity: sha512-rt40Nk13II9JwQBdeYqmbn2Q6IVTA5uPhvSO+JVqdXw/6/4glI6oR9ezty/A9Hg5u7JH4OmYmuQ+XvjKm0Datg==} + /@types/prompts@2.4.4: + resolution: {integrity: sha512-p5N9uoTH76lLvSAaYSZtBCdEXzpOOufsRjnhjVSrZGXikVGHX9+cc9ERtHRV4hvBKHyZb1bg4K+56Bd2TqUn4A==} + dependencies: + '@types/node': 20.4.5 + kleur: 3.0.3 + dev: true + /@types/pug@2.0.6: resolution: {integrity: sha512-SnHmG9wN1UVmagJOnyo/qkk0Z7gejYxOYYmaAwr5u2yFYfsupN3sg10kyzN8Hep/2zbHxCnsumxOoRIRMBwKCg==} dev: true @@ -2275,7 +2444,7 @@ packages: /@types/ws@7.4.7: resolution: {integrity: sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==} dependencies: - '@types/node': 12.20.55 + '@types/node': 20.4.5 dev: false /@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.46.0)(typescript@5.1.6): @@ -2408,6 +2577,10 @@ packages: eslint-visitor-keys: 3.4.2 dev: true + /@ungap/structured-clone@1.2.0: + resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + dev: true + /@vitest/expect@0.32.4: resolution: {integrity: sha512-m7EPUqmGIwIeoU763N+ivkFjTzbaBn0n9evsTOcde03ugy2avPs3kZbYmw3DkcH1j5mxhMhdamJkLQ6dM1bk/A==} dependencies: @@ -3417,10 +3590,26 @@ packages: engines: {node: '>=8'} dev: true + /assert@2.0.0: + resolution: {integrity: sha512-se5Cd+js9dXJnu6Ag2JFc00t+HmHOen+8Q+L7O9zI0PqQXr20uk2J0XQqMxZEeo5U50o8Nvmmx7dZrl+Ufr35A==} + dependencies: + es6-object-assign: 1.1.0 + is-nan: 1.3.2 + object-is: 1.1.5 + util: 0.12.5 + dev: true + /assertion-error@1.1.0: resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} dev: true + /ast-types@0.16.1: + resolution: {integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==} + engines: {node: '>=4'} + dependencies: + tslib: 2.6.1 + dev: true + /async-mutex@0.2.6: resolution: {integrity: sha512-Hs4R+4SPgamu6rSGW8C7cV9gaWUKEHykfzCCvIRuaVv636Ju10ZdeUbvb4TBEW0INuq2DHZqXbK4Nd3yG4RaRw==} dependencies: @@ -3451,7 +3640,6 @@ packages: /available-typed-arrays@1.0.5: resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} engines: {node: '>= 0.4'} - dev: false /axios@0.21.4: resolution: {integrity: sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==} @@ -3561,6 +3749,12 @@ packages: balanced-match: 1.0.2 concat-map: 0.0.1 + /brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + dependencies: + balanced-match: 1.0.2 + dev: true + /braces@3.0.2: resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} engines: {node: '>=8'} @@ -3612,6 +3806,12 @@ packages: node-gyp-build: 4.6.0 dev: false + /builtins@5.0.1: + resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==} + dependencies: + semver: 7.5.4 + dev: true + /busboy@1.6.0: resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} engines: {node: '>=10.16.0'} @@ -3629,7 +3829,6 @@ packages: dependencies: function-bind: 1.1.1 get-intrinsic: 1.2.1 - dev: false /callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} @@ -3739,6 +3938,11 @@ packages: engines: {node: '>= 6'} dev: true + /commander@9.5.0: + resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} + engines: {node: ^12.20.0 || >=14} + dev: true + /concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} @@ -3801,6 +4005,11 @@ packages: multiformats: 9.9.0 dev: false + /data-uri-to-buffer@4.0.1: + resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==} + engines: {node: '>= 12'} + dev: true + /debug@4.3.4: resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} engines: {node: '>=6.0'} @@ -3843,7 +4052,6 @@ packages: dependencies: has-property-descriptors: 1.0.0 object-keys: 1.1.1 - dev: false /delay@5.0.0: resolution: {integrity: sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==} @@ -3981,6 +4189,10 @@ packages: resolution: {integrity: sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==} dev: false + /es6-object-assign@1.1.0: + resolution: {integrity: sha512-MEl9uirslVwqQU369iHNWZXsI8yaZYGg/D65aOgZkeyFJwHYSxilf7rQzXKI7DdDuBPrBXbfk3sl9hJhmd5AUw==} + dev: true + /es6-promise@3.3.1: resolution: {integrity: sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==} dev: true @@ -4151,6 +4363,12 @@ packages: eslint-visitor-keys: 3.4.2 dev: true + /esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + dev: true + /esquery@1.5.0: resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} engines: {node: '>=0.10'} @@ -4294,6 +4512,21 @@ packages: engines: {node: '>=0.8.x'} dev: false + /execa@6.1.0: + resolution: {integrity: sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 3.0.1 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.1.0 + onetime: 6.0.0 + signal-exit: 3.0.7 + strip-final-newline: 3.0.0 + dev: true + /eyes@0.1.8: resolution: {integrity: sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==} engines: {node: '> 0.1.90'} @@ -4345,6 +4578,14 @@ packages: reusify: 1.0.4 dev: true + /fetch-blob@3.2.0: + resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==} + engines: {node: ^12.20 || >= 14.13} + dependencies: + node-domexception: 1.0.0 + web-streams-polyfill: 3.2.1 + dev: true + /file-entry-cache@6.0.1: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} @@ -4410,12 +4651,31 @@ packages: resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} dependencies: is-callable: 1.2.7 - dev: false + + /formdata-polyfill@4.0.10: + resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} + engines: {node: '>=12.20.0'} + dependencies: + fetch-blob: 3.2.0 + dev: true /fraction.js@4.2.0: resolution: {integrity: sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==} dev: true + /fs-extra@10.1.0: + resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} + engines: {node: '>=12'} + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.0 + dev: true + + /fs-monkey@1.0.4: + resolution: {integrity: sha512-INM/fWAxMICjttnD0DX1rBvinKskj5G1w+oy/pnm9u/tSlnBrzFonJMcalKJ30P8RRsPzKcCG7Q8l0jx5Fh9YQ==} + dev: true + /fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} dev: true @@ -4446,12 +4706,16 @@ packages: has: 1.0.3 has-proto: 1.0.1 has-symbols: 1.0.3 - dev: false /get-iterator@1.0.2: resolution: {integrity: sha512-v+dm9bNVfOYsY1OrhaCrmyOcYoSeVvbt+hHZ0Au+T+p1y+0Uyj9aMaGIeUTT6xdpRbWzDeYKvfOslPhggQMcsg==} dev: false + /get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + dev: true + /glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} @@ -4488,6 +4752,17 @@ packages: path-is-absolute: 1.0.1 dev: true + /glob@8.1.0: + resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} + engines: {node: '>=12'} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 5.1.6 + once: 1.4.0 + dev: true + /globals@13.20.0: resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==} engines: {node: '>=8'} @@ -4518,7 +4793,6 @@ packages: resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} dependencies: get-intrinsic: 1.2.1 - dev: false /graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} @@ -4528,6 +4802,11 @@ packages: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} dev: true + /graphql@15.8.0: + resolution: {integrity: sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw==} + engines: {node: '>= 10.x'} + dev: true + /hamt-sharding@3.0.2: resolution: {integrity: sha512-f0DzBD2tSmLFdFsLAvOflIBqFPjerbA7BfmwO8mVho/5hXwgyyYhv+ijIzidQf/DpDX3bRjAQvhGoBFj+DBvPw==} engines: {node: '>=16.0.0', npm: '>=7.0.0'} @@ -4545,24 +4824,20 @@ packages: resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} dependencies: get-intrinsic: 1.2.1 - dev: false /has-proto@1.0.1: resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} engines: {node: '>= 0.4'} - dev: false /has-symbols@1.0.3: resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} engines: {node: '>= 0.4'} - dev: false /has-tostringtag@1.0.0: resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} engines: {node: '>= 0.4'} dependencies: has-symbols: 1.0.3 - dev: false /has@1.0.3: resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} @@ -4589,6 +4864,64 @@ packages: minimalistic-crypto-utils: 1.0.1 dev: false + /houdini-svelte@1.2.8: + resolution: {integrity: sha512-yqN8rXrEKvornj7lRgF5nB8nI4U/yJ/Sx1JT1T+mOXC219DKhkkQpYQgiViZH0vw5w0TS/QCQYGbb8wvUtozFQ==} + dependencies: + '@kitql/helper': 0.5.0 + '@sveltejs/kit': 1.22.3(svelte@3.59.2)(vite@4.4.7) + ast-types: 0.16.1 + estree-walker: 3.0.3 + graphql: 15.8.0 + houdini: 1.2.8 + recast: 0.23.3 + rollup: 3.27.0 + svelte: 3.59.2 + vite: 4.4.7(@types/node@20.4.5) + transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + dev: true + + /houdini@1.2.8: + resolution: {integrity: sha512-1SHPUwuCXY7sh9d9VzgB+tqQoopU0PHRoycMFLATV9PV+bHoFJZEQ6OZFsE7bdesjbHFLqSBHZAWvsv1oB054Q==} + hasBin: true + dependencies: + '@babel/parser': 7.22.7 + '@graphql-tools/schema': 9.0.19(graphql@15.8.0) + '@kitql/helper': 0.5.0 + '@types/estree': 1.0.1 + '@types/fs-extra': 9.0.13 + '@types/micromatch': 4.0.2 + '@types/prompts': 2.4.4 + '@ungap/structured-clone': 1.2.0 + ast-types: 0.16.1 + commander: 9.5.0 + deepmerge: 4.3.1 + estree-walker: 3.0.3 + fs-extra: 10.1.0 + glob: 8.1.0 + graphql: 15.8.0 + memfs: 3.5.3 + micromatch: 4.0.5 + minimatch: 5.1.6 + node-fetch: 3.3.2 + npx-import: 1.1.4 + prompts: 2.4.2 + recast: 0.23.3 + vite-plugin-watch-and-run: 1.1.3 + dev: true + + /human-signals@3.0.1: + resolution: {integrity: sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==} + engines: {node: '>=12.20.0'} + dev: true + /humanize-ms@1.2.1: resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} dependencies: @@ -4815,7 +5148,6 @@ packages: dependencies: call-bind: 1.0.2 has-tostringtag: 1.0.0 - dev: false /is-binary-path@2.1.0: resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} @@ -4827,7 +5159,6 @@ packages: /is-callable@1.2.7: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} - dev: false /is-core-module@2.12.1: resolution: {integrity: sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==} @@ -4854,7 +5185,6 @@ packages: engines: {node: '>= 0.4'} dependencies: has-tostringtag: 1.0.0 - dev: false /is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} @@ -4875,6 +5205,14 @@ packages: ip-regex: 4.3.0 dev: false + /is-nan@1.3.2: + resolution: {integrity: sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + dev: true + /is-number@7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} @@ -4895,12 +5233,16 @@ packages: dependencies: '@types/estree': 1.0.1 + /is-stream@3.0.0: + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true + /is-typed-array@1.1.12: resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} engines: {node: '>= 0.4'} dependencies: which-typed-array: 1.1.11 - dev: false /is-typedarray@1.0.0: resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} @@ -5089,6 +5431,14 @@ packages: resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} dev: true + /jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + dependencies: + universalify: 2.0.0 + optionalDependencies: + graceful-fs: 4.2.11 + dev: true + /jsonparse@1.3.1: resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} engines: {'0': node >= 0.2.0} @@ -5117,6 +5467,11 @@ packages: resolution: {integrity: sha512-8t6Q3TclQ4uZynJY9IGr2+SsIGwK9JHcO6ootkHCGA0CrQCRy+VkouYNO2xicET6b9al7QKzpebNow+gkpCL8g==} dev: false + /kleur@3.0.3: + resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} + engines: {node: '>=6'} + dev: true + /kleur@4.1.5: resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} engines: {node: '>=6'} @@ -5284,6 +5639,13 @@ packages: /mdn-data@2.0.30: resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} + /memfs@3.5.3: + resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==} + engines: {node: '>= 4.0.0'} + dependencies: + fs-monkey: 1.0.4 + dev: true + /merge-options@3.0.4: resolution: {integrity: sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ==} engines: {node: '>=10'} @@ -5291,6 +5653,10 @@ packages: is-plain-obj: 2.1.0 dev: false + /merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + dev: true + /merge2@1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} @@ -5319,6 +5685,11 @@ packages: hasBin: true dev: true + /mimic-fn@4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} + dev: true + /min-indent@1.0.1: resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} engines: {node: '>=4'} @@ -5342,6 +5713,13 @@ packages: dependencies: brace-expansion: 1.1.11 + /minimatch@5.1.6: + resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} + engines: {node: '>=10'} + dependencies: + brace-expansion: 2.0.1 + dev: true + /minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} @@ -5487,6 +5865,11 @@ packages: resolution: {integrity: sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==} dev: false + /node-domexception@1.0.0: + resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} + engines: {node: '>=10.5.0'} + dev: true + /node-fetch@2.6.12: resolution: {integrity: sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==} engines: {node: 4.x || >=6.0.0} @@ -5499,6 +5882,15 @@ packages: whatwg-url: 5.0.0 dev: false + /node-fetch@3.3.2: + resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + data-uri-to-buffer: 4.0.1 + fetch-blob: 3.2.0 + formdata-polyfill: 4.0.10 + dev: true + /node-gyp-build@4.6.0: resolution: {integrity: sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==} hasBin: true @@ -5518,6 +5910,22 @@ packages: engines: {node: '>=0.10.0'} dev: true + /npm-run-path@5.1.0: + resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + path-key: 4.0.0 + dev: true + + /npx-import@1.1.4: + resolution: {integrity: sha512-3ShymTWOgqGyNlh5lMJAejLuIv3W1K3fbI5Ewc6YErZU3Sp0PqsNs8UIU1O8z5+KVl/Du5ag56Gza9vdorGEoA==} + dependencies: + execa: 6.1.0 + parse-package-name: 1.0.0 + semver: 7.5.4 + validate-npm-package-name: 4.0.0 + dev: true + /object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} @@ -5532,10 +5940,17 @@ packages: resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} dev: false + /object-is@1.1.5: + resolution: {integrity: sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + dev: true + /object-keys@1.1.1: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} engines: {node: '>= 0.4'} - dev: false /on-exit-leak-free@0.2.0: resolution: {integrity: sha512-dqaz3u44QbRXQooZLTUKU41ZrzYrcvLISVgbrzbyCMxpmSLJvZ3ZamIJIZ29P6OhZIkNIQKosdeM6t1LYbA9hg==} @@ -5546,6 +5961,13 @@ packages: dependencies: wrappy: 1.0.2 + /onetime@6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} + dependencies: + mimic-fn: 4.0.0 + dev: true + /optionator@0.9.3: resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} engines: {node: '>= 0.8.0'} @@ -5629,6 +6051,10 @@ packages: resolution: {integrity: sha512-z6t9dvSJYaPoQq7quMzdEagSFtpGu+utzHqqxmpVWNNZRIXnvqyCvn9XsTdh7c/w0Bqmdz3RB3YnRaKtpRtEXQ==} dev: false + /parse-package-name@1.0.0: + resolution: {integrity: sha512-kBeTUtcj+SkyfaW4+KBe0HtsloBJ/mKTPoxpVdA57GZiPerREsUWJOhVj9anXweFiJkm5y8FG1sxFZkZ0SN6wg==} + dev: true + /path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} @@ -5643,6 +6069,11 @@ packages: engines: {node: '>=8'} dev: true + /path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} + dev: true + /path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} dev: true @@ -5888,6 +6319,14 @@ packages: resolution: {integrity: sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q==} dev: false + /prompts@2.4.2: + resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} + engines: {node: '>= 6'} + dependencies: + kleur: 3.0.3 + sisteransi: 1.0.5 + dev: true + /protobufjs@6.11.3: resolution: {integrity: sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==} hasBin: true @@ -6087,6 +6526,17 @@ packages: engines: {node: '>= 12.13.0'} dev: false + /recast@0.23.3: + resolution: {integrity: sha512-HbCVFh2ANP6a09nzD4lx7XthsxMOJWKX5pIcUwtLrmeEIl3I0DwjCoVXDE0Aobk+7k/mS3H50FK4iuYArpcT6Q==} + engines: {node: '>= 4'} + dependencies: + assert: 2.0.0 + ast-types: 0.16.1 + esprima: 4.0.1 + source-map: 0.6.1 + tslib: 2.6.1 + dev: true + /receptacle@1.3.2: resolution: {integrity: sha512-HrsFvqZZheusncQRiEE7GatOAETrARKV/lnfYicIm8lbvp/JQOdADOfhjBd2DajvoszEyxSM6RlAAIZgEoeu/A==} dependencies: @@ -6197,7 +6647,6 @@ packages: /safe-stable-stringify@2.4.3: resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==} engines: {node: '>=10'} - dev: false /safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} @@ -6277,6 +6726,10 @@ packages: resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} dev: true + /signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + dev: true + /sirv@2.0.3: resolution: {integrity: sha512-O9jm9BsID1P+0HOi81VpXPoDxYP374pkOLzACAoyUQ/3OUVndNpsz6wMnY2z+yOxzbllCKZrM+9QrWsv4THnyA==} engines: {node: '>= 10'} @@ -6286,6 +6739,10 @@ packages: totalist: 3.0.1 dev: true + /sisteransi@1.0.5: + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + dev: true + /siwe-recap@0.0.2-alpha.0(ethers@5.7.2): resolution: {integrity: sha512-xqFUnvrACWW/Q4s5HQ02avg8IyH2RcgkUzfvN4scYaaHErotLVtTGDZkSS0sn/oNK4MXRt83lTqredsvXgt8iA==} peerDependencies: @@ -6334,6 +6791,11 @@ packages: resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} engines: {node: '>=0.10.0'} + /source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + dev: true + /sparse-array@1.3.2: resolution: {integrity: sha512-ZT711fePGn3+kQyLuv1fpd3rNSkNF8vd5Kv2D+qnOANeyKs3fx6bUMGWRPvgTTcYV64QMqZKZwcuaQSP3AZ0tg==} dev: false @@ -6410,6 +6872,11 @@ packages: dependencies: ansi-regex: 5.0.1 + /strip-final-newline@3.0.0: + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: '>=12'} + dev: true + /strip-hex-prefix@1.0.0: resolution: {integrity: sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A==} engines: {node: '>=6.5.0', npm: '>=3'} @@ -6514,6 +6981,15 @@ packages: svelte: 4.1.1 dev: true + /svelte-hmr@0.15.2(svelte@3.59.2): + resolution: {integrity: sha512-q/bAruCvFLwvNbeE1x3n37TYFb3mTBJ6TrCq6p2CoFbSTNhDE9oAtEfpy+wmc9So8AG0Tja+X0/mJzX9tSfvIg==} + engines: {node: ^12.20 || ^14.13.1 || >= 16} + peerDependencies: + svelte: ^3.19.0 || ^4.0.0-next.0 + dependencies: + svelte: 3.59.2 + dev: true + /svelte-hmr@0.15.2(svelte@4.1.1): resolution: {integrity: sha512-q/bAruCvFLwvNbeE1x3n37TYFb3mTBJ6TrCq6p2CoFbSTNhDE9oAtEfpy+wmc9So8AG0Tja+X0/mJzX9tSfvIg==} engines: {node: ^12.20 || ^14.13.1 || >= 16} @@ -6570,6 +7046,11 @@ packages: typescript: 5.1.6 dev: true + /svelte@3.59.2: + resolution: {integrity: sha512-vzSyuGr3eEoAtT/A6bmajosJZIUWySzY2CzB3w2pgPvnkUjGqlDnsNnA0PMO+mMAhuyMul6C2uuZzY6ELSkzyA==} + engines: {node: '>= 8'} + dev: true + /svelte@4.1.1: resolution: {integrity: sha512-Enick5fPFISLoVy0MFK45cG+YlQt6upw8skEK9zzTpJnH1DqEv8xOZwizCGSo3Q6HZ7KrZTM0J18poF7aQg5zw==} engines: {node: '>=16'} @@ -6687,6 +7168,11 @@ packages: engines: {node: '>=14.0.0'} dev: true + /to-fast-properties@2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} + dev: true + /to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} @@ -6801,6 +7287,11 @@ packages: resolution: {integrity: sha512-F9p7yYCn6cIW9El1zi0HI6vqpeIvBsr3dSuRO6Xuppb1u5rXpCPmMvLSyECLhybr9isec8Ohl0hPekMVrEinDA==} dev: false + /universalify@2.0.0: + resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} + engines: {node: '>= 10.0.0'} + dev: true + /update-browserslist-db@1.0.11(browserslist@4.21.9): resolution: {integrity: sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==} hasBin: true @@ -6844,7 +7335,6 @@ packages: is-generator-function: 1.0.10 is-typed-array: 1.1.12 which-typed-array: 1.1.11 - dev: false /uuid@8.3.2: resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} @@ -6855,6 +7345,13 @@ packages: resolution: {integrity: sha512-QQDsV8OnSf5Uc30CKSwG9lnhMPe6exHtTXLRYX8uMwKENy640pU+2BgBL0LRbDh/eYRahNCS7aewCx0wf3NYVA==} dev: false + /validate-npm-package-name@4.0.0: + resolution: {integrity: sha512-mzR0L8ZDktZjpX4OB46KT+56MAhl4EIazWP/+G/HPGuvfdaqg4YsCdtOm6U9+LOFyYDoh4dpnpxZRB9MQQns5Q==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dependencies: + builtins: 5.0.1 + dev: true + /valtio@1.10.3(react@18.2.0): resolution: {integrity: sha512-t3Ez/+baJ+Z5tIyeaI6nCAbW/hrmcq2jditwg/X++o5IvCdiGirQKTOv1kJq0glgUo13v5oABCVGcinggBfiKw==} engines: {node: '>=12.20.0'} @@ -6897,6 +7394,11 @@ packages: use-sync-external-store: 1.2.0(react@18.2.0) dev: false + /value-or-promise@1.0.12: + resolution: {integrity: sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q==} + engines: {node: '>=12'} + dev: true + /varint@6.0.0: resolution: {integrity: sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==} dev: false @@ -6947,6 +7449,13 @@ packages: - terser dev: true + /vite-plugin-watch-and-run@1.1.3: + resolution: {integrity: sha512-wxC2ptj17GmOEvSKp786AeYJvUoqaKqcRLRA+PdlU1RkVdpY+A6gx+As5s9d0KgZXYn0ZVM4qZabeWpVAwqK4A==} + dependencies: + '@kitql/helper': 0.6.1 + micromatch: 4.0.5 + dev: true + /vite@4.4.7(@types/node@20.4.5): resolution: {integrity: sha512-6pYf9QJ1mHylfVh39HpuSfMPojPSKVxZvnclX1K1FyZ1PXDOcLBibdq5t1qxJSnL63ca8Wf4zts6mD8u8oc9Fw==} engines: {node: ^14.18.0 || >=16.0.0} @@ -7057,6 +7566,11 @@ packages: - terser dev: true + /web-streams-polyfill@3.2.1: + resolution: {integrity: sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==} + engines: {node: '>= 8'} + dev: true + /web-vitals@3.4.0: resolution: {integrity: sha512-n9fZ5/bG1oeDkyxLWyep0eahrNcPDF6bFqoyispt7xkW0xhDzpUBTgyDKqWDi1twT0MgH4HvvqzpUyh0ZxZV4A==} dev: false @@ -7085,7 +7599,6 @@ packages: for-each: 0.3.3 gopd: 1.0.1 has-tostringtag: 1.0.0 - dev: false /which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} diff --git a/schema.graphql b/schema.graphql new file mode 100644 index 0000000..d1defc2 --- /dev/null +++ b/schema.graphql @@ -0,0 +1,8154 @@ +directive @enum(value: String) on ENUM_VALUE + +directive @globalOptions(endpoint: String, operationHeaders: ObjMap, queryParams: ObjMap, queryStringOptions: ObjMap, sourceName: String) on OBJECT + +directive @httpOperation(httpMethod: HTTPMethod, isBinary: Boolean, operationSpecificHeaders: ObjMap, path: String, queryParamArgMap: ObjMap, queryStringOptionsByParam: ObjMap, requestBaseBody: ObjMap) on FIELD_DEFINITION + +directive @oneOf on INPUT_OBJECT | INTERFACE | OBJECT + +directive @resolveRoot on FIELD_DEFINITION + +directive @resolveRootField(field: String) on ARGUMENT_DEFINITION | FIELD_DEFINITION | INPUT_FIELD_DEFINITION + +directive @statusCodeTypeName(statusCode: ID, typeName: String) on UNION + +"""APIError is an api error with a message""" +type APIError { + message: String + url: String +} + +""" +Either `null` to set no restrictions or an object with following properties +""" +input AccessRestriction_Input { + """Array of group ids""" + groups: [String] + + """Array of user ids""" + users: [String] +} + +type AccessToken_represents_an_API_access_token_ { + id: BigInt + name: String + scopes: [String] + sha1: String + token_last_eight: String +} + +"""ActivityPub type""" +type ActivityPub { + _AT_context: String +} + +""" +AddCollaboratorOption options when adding a user as a collaborator of a repository +""" +input AddCollaboratorOption_Input { + permission: String +} + +"""AddTimeOption options for adding time to an issue""" +input AddTimeOption_Input { + created: DateTime + + """time in seconds""" + time: BigInt! + + """User who spent the time (optional)""" + user_name: String +} + +type AddonConfig { + """Memory limit in bytes. Example is 256MB""" + memory: Int + + """Swap memory limit in bytes. Example is 512MB""" + memorySwap: Int +} + +input AddonConfig_Input { + """Memory limit in bytes. Example is 256MB""" + memory: Int + + """Swap memory limit in bytes. Example is 512MB""" + memorySwap: Int +} + +"""AnnotatedTag represents an annotated tag""" +type AnnotatedTag { + message: String + object: AnnotatedTagObject + sha: String + tag: String + tagger: CommitUser_contains_information_of_a_user_in_the_context_of_a_commit_ + url: String + verification: PayloadCommitVerification +} + +"""AnnotatedTagObject contains meta information of the tag object""" +type AnnotatedTagObject { + sha: String + type: String + url: String +} + +type App { + appStoreId: String + + """Time the app was installed""" + creationTime: DateTime + domain: String + error: JSON + + """FullQualifiedDomainName is essentially `subdomain`.`domain`""" + fqdn: String + health: String + iconUrl: String + id: String + installationState: String + label: String + manifest: AppManifest + portBindings: PortBindings + runState: String + + """ + This is the subdomain, the app is installed on. May be an empty string if no subdomain is configured + """ + subdomain: String + tags: [JSON] + taskId: String + + """Time the app was last modified""" + ts: DateTime +} + +type AppManifest { + id: String +} + +input AppManifest_Input { + id: String +} + +"""Attachment a generic attachment""" +type Attachment { + browser_download_url: String + created_at: DateTime + download_count: BigInt + id: BigInt + name: String + size: BigInt + uuid: String +} + +type BackupConfig { + acceptSelfSignedCerts: Boolean + + """only for S3 style provider""" + accessKeyId: String + + """only for filesystem provider""" + backupFolder: String + + """only for S3 and gcs style provider""" + bucket: String + credentials: mutationInput_post_cloudron_restore_input_backupConfig_credentials + + """only for S3 style provider""" + endpoint: String + + """only for filesystem provider""" + externalDisk: Boolean + format: BackupFormat + + """ + Interval for automatic backups in seconds. Must be atleast 6 hours (21600 seconds) + """ + intervalSecs: PositiveInt + + """Encyrption key. May contain a placeholder string to not leak the key""" + key: String + + """only for filesystem provider""" + noHardlinks: Boolean + + """only for S3 and gcs style provider""" + prefix: String + + """only for gcs provider""" + projectId: String + provider: mutationInput_post_cloudron_restore_input_backupConfig_provider + + """only for S3 style provider""" + region: String + + """Maximum time to keep backups in seconds (1 week is 604800 seconds)""" + retentionSecs: Int + + """only for S3 style provider""" + secretAccessKey: String + + """only for S3 style provider""" + signatureVersion: String + syncConcurrency: PositiveInt +} + +input BackupConfig_Input { + acceptSelfSignedCerts: Boolean + + """only for S3 style provider""" + accessKeyId: String + + """only for filesystem provider""" + backupFolder: String + + """only for S3 and gcs style provider""" + bucket: String + credentials: mutationInput_post_cloudron_restore_input_backupConfig_credentials_Input + + """only for S3 style provider""" + endpoint: String + + """only for filesystem provider""" + externalDisk: Boolean + format: BackupFormat + + """ + Interval for automatic backups in seconds. Must be atleast 6 hours (21600 seconds) + """ + intervalSecs: PositiveInt + + """Encyrption key. May contain a placeholder string to not leak the key""" + key: String + + """only for filesystem provider""" + noHardlinks: Boolean + + """only for S3 and gcs style provider""" + prefix: String + + """only for gcs provider""" + projectId: String + provider: mutationInput_post_cloudron_restore_input_backupConfig_provider + + """only for S3 style provider""" + region: String + + """Maximum time to keep backups in seconds (1 week is 604800 seconds)""" + retentionSecs: Int + + """only for S3 style provider""" + secretAccessKey: String + + """only for S3 style provider""" + signatureVersion: String + syncConcurrency: PositiveInt +} + +enum BackupFormat { + rsync + targz +} + +""" +The `BigInt` scalar type represents non-fractional signed whole numeric values. +""" +scalar BigInt + +"""Branch represents a repository branch""" +type Branch { + commit: PayloadCommit + effective_branch_protection_name: String + enable_status_check: Boolean + name: String + protected: Boolean + required_approvals: BigInt + status_check_contexts: [String] + user_can_merge: Boolean + user_can_push: Boolean +} + +"""BranchProtection represents a branch protection for a repository""" +type BranchProtection { + approvals_whitelist_teams: [String] + approvals_whitelist_username: [String] + block_on_official_review_requests: Boolean + block_on_outdated_branch: Boolean + block_on_rejected_reviews: Boolean + + """Deprecated: true""" + branch_name: String + created_at: DateTime + dismiss_stale_approvals: Boolean + enable_approvals_whitelist: Boolean + enable_merge_whitelist: Boolean + enable_push: Boolean + enable_push_whitelist: Boolean + enable_status_check: Boolean + merge_whitelist_teams: [String] + merge_whitelist_usernames: [String] + protected_file_patterns: String + push_whitelist_deploy_keys: Boolean + push_whitelist_teams: [String] + push_whitelist_usernames: [String] + require_signed_commits: Boolean + required_approvals: BigInt + rule_name: String + status_check_contexts: [String] + unprotected_file_patterns: String + updated_at: DateTime +} + +"""ChangedFile store information about files affected by the pull request""" +type ChangedFile { + additions: BigInt + changes: BigInt + contents_url: String + deletions: BigInt + filename: String + html_url: String + previous_filename: String + raw_url: String + status: String +} + +type CloudronNameConfig { + name: String! +} + +input CloudronNameConfig_Input { + name: String! = "Cloudron" +} + +""" +CombinedStatus holds the combined state of several statuses for a single commit +""" +type CombinedStatus { + commit_url: String + repository: Repository + sha: String + + """ + CommitStatusState holds the state of a CommitStatus + It can be "pending", "success", "error", "failure", and "warning" + """ + state: String + statuses: [CommitStatus] + total_count: BigInt + url: String +} + +"""Comment represents a comment on a commit or issue""" +type Comment { + assets: [Attachment] + body: String + created_at: DateTime + html_url: String + id: BigInt + issue_url: String + original_author: String + original_author_id: BigInt + pull_request_url: String + updated_at: DateTime + user: User +} + +""" +CommitAffectedFiles store information about files affected by the commit +""" +type CommitAffectedFiles { + filename: String +} + +""" +CommitDateOptions store dates for GIT_AUTHOR_DATE and GIT_COMMITTER_DATE +""" +input CommitDateOptions_Input { + author: DateTime + committer: DateTime +} + +type CommitMeta_contains_meta_information_of_a_commit_in_terms_of_API_ { + created: DateTime + sha: String + url: String +} + +"""CommitStats is statistics for a RepoCommit""" +type CommitStats { + additions: BigInt + deletions: BigInt + total: BigInt +} + +"""CommitStatus holds a single status of a single Commit""" +type CommitStatus { + context: String + created_at: DateTime + creator: User + description: String + id: BigInt + + """ + CommitStatusState holds the state of a CommitStatus + It can be "pending", "success", "error", "failure", and "warning" + """ + status: String + target_url: String + updated_at: DateTime + url: String +} + +type CommitUser_contains_information_of_a_user_in_the_context_of_a_commit_ { + date: String + email: EmailAddress + name: String +} + +type Commit_contains_information_generated_from_a_Git_commit_ { + author: User + commit: RepoCommit_contains_information_of_a_commit_in_the_context_of_a_repository_ + committer: User + created: DateTime + files: [CommitAffectedFiles] + html_url: String + parents: [CommitMeta_contains_meta_information_of_a_commit_in_terms_of_API_] + sha: String + stats: CommitStats + url: String +} + +""" +ContentsResponse contains information about a repo's entry's (dir, file, symlink, submodule) metadata and content +""" +type ContentsResponse { + _links: FileLinksResponse + + """`content` is populated when `type` is `file`, otherwise null""" + content: String + download_url: String + + """`encoding` is populated when `type` is `file`, otherwise null""" + encoding: String + git_url: String + html_url: String + last_commit_sha: String + name: String + path: String + sha: String + size: BigInt + + """ + `submodule_git_url` is populated when `type` is `submodule`, otherwise null + """ + submodule_git_url: String + + """`target` is populated when `type` is `symlink`, otherwise null""" + target: String + + """`type` will be `file`, `dir`, `symlink`, or `submodule`""" + type: String + url: String +} + +"""CreateAccessTokenOption options when create access token""" +input CreateAccessTokenOption_Input { + name: String! + scopes: [String] +} + +"""CreateBranchProtectionOption options for creating a branch protection""" +input CreateBranchProtectionOption_Input { + approvals_whitelist_teams: [String] + approvals_whitelist_username: [String] + block_on_official_review_requests: Boolean + block_on_outdated_branch: Boolean + block_on_rejected_reviews: Boolean + + """Deprecated: true""" + branch_name: String + dismiss_stale_approvals: Boolean + enable_approvals_whitelist: Boolean + enable_merge_whitelist: Boolean + enable_push: Boolean + enable_push_whitelist: Boolean + enable_status_check: Boolean + merge_whitelist_teams: [String] + merge_whitelist_usernames: [String] + protected_file_patterns: String + push_whitelist_deploy_keys: Boolean + push_whitelist_teams: [String] + push_whitelist_usernames: [String] + require_signed_commits: Boolean + required_approvals: BigInt + rule_name: String + status_check_contexts: [String] + unprotected_file_patterns: String +} + +"""CreateBranchRepoOption options when creating a branch in a repository""" +input CreateBranchRepoOption_Input { + """Name of the branch to create""" + new_branch_name: String! + + """Name of the old branch to create from""" + old_branch_name: String +} + +"""CreateEmailOption options when creating email addresses""" +input CreateEmailOption_Input { + """email addresses to add""" + emails: [String] +} + +""" +CreateFileOptions options for creating files +Note: `author` and `committer` are optional (if only one is given, it will be used for the other, otherwise the authenticated user will be used) +""" +input CreateFileOptions_Input { + author: Identity_Input + + """ + branch (optional) to base this file from. if not given, the default branch is used + """ + branch: String + committer: Identity_Input + + """content must be base64 encoded""" + content: String! + dates: CommitDateOptions_Input + + """ + message (optional) for the commit of this file. if not supplied, a default message will be used + """ + message: String + + """ + new_branch (optional) will make a new branch from `branch` before creating the file + """ + new_branch: String + + """ + Add a Signed-off-by trailer by the committer at the end of the commit log message. + """ + signoff: Boolean +} + +"""CreateForkOption options for creating a fork""" +input CreateForkOption_Input { + """name of the forked repository""" + name: String + + """organization name, if forking into an organization""" + organization: String +} + +"""CreateGPGKeyOption options create user GPG key""" +input CreateGPGKeyOption_Input { + """An armored GPG key to add""" + armored_public_key: String! + armored_signature: String +} + +"""CreateHookOption options when create a hook""" +input CreateHookOption_Input { + active: Boolean + authorization_header: String + branch_filter: String + + """ + CreateHookOptionConfig has all config options in it + required are "content_type" and "url" Required + """ + config: JSON! + events: [String] + type: mutationInput_adminCreateHook_input_type! +} + +"""CreateIssueCommentOption options for creating a comment on an issue""" +input CreateIssueCommentOption_Input { + body: String! +} + +"""CreateIssueOption options to create one issue""" +input CreateIssueOption_Input { + """deprecated""" + assignee: String + assignees: [String] + body: String + closed: Boolean + due_date: DateTime + + """list of label ids""" + labels: [BigInt] + + """milestone id""" + milestone: BigInt + ref: String + title: String! +} + +"""CreateKeyOption options when creating a key""" +input CreateKeyOption_Input { + """An armored SSH key to add""" + key: String! + + """Describe if the key has only read access or read/write""" + read_only: Boolean + + """Title of the key to add""" + title: String! +} + +"""CreateLabelOption options for creating a label""" +input CreateLabelOption_Input { + color: String! + description: String + exclusive: Boolean + name: String! +} + +"""CreateMilestoneOption options for creating a milestone""" +input CreateMilestoneOption_Input { + description: String + due_on: DateTime + state: mutationInput_issueCreateMilestone_input_state + title: String +} + +""" +CreateOAuth2ApplicationOptions holds options to create an oauth2 application +""" +input CreateOAuth2ApplicationOptions_Input { + confidential_client: Boolean + name: String + redirect_uris: [String] +} + +"""CreateOrgOption options for creating an organization""" +input CreateOrgOption_Input { + description: String + full_name: String + location: String + repo_admin_change_team_access: Boolean + username: String! + visibility: mutationInput_adminCreateOrg_input_visibility + website: String +} + +"""CreatePullRequestOption options when creating a pull request""" +input CreatePullRequestOption_Input { + assignee: String + assignees: [String] + base: String + body: String + due_date: DateTime + head: String + labels: [BigInt] + milestone: BigInt + title: String +} + +"""CreatePullReviewComment represent a review comment for creation api""" +input CreatePullReviewComment_Input { + body: String + + """if comment to new file line or 0""" + new_position: BigInt + + """if comment to old file line or 0""" + old_position: BigInt + + """the tree path""" + path: String +} + +"""CreatePullReviewOptions are options to create a pull review""" +input CreatePullReviewOptions_Input { + body: String + comments: [CreatePullReviewComment_Input] + commit_id: String + + """ReviewStateType review state type""" + event: String +} + +input CreatePushMirrorOption_represents_need_information_to_create_a_push_mirror_of_a_repository__Input { + interval: String + remote_address: String + remote_password: String + remote_username: String + sync_on_commit: Boolean +} + +"""CreateReleaseOption options when creating a release""" +input CreateReleaseOption_Input { + body: String + draft: Boolean + name: String + prerelease: Boolean + tag_name: String! + target_commitish: String +} + +"""CreateRepoOption options when creating repository""" +input CreateRepoOption_Input { + """Whether the repository should be auto-initialized?""" + auto_init: Boolean + + """ + DefaultBranch of the repository (used when initializes and in template) + """ + default_branch: String + + """Description of the repository to create""" + description: String + + """Gitignores to use""" + gitignores: String + + """Label-Set to use""" + issue_labels: String + + """License to use""" + license: String + + """Name of the repository to create""" + name: String! + + """Whether the repository is private""" + private: Boolean + + """Readme of the repository to create""" + readme: String + + """Whether the repository is template""" + template: Boolean + trust_model: mutationInput_adminCreateRepo_input_trust_model +} + +""" +CreateStatusOption holds the information needed to create a new CommitStatus for a Commit +""" +input CreateStatusOption_Input { + context: String + description: String + + """ + CommitStatusState holds the state of a CommitStatus + It can be "pending", "success", "error", "failure", and "warning" + """ + state: String + target_url: String +} + +"""CreateTagOption options when creating a tag""" +input CreateTagOption_Input { + message: String + tag_name: String! + target: String +} + +"""CreateTeamOption options for creating a team""" +input CreateTeamOption_Input { + can_create_org_repo: Boolean + description: String + includes_all_repositories: Boolean + name: String! + permission: mutationInput_orgCreateTeam_input_permission + units: [String] + units_map: mutationInput_orgCreateTeam_input_units_map_Input +} + +"""CreateUserOption create user options""" +input CreateUserOption_Input { + """ + For explicitly setting the user creation timestamp. Useful when users are + migrated from other systems. When omitted, the user's creation timestamp + will be set to "now". + """ + created_at: DateTime + email: EmailAddress! + full_name: String + login_name: String + must_change_password: Boolean + password: String! + restricted: Boolean + send_notify: Boolean + source_id: BigInt + username: String! + visibility: String +} + +"""CreateWikiPageOptions form for creating wiki""" +input CreateWikiPageOptions_Input { + """content must be base64 encoded""" + content_base64: String + + """optional commit message summarizing the change""" + message: String + + """page title. leave empty to keep unchanged""" + title: String +} + +"""Cron represents a Cron task""" +type Cron { + exec_times: BigInt + name: String + next: DateTime + prev: DateTime + schedule: String +} + +""" +A date-time string at UTC, such as 2007-12-03T10:15:30Z, compliant with the `date-time` format outlined in section 5.6 of the RFC 3339 profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. +""" +scalar DateTime + +"""DeleteEmailOption options when deleting email addresses""" +input DeleteEmailOption_Input { + """email addresses to delete""" + emails: [String] +} + +""" +DeleteFileOptions options for deleting files (used for other File structs below) +Note: `author` and `committer` are optional (if only one is given, it will be used for the other, otherwise the authenticated user will be used) +""" +input DeleteFileOptions_Input { + author: Identity_Input + + """ + branch (optional) to base this file from. if not given, the default branch is used + """ + branch: String + committer: Identity_Input + dates: CommitDateOptions_Input + + """ + message (optional) for the commit of this file. if not supplied, a default message will be used + """ + message: String + + """ + new_branch (optional) will make a new branch from `branch` before creating the file + """ + new_branch: String + + """sha is the SHA for the file that already exists""" + sha: String! + + """ + Add a Signed-off-by trailer by the committer at the end of the commit log message. + """ + signoff: Boolean +} + +"""DeployKey a deploy key""" +type DeployKey { + created_at: DateTime + fingerprint: String + id: BigInt + key: String + key_id: BigInt + read_only: Boolean + repository: Repository + title: String + url: String +} + +"""DismissPullReviewOptions are options to dismiss a pull review""" +input DismissPullReviewOptions_Input { + message: String + priors: Boolean +} + +enum DnsProvider { + cloudflare + digitalocean + gandi + gcdns + godaddy + linode + manual + namecheap + namecom + noop + route53 + wildcard +} + +"""Domain Info""" +type Domain { + banner: query_mail_by_domain_banner + catchAll: [JSON] + domain: String + enabled: Boolean + mailFromValidation: Boolean + relay: query_mail_by_domain_relay +} + +input DomainConfig_Input { + config: JSON! + fallbackCertificate: mutationInput_post_domains_input_allOf_1_fallbackCertificate_Input + hyphenatedSubdomains: Boolean + provider: DnsProvider! + tlsConfig: TlsConfig_Input + wildcard: Boolean + zoneName: String +} + +input DynamicDnsConfig_request_Input { + enabled: Boolean! +} + +"""EditAttachmentOptions options for editing attachments""" +input EditAttachmentOptions_Input { + name: String +} + +"""EditBranchProtectionOption options for editing a branch protection""" +input EditBranchProtectionOption_Input { + approvals_whitelist_teams: [String] + approvals_whitelist_username: [String] + block_on_official_review_requests: Boolean + block_on_outdated_branch: Boolean + block_on_rejected_reviews: Boolean + dismiss_stale_approvals: Boolean + enable_approvals_whitelist: Boolean + enable_merge_whitelist: Boolean + enable_push: Boolean + enable_push_whitelist: Boolean + enable_status_check: Boolean + merge_whitelist_teams: [String] + merge_whitelist_usernames: [String] + protected_file_patterns: String + push_whitelist_deploy_keys: Boolean + push_whitelist_teams: [String] + push_whitelist_usernames: [String] + require_signed_commits: Boolean + required_approvals: BigInt + status_check_contexts: [String] + unprotected_file_patterns: String +} + +"""EditDeadlineOption options for creating a deadline""" +input EditDeadlineOption_Input { + due_date: DateTime! +} + +"""EditGitHookOption options when modifying one Git hook""" +input EditGitHookOption_Input { + content: String +} + +"""EditHookOption options when modify one hook""" +input EditHookOption_Input { + active: Boolean + authorization_header: String + branch_filter: String + config: JSON + events: [String] +} + +"""EditIssueCommentOption options for editing a comment""" +input EditIssueCommentOption_Input { + body: String! +} + +"""EditIssueOption options for editing an issue""" +input EditIssueOption_Input { + """deprecated""" + assignee: String + assignees: [String] + body: String + due_date: DateTime + milestone: BigInt + ref: String + state: String + title: String + unset_due_date: Boolean +} + +"""EditLabelOption options for editing a label""" +input EditLabelOption_Input { + color: String + description: String + exclusive: Boolean + name: String +} + +"""EditMilestoneOption options for editing a milestone""" +input EditMilestoneOption_Input { + description: String + due_on: DateTime + state: String + title: String +} + +"""EditOrgOption options for editing an organization""" +input EditOrgOption_Input { + description: String + full_name: String + location: String + repo_admin_change_team_access: Boolean + visibility: mutationInput_orgEdit_input_visibility + website: String +} + +"""EditPullRequestOption options when modify pull request""" +input EditPullRequestOption_Input { + allow_maintainer_edit: Boolean + assignee: String + assignees: [String] + base: String + body: String + due_date: DateTime + labels: [BigInt] + milestone: BigInt + state: String + title: String + unset_due_date: Boolean +} + +"""EditReactionOption contain the reaction type""" +input EditReactionOption_Input { + content: String +} + +"""EditReleaseOption options when editing a release""" +input EditReleaseOption_Input { + body: String + draft: Boolean + name: String + prerelease: Boolean + tag_name: String + target_commitish: String +} + +"""EditRepoOption options when editing a repository's properties""" +input EditRepoOption_Input { + """ + either `true` to allow mark pr as merged manually, or `false` to prevent it. + """ + allow_manual_merge: Boolean + + """ + either `true` to allow merging pull requests with a merge commit, or `false` to prevent merging pull requests with merge commits. + """ + allow_merge_commits: Boolean + + """ + either `true` to allow rebase-merging pull requests, or `false` to prevent rebase-merging. + """ + allow_rebase: Boolean + + """ + either `true` to allow rebase with explicit merge commits (--no-ff), or `false` to prevent rebase with explicit merge commits. + """ + allow_rebase_explicit: Boolean + + """ + either `true` to allow updating pull request branch by rebase, or `false` to prevent it. + """ + allow_rebase_update: Boolean + + """ + either `true` to allow squash-merging pull requests, or `false` to prevent squash-merging. + """ + allow_squash_merge: Boolean + + """set to `true` to archive this repository.""" + archived: Boolean + + """ + either `true` to enable AutodetectManualMerge, or `false` to prevent it. Note: In some special cases, misjudgments can occur. + """ + autodetect_manual_merge: Boolean + + """set to `true` to allow edits from maintainers by default""" + default_allow_maintainer_edit: Boolean + + """sets the default branch for this repository.""" + default_branch: String + + """set to `true` to delete pr branch after merge by default""" + default_delete_branch_after_merge: Boolean + + """ + set to a merge style to be used by this repository: "merge", "rebase", "rebase-merge", or "squash". + """ + default_merge_style: String + + """a short description of the repository.""" + description: String + + """enable prune - remove obsolete remote-tracking references""" + enable_prune: Boolean + external_tracker: ExternalTracker_Input + external_wiki: ExternalWiki_Input + + """ + either `true` to enable issues for this repository or `false` to disable them. + """ + has_issues: Boolean + + """either `true` to enable project unit, or `false` to disable them.""" + has_projects: Boolean + + """ + either `true` to allow pull requests, or `false` to prevent pull request. + """ + has_pull_requests: Boolean + + """ + either `true` to enable the wiki for this repository or `false` to disable it. + """ + has_wiki: Boolean + + """ + either `true` to ignore whitespace for conflicts, or `false` to not ignore whitespace. + """ + ignore_whitespace_conflicts: Boolean + internal_tracker: InternalTracker_Input + + """set to a string like `8h30m0s` to set the mirror interval time""" + mirror_interval: String + + """name of the repository""" + name: String + + """ + either `true` to make the repository private or `false` to make it public. + Note: you will get a 422 error if the organization restricts changing repository visibility to organization + owners and a non-owner tries to change the value of private. + """ + private: Boolean + + """ + either `true` to make this repository a template or `false` to make it a normal repository + """ + template: Boolean + + """a URL with more information about the repository.""" + website: String +} + +"""EditTeamOption options for editing a team""" +input EditTeamOption_Input { + can_create_org_repo: Boolean + description: String + includes_all_repositories: Boolean + name: String! + permission: mutationInput_orgEditTeam_input_permission + units: [String] + units_map: mutationInput_orgEditTeam_input_units_map_Input +} + +"""EditUserOption edit user options""" +input EditUserOption_Input { + active: Boolean + admin: Boolean + allow_create_organization: Boolean + allow_git_hook: Boolean + allow_import_local: Boolean + description: String + email: EmailAddress + full_name: String + location: String + login_name: String! + max_repo_creation: BigInt + must_change_password: Boolean + password: String + prohibit_login: Boolean + restricted: Boolean + source_id: BigInt! + visibility: String + website: String +} + +"""Email an email address belonging to a user""" +type Email { + email: EmailAddress + primary: Boolean + verified: Boolean +} + +""" +A field whose value conforms to the standard internet email address format as specified in HTML Spec: https://html.spec.whatwg.org/multipage/input.html#valid-e-mail-address. +""" +scalar EmailAddress + +input EnableMailboxes_request_Input { + enabled: Boolean! +} + +type ExternalLdapConfig { + autoCreate: Boolean + baseDn: String! + bindDn: String + bindPassword: String + filter: String! + provider: mutationInput_post_settings_external_ldap_config_input_provider! + url: String! + usernameField: String +} + +input ExternalLdapConfig_Input { + autoCreate: Boolean + baseDn: String! + bindDn: String + bindPassword: String + filter: String! + provider: mutationInput_post_settings_external_ldap_config_input_provider! + url: String! + usernameField: String = "uid" +} + +"""ExternalTracker represents settings for external tracker""" +type ExternalTracker { + """ + External Issue Tracker URL Format. Use the placeholders {user}, {repo} and {index} for the username, repository name and issue index. + """ + external_tracker_format: String + + """External Issue Tracker issue regular expression""" + external_tracker_regexp_pattern: String + + """ + External Issue Tracker Number Format, either `numeric`, `alphanumeric`, or `regexp` + """ + external_tracker_style: String + + """URL of external issue tracker.""" + external_tracker_url: String +} + +"""ExternalTracker represents settings for external tracker""" +input ExternalTracker_Input { + """ + External Issue Tracker URL Format. Use the placeholders {user}, {repo} and {index} for the username, repository name and issue index. + """ + external_tracker_format: String + + """External Issue Tracker issue regular expression""" + external_tracker_regexp_pattern: String + + """ + External Issue Tracker Number Format, either `numeric`, `alphanumeric`, or `regexp` + """ + external_tracker_style: String + + """URL of external issue tracker.""" + external_tracker_url: String +} + +"""ExternalWiki represents setting for external wiki""" +type ExternalWiki { + """URL of external wiki.""" + external_wiki_url: String +} + +"""ExternalWiki represents setting for external wiki""" +input ExternalWiki_Input { + """URL of external wiki.""" + external_wiki_url: String +} + +"""The `File` scalar type represents a file upload.""" +scalar File + +type FileCommitResponse_contains_information_generated_from_a_Git_commit_for_a_repo_SINGLE_QUOTE_s_file_ { + author: CommitUser_contains_information_of_a_user_in_the_context_of_a_commit_ + committer: CommitUser_contains_information_of_a_user_in_the_context_of_a_commit_ + created: DateTime + html_url: String + message: String + parents: [CommitMeta_contains_meta_information_of_a_commit_in_terms_of_API_] + sha: String + tree: CommitMeta_contains_meta_information_of_a_commit_in_terms_of_API_ + url: String +} + +""" +FileDeleteResponse contains information about a repo's file that was deleted +""" +type FileDeleteResponse { + commit: FileCommitResponse_contains_information_generated_from_a_Git_commit_for_a_repo_SINGLE_QUOTE_s_file_ + content: JSON + verification: PayloadCommitVerification +} + +"""FileLinksResponse contains the links for a repo's file""" +type FileLinksResponse { + git: String + html: String + self: String +} + +"""FileResponse contains information about a repo's file""" +type FileResponse { + commit: FileCommitResponse_contains_information_generated_from_a_Git_commit_for_a_repo_SINGLE_QUOTE_s_file_ + content: ContentsResponse + verification: PayloadCommitVerification +} + +"""GPGKey a user GPG key to sign commit and tag in repository""" +type GPGKey { + can_certify: Boolean + can_encrypt_comms: Boolean + can_encrypt_storage: Boolean + can_sign: Boolean + created_at: DateTime + emails: [GPGKeyEmail] + expires_at: DateTime + id: BigInt + key_id: String + primary_key_id: String + public_key: String + subkeys: [GPGKey] + verified: Boolean +} + +"""GPGKeyEmail an email attached to a GPGKey""" +type GPGKeyEmail { + email: String + verified: Boolean +} + +"""GeneralAPISettings contains global api settings exposed by it""" +type GeneralAPISettings { + default_git_trees_per_page: BigInt + default_max_blob_size: BigInt + default_paging_num: BigInt + max_response_items: BigInt +} + +""" +GeneralAttachmentSettings contains global Attachment settings exposed by API +""" +type GeneralAttachmentSettings { + allowed_types: String + enabled: Boolean + max_files: BigInt + max_size: BigInt +} + +"""GeneralRepoSettings contains global repository settings exposed by API""" +type GeneralRepoSettings { + http_git_disabled: Boolean + lfs_disabled: Boolean + migrations_disabled: Boolean + mirrors_disabled: Boolean + stars_disabled: Boolean + time_tracking_disabled: Boolean +} + +"""GeneralUISettings contains global ui settings exposed by API""" +type GeneralUISettings { + allowed_reactions: [String] + custom_emojis: [String] + default_theme: String +} + +"""GenerateRepoOption options when creating repository using a template""" +input GenerateRepoOption_Input { + """include avatar of the template repo""" + avatar: Boolean + + """Default branch of the new repository""" + default_branch: String + + """Description of the repository to create""" + description: String + + """include git content of default branch in template repo""" + git_content: Boolean + + """include git hooks in template repo""" + git_hooks: Boolean + + """include labels in template repo""" + labels: Boolean + + """Name of the repository to create""" + name: String! + + """The organization or person who will own the new repository""" + owner: String! + + """Whether the repository is private""" + private: Boolean + + """include topics in template repo""" + topics: Boolean + + """include webhooks in template repo""" + webhooks: Boolean +} + +"""GitBlobResponse represents a git blob""" +type GitBlobResponse { + content: String + encoding: String + sha: String + size: BigInt + url: String +} + +"""GitEntry represents a git tree""" +type GitEntry { + mode: String + path: String + sha: String + size: BigInt + type: String + url: String +} + +"""GitHook represents a Git repository hook""" +type GitHook { + content: String + is_active: Boolean + name: String +} + +type GitObject_represents_a_Git_object_ { + sha: String + type: String + url: String +} + +"""GitTreeResponse returns a git tree""" +type GitTreeResponse { + page: BigInt + sha: String + total_count: BigInt + tree: [GitEntry] + truncated: Boolean + url: String +} + +type Group { + id: String + name: String +} + +type GroupWithMembers { + id: String + name: String + userIds: [String] +} + +input Group_request_Input { + name: String! +} + +enum HTTPMethod { + CONNECT + DELETE + GET + HEAD + OPTIONS + PATCH + POST + PUT + TRACE +} + +"""Hook a hook is a web hook when one repository changed""" +type Hook { + active: Boolean + authorization_header: String + config: JSON + created_at: DateTime + events: [String] + id: BigInt + type: String + updated_at: DateTime +} + +"""Identity for a person's identity like an author or committer""" +input Identity_Input { + email: EmailAddress + name: String +} + +"""InternalTracker represents settings for internal tracker""" +type InternalTracker { + """Let only contributors track time (Built-in issue tracker)""" + allow_only_contributors_to_track_time: Boolean + + """ + Enable dependencies for issues and pull requests (Built-in issue tracker) + """ + enable_issue_dependencies: Boolean + + """Enable time tracking (Built-in issue tracker)""" + enable_time_tracker: Boolean +} + +"""InternalTracker represents settings for internal tracker""" +input InternalTracker_Input { + """Let only contributors track time (Built-in issue tracker)""" + allow_only_contributors_to_track_time: Boolean + + """ + Enable dependencies for issues and pull requests (Built-in issue tracker) + """ + enable_issue_dependencies: Boolean + + """Enable time tracking (Built-in issue tracker)""" + enable_time_tracker: Boolean +} + +"""Issue represents an issue in a repository""" +type Issue { + assets: [Attachment] + assignee: User + assignees: [User] + body: String + closed_at: DateTime + comments: BigInt + created_at: DateTime + due_date: DateTime + html_url: String + id: BigInt + is_locked: Boolean + labels: [Label] + milestone: Milestone + number: BigInt + original_author: String + original_author_id: BigInt + pull_request: PullRequestMeta + ref: String + repository: RepositoryMeta + + """StateType issue state type""" + state: String + title: String + updated_at: DateTime + url: String + user: User +} + +"""IssueDeadline represents an issue deadline""" +type IssueDeadline { + due_date: DateTime +} + +"""IssueFormField represents a form field""" +type IssueFormField { + attributes: JSON + id: String + type: String + validations: JSON +} + +"""IssueLabelsOption a collection of labels""" +input IssueLabelsOption_Input { + """list of label IDs""" + labels: [BigInt] +} + +"""IssueTemplate represents an issue template for a repository""" +type IssueTemplate { + about: String + body: [IssueFormField] + content: String + file_name: String + labels: [String] + name: String + ref: String + title: String +} + +""" +The `JSON` scalar type represents JSON values as specified by [ECMA-404](http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf). +""" +scalar JSON + +"""Label a label to an issue or a pr""" +type Label { + color: String + description: String + exclusive: Boolean + id: BigInt + name: String + url: String +} + +"""Mail SMTP relay provider""" +enum MailRelayProvider { + cloudron_smtp + elasticemail_smtp + external_smtp + external_smtp_noauth + google_smtp + mailgun_smtp + mailjet_smtp + noop + postmark_smtp + sendgrid_smtp + ses_smtp + sparkpost_smtp +} + +"""Mailbox""" +type Mailbox { + aliases: [JSON] + domain: String + name: String + ownerId: String + ownerType: String +} + +"""MarkdownOption markdown options""" +input MarkdownOption_Input { + """ + Context to render + + in: body + """ + Context: String + + """ + Mode to render + + in: body + """ + Mode: String + + """ + Text markdown to render + + in: body + """ + Text: String + + """ + Is it a wiki page ? + + in: body + """ + Wiki: Boolean +} + +"""MergePullRequestForm form for merging Pull Request""" +input MergePullRequestOption_Input { + Do: mutationInput_repoMergePullRequest_input_Do! + MergeCommitID: String + MergeMessageField: String + MergeTitleField: String + delete_branch_after_merge: Boolean + force_merge: Boolean + head_commit_id: String + merge_when_checks_succeed: Boolean +} + +""" +MigrateRepoOptions options for migrating repository's +this is used to interact with api v1 +""" +input MigrateRepoOptions_Input { + auth_password: String + auth_token: String + auth_username: String + clone_addr: String! + description: String + issues: Boolean + labels: Boolean + lfs: Boolean + lfs_endpoint: String + milestones: Boolean + mirror: Boolean + mirror_interval: String + private: Boolean + pull_requests: Boolean + releases: Boolean + repo_name: String! + + """Name of User or Organisation who will own Repo after migration""" + repo_owner: String + service: mutationInput_repoMigrate_input_service + + """deprecated (only for backwards compatibility)""" + uid: BigInt + wiki: Boolean +} + +"""Milestone milestone is a collection of issues on one repository""" +type Milestone { + closed_at: DateTime + closed_issues: BigInt + created_at: DateTime + description: String + due_on: DateTime + id: BigInt + open_issues: BigInt + + """StateType issue state type""" + state: String + title: String + updated_at: DateTime +} + +type Mutation { + """Accept a repo transfer""" + acceptRepoTransfer( + """owner of the repo to transfer""" + owner: String! + + """name of the repo to transfer""" + repo: String! + ): Repository + + """Send to the inbox""" + activitypubPersonInbox( + """user ID of the user""" + user_id: Int! + ): Void + + """Adopt unadopted files as a repository""" + adminAdoptRepository( + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): Void + + """Create a hook""" + adminCreateHook(input: CreateHookOption_Input!): Hook + + """Create an organization""" + adminCreateOrg( + input: CreateOrgOption_Input! + + """username of the user that will own the created organization""" + username: String! + ): Organization + + """Add a public key on behalf of a user""" + adminCreatePublicKey( + input: CreateKeyOption_Input + + """username of the user""" + username: String! + ): PublicKey + + """Create a repository on behalf of a user""" + adminCreateRepo( + input: CreateRepoOption_Input! + + """username of the user. This user will own the created repository""" + username: String! + ): Repository + + """Create a user""" + adminCreateUser(input: CreateUserOption_Input): User + + """Run cron task""" + adminCronRun( + """task to run""" + task: String! + ): Void + + """Delete a hook""" + adminDeleteHook( + """id of the hook to delete""" + id: BigInt! + ): Void + + """Delete unadopted files""" + adminDeleteUnadoptedRepository( + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): Void + + """Delete a user""" + adminDeleteUser( + """purge the user from the system completely""" + purge: Boolean + + """username of user to delete""" + username: String! + ): Void + + """Delete a user's public key""" + adminDeleteUserPublicKey( + """id of the key to delete""" + id: BigInt! + + """username of user""" + username: String! + ): Void + + """Update a hook""" + adminEditHook( + """id of the hook to update""" + id: BigInt! + input: EditHookOption_Input + ): Hook + + """Edit an existing user""" + adminEditUser( + input: EditUserOption_Input + + """username of user to edit""" + username: String! + ): User + + """Create a repository""" + createCurrentUserRepo(input: CreateRepoOption_Input!): Repository + + """Fork a repository""" + createFork( + input: CreateForkOption_Input + + """owner of the repo to fork""" + owner: String! + + """name of the repo to fork""" + repo: String! + ): Repository + + """Create a repository in an organization""" + createOrgRepo( + input: CreateRepoOption_Input! + + """name of organization""" + org: String! + ): Repository + + """Create a repository in an organization""" + createOrgRepoDeprecated( + input: CreateRepoOption_Input! + + """name of organization""" + org: String! + ): Repository + + """Delete a package""" + deletePackage( + """name of the package""" + name: String! + + """owner of the package""" + owner: String! + + """type of the package""" + type: String! + + """version of the package""" + version: String! + ): Void + + """Remove Domain""" + delete_domains_by_domain( + """Domain""" + domain: String! + ): Void + + """Delete group""" + delete_groups_by_groupId( + """Group ID""" + groupId: String! + ): Void + + """Delete mailbox.""" + delete_mail_by_domain_mailboxes_by_name( + """Domain""" + domain: String! + input: delete_mail_by_domain_mailboxes_by_name_request_Input + + """Mailbox""" + name: String! + ): JSON + + """Delete user""" + delete_users_by_userId( + """User ID""" + userId: String! + ): Void + + """Create a repository using a template""" + generateRepo( + input: GenerateRepoOption_Input + + """name of the template repository owner""" + template_owner: String! + + """name of the template repository""" + template_repo: String! + ): Repository + + """Add a label to an issue""" + issueAddLabel( + """index of the issue""" + index: BigInt! + input: IssueLabelsOption_Input + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): [Label] + + """Subscribe user to issue""" + issueAddSubscription( + """index of the issue""" + index: BigInt! + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + + """user to subscribe""" + user: String! + ): JSON + + """Add tracked time to a issue""" + issueAddTime( + """index of the issue""" + index: BigInt! + input: AddTimeOption_Input + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): TrackedTime + + """Remove all labels from an issue""" + issueClearLabels( + """index of the issue""" + index: BigInt! + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): Void + + """Add a comment to an issue""" + issueCreateComment( + """index of the issue""" + index: BigInt! + input: CreateIssueCommentOption_Input + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): Comment + + """ + Create an issue. If using deadline only the date will be taken into account, and time of day ignored. + """ + issueCreateIssue( + input: CreateIssueOption_Input + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): Issue + + """Create an issue attachment""" + issueCreateIssueAttachment( + """index of the issue""" + index: BigInt! + + """name of the attachment""" + name: String + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): Attachment + + """Create a comment attachment""" + issueCreateIssueCommentAttachment( + """id of the comment""" + id: BigInt! + + """name of the attachment""" + name: String + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): Attachment + + """Create a label""" + issueCreateLabel( + input: CreateLabelOption_Input + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): Label + + """Create a milestone""" + issueCreateMilestone( + input: CreateMilestoneOption_Input + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): Milestone + + """Delete an issue""" + issueDelete( + """index of issue to delete""" + index: BigInt! + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): Void + + """Delete a comment""" + issueDeleteComment( + """id of comment to delete""" + id: BigInt! + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): Void + + """Delete a comment""" + issueDeleteCommentDeprecated( + """id of comment to delete""" + id: BigInt! + + """this parameter is ignored""" + index: Int! + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): Void + + """Remove a reaction from a comment of an issue""" + issueDeleteCommentReaction( + """id of the comment to edit""" + id: BigInt! + input: EditReactionOption_Input + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): JSON + + """Delete an issue attachment""" + issueDeleteIssueAttachment( + """id of the attachment to delete""" + attachment_id: BigInt! + + """index of the issue""" + index: BigInt! + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): Void + + """Delete a comment attachment""" + issueDeleteIssueCommentAttachment( + """id of the attachment to delete""" + attachment_id: BigInt! + + """id of the comment""" + id: BigInt! + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): Void + + """Remove a reaction from an issue""" + issueDeleteIssueReaction( + """index of the issue""" + index: BigInt! + input: EditReactionOption_Input + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): JSON + + """Delete a label""" + issueDeleteLabel( + """id of the label to delete""" + id: BigInt! + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): Void + + """Delete a milestone""" + issueDeleteMilestone( + """the milestone to delete, identified by ID and if not available by name""" + id: String! + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): Void + + """Delete an issue's existing stopwatch.""" + issueDeleteStopWatch( + """index of the issue to stop the stopwatch on""" + index: BigInt! + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): Void + + """Unsubscribe user from issue""" + issueDeleteSubscription( + """index of the issue""" + index: BigInt! + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + + """user witch unsubscribe""" + user: String! + ): JSON + + """Delete specific tracked time""" + issueDeleteTime( + """id of time to delete""" + id: BigInt! + + """index of the issue""" + index: BigInt! + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): Void + + """Edit a comment""" + issueEditComment( + """id of the comment to edit""" + id: BigInt! + input: EditIssueCommentOption_Input + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): issueEditComment_response + + """Edit a comment""" + issueEditCommentDeprecated( + """id of the comment to edit""" + id: BigInt! + + """this parameter is ignored""" + index: Int! + input: EditIssueCommentOption_Input + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): issueEditCommentDeprecated_response + + """ + Edit an issue. If using deadline only the date will be taken into account, and time of day ignored. + """ + issueEditIssue( + """index of the issue to edit""" + index: BigInt! + input: EditIssueOption_Input + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): Issue + + """Edit an issue attachment""" + issueEditIssueAttachment( + """id of the attachment to edit""" + attachment_id: BigInt! + + """index of the issue""" + index: BigInt! + input: EditAttachmentOptions_Input + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): Attachment + + """Edit a comment attachment""" + issueEditIssueCommentAttachment( + """id of the attachment to edit""" + attachment_id: BigInt! + + """id of the comment""" + id: BigInt! + input: EditAttachmentOptions_Input + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): Attachment + + """ + Set an issue deadline. If set to null, the deadline is deleted. If using deadline only the date will be taken into account, and time of day ignored. + """ + issueEditIssueDeadline( + """index of the issue to create or update a deadline on""" + index: BigInt! + input: EditDeadlineOption_Input + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): IssueDeadline + + """Update a label""" + issueEditLabel( + """id of the label to edit""" + id: BigInt! + input: EditLabelOption_Input + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): Label + + """Update a milestone""" + issueEditMilestone( + """the milestone to edit, identified by ID and if not available by name""" + id: String! + input: EditMilestoneOption_Input + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): Milestone + + """Add a reaction to a comment of an issue""" + issuePostCommentReaction( + """id of the comment to edit""" + id: BigInt! + input: EditReactionOption_Input + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): Reaction + + """Add a reaction to an issue""" + issuePostIssueReaction( + """index of the issue""" + index: BigInt! + input: EditReactionOption_Input + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): Reaction + + """Remove a label from an issue""" + issueRemoveLabel( + """id of the label to remove""" + id: BigInt! + + """index of the issue""" + index: BigInt! + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): Void + + """Replace an issue's labels""" + issueReplaceLabels( + """index of the issue""" + index: BigInt! + input: IssueLabelsOption_Input + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): [Label] + + """Reset a tracked time of an issue""" + issueResetTime( + """index of the issue to add tracked time to""" + index: BigInt! + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): Void + + """Start stopwatch on an issue.""" + issueStartStopWatch( + """index of the issue to create the stopwatch on""" + index: BigInt! + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): JSON + + """Stop an issue's existing stopwatch.""" + issueStopStopWatch( + """index of the issue to stop the stopwatch on""" + index: BigInt! + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): JSON + + """Mark notification threads as read, pinned or unread""" + notifyReadList( + """If true, mark all notifications on this repo. Default value is false""" + all: String + + """ + Describes the last point that notifications were checked. Anything updated since this time will not be updated. + """ + last_read_at: DateTime + + """ + Mark notifications with the provided status types. Options are: unread, read and/or pinned. Defaults to unread. + """ + status_types: [String] + + """Status to mark notifications as, Defaults to read.""" + to_status: String + ): [NotificationThread] + + """Mark notification threads as read, pinned or unread on a specific repo""" + notifyReadRepoList( + """If true, mark all notifications on this repo. Default value is false""" + all: String + + """ + Describes the last point that notifications were checked. Anything updated since this time will not be updated. + """ + last_read_at: DateTime + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + + """ + Mark notifications with the provided status types. Options are: unread, read and/or pinned. Defaults to unread. + """ + status_types: [String] + + """Status to mark notifications as. Defaults to read.""" + to_status: String + ): [NotificationThread] + + """Mark notification thread as read by ID""" + notifyReadThread( + """id of notification thread""" + id: String! + + """Status to mark notifications as""" + to_status: String = "read" + ): NotificationThread + + """Add a team member""" + orgAddTeamMember( + """id of the team""" + id: BigInt! + + """username of the user to add""" + username: String! + ): Void + + """Add a repository to a team""" + orgAddTeamRepository( + """id of the team""" + id: BigInt! + + """organization that owns the repo to add""" + org: String! + + """name of the repo to add""" + repo: String! + ): Void + + """Conceal a user's membership""" + orgConcealMember( + """name of the organization""" + org: String! + + """username of the user""" + username: String! + ): Void + + """Create an organization""" + orgCreate(input: CreateOrgOption_Input!): Organization + + """Create a hook""" + orgCreateHook( + input: CreateHookOption_Input! + + """name of the organization""" + org: String! + ): Hook + + """Create a label for an organization""" + orgCreateLabel( + input: CreateLabelOption_Input + + """name of the organization""" + org: String! + ): Label + + """Create a team""" + orgCreateTeam( + input: CreateTeamOption_Input + + """name of the organization""" + org: String! + ): Team + + """Delete an organization""" + orgDelete( + """organization that is to be deleted""" + org: String! + ): Void + + """Delete a hook""" + orgDeleteHook( + """id of the hook to delete""" + id: BigInt! + + """name of the organization""" + org: String! + ): Void + + """Delete a label""" + orgDeleteLabel( + """id of the label to delete""" + id: BigInt! + + """name of the organization""" + org: String! + ): Void + + """Remove a member from an organization""" + orgDeleteMember( + """name of the organization""" + org: String! + + """username of the user""" + username: String! + ): Void + + """Delete a team""" + orgDeleteTeam( + """id of the team to delete""" + id: BigInt! + ): Void + + """Edit an organization""" + orgEdit( + input: EditOrgOption_Input! + + """name of the organization to edit""" + org: String! + ): Organization + + """Update a hook""" + orgEditHook( + """id of the hook to update""" + id: BigInt! + input: EditHookOption_Input + + """name of the organization""" + org: String! + ): Hook + + """Update a label""" + orgEditLabel( + """id of the label to edit""" + id: BigInt! + input: EditLabelOption_Input + + """name of the organization""" + org: String! + ): Label + + """Edit a team""" + orgEditTeam( + """id of the team to edit""" + id: Int! + input: EditTeamOption_Input + ): Team + + """Publicize a user's membership""" + orgPublicizeMember( + """name of the organization""" + org: String! + + """username of the user""" + username: String! + ): Void + + """Remove a team member""" + orgRemoveTeamMember( + """id of the team""" + id: BigInt! + + """username of the user to remove""" + username: String! + ): Void + + """ + This does not delete the repository, it only removes the repository from the team. + """ + orgRemoveTeamRepository( + """id of the team""" + id: BigInt! + + """organization that owns the repo to remove""" + org: String! + + """name of the repo to remove""" + repo: String! + ): Void + + """Create a backup for an app""" + post_apps_by_appid_backup: post_apps_by_appid_backup_202_response + + """Update meta info and retention for this backup.""" + post_apps_by_appid_backups_by_backupId( + """Backup ID""" + backupId: String! + input: post_apps_by_appid_backups_by_backupId_request_Input + ): JSON + + """ + Clone app identified by appid from a backup to a new instance with the same version and data + """ + post_apps_by_appid_clone(input: post_apps_by_appid_clone_request_Input): post_apps_by_appid_clone_201_response + + """ + Configure access to apps for Cloudron usermanagement or dashboard visibility + """ + post_apps_by_appid_configure_access_restriction(input: post_apps_by_appid_configure_access_restriction_request_Input): JSON + + """Enable or disable the automatic backup""" + post_apps_by_appid_configure_automatic_backup(input: post_apps_by_appid_configure_automatic_backup_request_Input): post_apps_by_appid_configure_automatic_backup_202_response + + """Configure the domain, subdomain, alias of an app""" + post_apps_by_appid_configure_location(input: post_apps_by_appid_configure_location_request_Input): post_apps_by_appid_configure_location_202_response + + """Increase or the decrease the allocated memory limit""" + post_apps_by_appid_configure_memory_limit(input: post_apps_by_appid_configure_memory_limit_request_Input): post_apps_by_appid_configure_memory_limit_202_response + + """Restart an installed app""" + post_apps_by_appid_restart: post_apps_by_appid_restart_202_response + + """Restore an app from a specific backup""" + post_apps_by_appid_restore(input: post_apps_by_appid_restore_request_Input): post_apps_by_appid_restore_202_response + + """Start a stopped app""" + post_apps_by_appid_start: post_apps_by_appid_start_202_response + + """Stop a running app""" + post_apps_by_appid_stop: post_apps_by_appid_stop_202_response + + """Uninstall an app""" + post_apps_by_appid_uninstall: post_apps_by_appid_uninstall_202_response + + """ + This triggers an app installation. Use the `taskId` from the response with the Tasks API to follow the installation progress

**Either `manifest` or `appStoreId` are required!** In most cases the `appStoreId` is the correct property to be used for installing apps from the Cloudron app catalogue. + """ + post_apps_install(input: post_apps_install_request_Input): post_apps_install_200_response + + """ + Register this Cloudron with cloudron.io AppStore and enable access to the app library. + """ + post_appstore_register_cloudron(input: post_appstore_register_cloudron_request_Input): JSON + + """ + Based on the backup creation and `retentionSecs` specified in the backup config, backups will be purged. This should not need to be called manually as the same logic is called automatically very 6 hours. + """ + post_backups_cleanup: post_backups_cleanup_202_response + + """ + This will trigger a new backup for the whole system, including all apps. + """ + post_backups_create: post_backups_create_202_response + + """ + Public route to activate the Cloudron. This creates the first user (aka owner) account.

Before installing apps, the Cloudron must be registered with a valid Appstore account as well using the 'Register Cloudron' route. + """ + post_cloudron_activate(input: post_cloudron_activate_request_Input): post_cloudron_activate_201_response + + """Login to the Cloudron API to obtain an access token""" + post_cloudron_login(input: post_cloudron_login_request_Input): post_cloudron_login_200_response + + """Renew SSL certificates of all or optionally provided domains""" + post_cloudron_renew_certs(input: post_cloudron_renew_certs_request_Input): post_cloudron_renew_certs_202_response + + """ + Public route to restore a whole Cloudron from backup. This is only available until the Cloudron is activated. + """ + post_cloudron_restore(input: post_cloudron_restore_request_Input): JSON + + """ + Public route and very first call to setup the dashboard domain. +

+ This call has to be made against the raw IP address (eg. https://1.2.3.4 ) accepting self-signed certificates. +

+ A curl example could look like:
+ ```curl -k -X POST -H 'Content-Type: application/json' --data '{...}' http://1.2.3.4/api/v1/cloudron/setup``` +

+ Once called, the process can be tracked through the `setup` object in the `/api/v1/cloudron/status` API reply. + After the status API returns a success, future API requests must be made to `https://my.domain.com`. +

+ This routes gets disabled once the Cloudron has been activated. + + """ + post_cloudron_setup(input: post_cloudron_setup_request_Input): JSON + + """Add a new domain""" + post_domains(input: post_domains_request_Input): JSON + + """Update Domain""" + post_domains_by_domain( + """Domain""" + domain: String! + input: DomainConfig_Input + ): Void + + """Add group""" + post_groups(input: Group_request_Input): Group + + """Update group""" + post_groups_by_groupId( + """Group ID""" + groupId: String! + input: Group_request_Input + ): JSON + + """Set Mail Signature""" + post_mail_by_domain_banner( + """Domain""" + domain: String! + input: post_mail_by_domain_banner_request_Input + ): JSON + + """Set Catchall addresses""" + post_mail_by_domain_catch_all( + """Domain""" + domain: String! + input: post_mail_by_domain_catch_all_request_Input + ): JSON + + """ + Enable incoming email for the domain to receive emails. By default, only email sending is enabled. + """ + post_mail_by_domain_enable( + """Domain""" + domain: String! + input: EnableMailboxes_request_Input + ): JSON + + """Set Mail From Validation""" + post_mail_by_domain_mail_from_validation( + """Domain""" + domain: String! + input: EnableMailboxes_request_Input + ): JSON + + """Add mailbox.""" + post_mail_by_domain_mailboxes( + """Domain""" + domain: String! + input: post_mail_by_domain_mailboxes_request_Input + ): JSON + + """Update mailbox.""" + post_mail_by_domain_mailboxes_by_name( + """Domain""" + domain: String! + + """Mailbox""" + name: String! + ): Void + + """Configure a SMTP relay for this domain""" + post_mail_by_domain_relay( + """Domain""" + domain: String! + input: post_mail_by_domain_relay_request_Input + ): JSON + + """Sent a test mail from domain.""" + post_mail_by_domain_send_test_mail( + """Domain""" + domain: String! + input: post_mail_by_domain_send_test_mail_request_Input + ): JSON + + """Set notification acknowledged state""" + post_notifications_by_notificationId( + """Notification Id""" + notificationId: String! + ): Void + + """Configure Service""" + post_services_by_service(input: post_services_by_service_request_Input, service: ServiceName_parameter!): JSON + + """Restart Service""" + post_services_by_service_restart(service: ServiceName_parameter!): JSON + + """Set Apps Autoupdate Pattern""" + post_settings_app_autoupdate_pattern(input: UpdatePattern_Input): JSON + + """Set Backup Config""" + post_settings_backup_config(input: BackupConfig_Input): JSON + + """Set Cloudron Autoupdate Pattern""" + post_settings_box_autoupdate_pattern(input: UpdatePattern_Input): JSON + + """Set Cloudron Avatar""" + post_settings_cloudron_avatar(input: post_settings_cloudron_avatar_request_Input): JSON + + """Set Cloudron Name""" + post_settings_cloudron_name(input: CloudronNameConfig_Input): JSON + + """Set Dynamic DNS State""" + post_settings_dynamic_dns(input: DynamicDnsConfig_request_Input): JSON + + """Set External LDAP Config""" + post_settings_external_ldap_config(input: ExternalLdapConfig_Input): JSON + + """Set Platform Config""" + post_settings_platform_config(input: PlatformConfig_Input): JSON + + """Set Registry Config""" + post_settings_registry_config(input: RegistryConfig_Input): JSON + + """Set Sysinfo Config""" + post_settings_sysinfo_config(input: SysinfoConfig_Input): JSON + + """Set Timezone""" + post_settings_time_zone(input: TimezoneConfig_Input): JSON + + """Set Unstable Apps State""" + post_settings_unstable_apps(input: DynamicDnsConfig_request_Input): JSON + + """Stop Task""" + post_tasks_by_taskId_stop( + """Task ID""" + taskId: Int! + ): Void + + """Add new User""" + post_users(input: post_users_request_Input): User + + """Update user""" + post_users_by_userId( + input: post_users_by_userId_request_Input + + """User ID""" + userId: String! + ): User + + """Change Password""" + post_users_by_userId_password( + input: post_users_by_userId_password_request_Input + + """User ID""" + userId: String! + ): Void + + """ + Send user invite email. This will not reset the invite token. See the create invite route. + """ + post_users_by_userId_send_invite_email( + input: post_users_by_userId_send_invite_email_request_Input + + """User ID""" + userId: String! + ): JSON + + """Set group members""" + put_groups_by_groupId_members( + """Group ID""" + groupId: String! + input: put_groups_by_groupId_members_request_Input + ): JSON + + """Set groups a user belongs to""" + put_users_by_userId_groups( + input: put_users_by_userId_groups_request_Input + + """User ID""" + userId: String! + ): Void + + """Reject a repo transfer""" + rejectRepoTransfer( + """owner of the repo to transfer""" + owner: String! + + """name of the repo to transfer""" + repo: String! + ): Repository + + """Render a markdown document as HTML""" + renderMarkdown(input: MarkdownOption_Input): String + + """Render raw markdown as HTML""" + renderMarkdownRaw( + """Request body to render""" + input: String! + ): String + + """Add a collaborator to a repository""" + repoAddCollaborator( + """username of the collaborator to add""" + collaborator: String! + input: AddCollaboratorOption_Input + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): Void + + """add a push mirror to the repository""" + repoAddPushMirror( + input: CreatePushMirrorOption_represents_need_information_to_create_a_push_mirror_of_a_repository__Input + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): PushMirror + + """Add a team to a repository""" + repoAddTeam( + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + + """team name""" + team: String! + ): Void + + """Add a topic to a repository""" + repoAddTopic( + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + + """name of the topic to add""" + topic: String! + ): Void + + """Apply diff patch to repository""" + repoApplyDiffPatch( + input: UpdateFileOptions_Input! + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): FileResponse + + """Cancel the scheduled auto merge for the given pull request""" + repoCancelScheduledAutoMerge( + """index of the pull request to merge""" + index: BigInt! + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): Void + + """Create a branch""" + repoCreateBranch( + input: CreateBranchRepoOption_Input + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): Branch + + """Create a branch protections for a repository""" + repoCreateBranchProtection( + input: CreateBranchProtectionOption_Input + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): BranchProtection + + """Create a file in a repository""" + repoCreateFile( + """path of the file to create""" + filepath: String! + input: CreateFileOptions_Input! + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): FileResponse + + """Create a hook""" + repoCreateHook( + input: CreateHookOption_Input! + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): Hook + + """Add a key to a repository""" + repoCreateKey( + input: CreateKeyOption_Input + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): DeployKey + + """Create a pull request""" + repoCreatePullRequest( + input: CreatePullRequestOption_Input + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): PullRequest + + """Create a review to an pull request""" + repoCreatePullReview( + """index of the pull request""" + index: BigInt! + input: CreatePullReviewOptions_Input! + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): PullReview + + """create review requests for a pull request""" + repoCreatePullReviewRequests( + """index of the pull request""" + index: BigInt! + input: PullReviewRequestOptions_Input! + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): [PullReview] + + """Create a release""" + repoCreateRelease( + input: CreateReleaseOption_Input + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): Release + + """Create a release attachment""" + repoCreateReleaseAttachment( + """id of the release""" + id: BigInt! + + """name of the attachment""" + name: String + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): Attachment + + """Create a commit status""" + repoCreateStatus( + input: CreateStatusOption_Input + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + + """sha of the commit""" + sha: String! + ): CommitStatus + + """Create a new git tag in a repository""" + repoCreateTag( + input: CreateTagOption_Input + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): Tag + + """Create a wiki page""" + repoCreateWikiPage( + input: CreateWikiPageOptions_Input + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): WikiPage + + """Delete a repository""" + repoDelete( + """owner of the repo to delete""" + owner: String! + + """name of the repo to delete""" + repo: String! + ): Void + + """Delete a specific branch from a repository""" + repoDeleteBranch( + """branch to delete""" + branch: String! + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): Void + + """Delete a specific branch protection for the repository""" + repoDeleteBranchProtection( + """name of protected branch""" + name: String! + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): Void + + """Delete a collaborator from a repository""" + repoDeleteCollaborator( + """username of the collaborator to delete""" + collaborator: String! + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): Void + + """Delete a file in a repository""" + repoDeleteFile( + """path of the file to delete""" + filepath: String! + input: DeleteFileOptions_Input! + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): FileDeleteResponse + + """Delete a Git hook in a repository""" + repoDeleteGitHook( + """id of the hook to get""" + id: String! + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): Void + + """Delete a hook in a repository""" + repoDeleteHook( + """id of the hook to delete""" + id: BigInt! + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): Void + + """Delete a key from a repository""" + repoDeleteKey( + """id of the key to delete""" + id: BigInt! + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): Void + + """Delete a specific review from a pull request""" + repoDeletePullReview( + """id of the review""" + id: BigInt! + + """index of the pull request""" + index: BigInt! + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): Void + + """cancel review requests for a pull request""" + repoDeletePullReviewRequests( + """index of the pull request""" + index: BigInt! + input: PullReviewRequestOptions_Input! + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): Void + + """deletes a push mirror from a repository by remoteName""" + repoDeletePushMirror( + """remote name of the pushMirror""" + name: String! + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): Void + + """Delete a release""" + repoDeleteRelease( + """id of the release to delete""" + id: BigInt! + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): Void + + """Delete a release attachment""" + repoDeleteReleaseAttachment( + """id of the attachment to delete""" + attachment_id: BigInt! + + """id of the release""" + id: BigInt! + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): Void + + """Delete a release by tag name""" + repoDeleteReleaseByTag( + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + + """tag name of the release to delete""" + tag: String! + ): Void + + """Delete a repository's tag by name""" + repoDeleteTag( + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + + """name of tag to delete""" + tag: String! + ): Void + + """Delete a team from a repository""" + repoDeleteTeam( + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + + """team name""" + team: String! + ): Void + + """Delete a topic from a repository""" + repoDeleteTopic( + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + + """name of the topic to delete""" + topic: String! + ): Void + + """Delete a wiki page""" + repoDeleteWikiPage( + """owner of the repo""" + owner: String! + + """name of the page""" + pageName: String! + + """name of the repo""" + repo: String! + ): Void + + """Dismiss a review for a pull request""" + repoDismissPullReview( + """id of the review""" + id: BigInt! + + """index of the pull request""" + index: BigInt! + input: DismissPullReviewOptions_Input! + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): PullReview + + """ + Edit a repository's properties. Only fields that are set will be changed. + """ + repoEdit( + input: EditRepoOption_Input + + """owner of the repo to edit""" + owner: String! + + """name of the repo to edit""" + repo: String! + ): Repository + + """ + Edit a branch protections for a repository. Only fields that are set will be changed + """ + repoEditBranchProtection( + input: EditBranchProtectionOption_Input + + """name of protected branch""" + name: String! + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): BranchProtection + + """Edit a Git hook in a repository""" + repoEditGitHook( + """id of the hook to get""" + id: String! + input: EditGitHookOption_Input + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): GitHook + + """Edit a hook in a repository""" + repoEditHook( + """index of the hook""" + id: BigInt! + input: EditHookOption_Input + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): Hook + + """ + Update a pull request. If using deadline only the date will be taken into account, and time of day ignored. + """ + repoEditPullRequest( + """index of the pull request to edit""" + index: BigInt! + input: EditPullRequestOption_Input + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): PullRequest + + """Update a release""" + repoEditRelease( + """id of the release to edit""" + id: BigInt! + input: EditReleaseOption_Input + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): Release + + """Edit a release attachment""" + repoEditReleaseAttachment( + """id of the attachment to edit""" + attachment_id: BigInt! + + """id of the release""" + id: BigInt! + input: EditAttachmentOptions_Input + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): Attachment + + """Edit a wiki page""" + repoEditWikiPage( + input: CreateWikiPageOptions_Input + + """owner of the repo""" + owner: String! + + """name of the page""" + pageName: String! + + """name of the repo""" + repo: String! + ): WikiPage + + """Merge a pull request""" + repoMergePullRequest( + """index of the pull request to merge""" + index: BigInt! + input: MergePullRequestOption_Input + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): JSON + + """Migrate a remote git repository""" + repoMigrate(input: MigrateRepoOptions_Input): Repository + + """Sync a mirrored repository""" + repoMirrorSync( + """owner of the repo to sync""" + owner: String! + + """name of the repo to sync""" + repo: String! + ): JSON + + """Sync all push mirrored repository""" + repoPushMirrorSync( + """owner of the repo to sync""" + owner: String! + + """name of the repo to sync""" + repo: String! + ): JSON + + """Submit a pending review to an pull request""" + repoSubmitPullReview( + """id of the review""" + id: BigInt! + + """index of the pull request""" + index: BigInt! + input: SubmitPullReviewOptions_Input! + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): PullReview + + """Test a push webhook""" + repoTestHook( + """id of the hook to test""" + id: BigInt! + + """owner of the repo""" + owner: String! + + """ + The name of the commit/branch/tag, indicates which commit will be loaded to the webhook payload. + """ + ref: String + + """name of the repo""" + repo: String! + ): Void + + """Transfer a repo ownership""" + repoTransfer( + input: TransferRepoOption_Input! + + """owner of the repo to transfer""" + owner: String! + + """name of the repo to transfer""" + repo: String! + ): Repository + + """Cancel to dismiss a review for a pull request""" + repoUnDismissPullReview( + """id of the review""" + id: BigInt! + + """index of the pull request""" + index: BigInt! + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): PullReview + + """Update a file in a repository""" + repoUpdateFile( + """path of the file to update""" + filepath: String! + input: UpdateFileOptions_Input! + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): FileResponse + + """Merge PR's baseBranch into headBranch""" + repoUpdatePullRequest( + """index of the pull request to get""" + index: BigInt! + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + style: mutationInput_repoUpdatePullRequest_style + ): JSON + + """Replace list of topics for a repository""" + repoUpdateTopics( + input: RepoTopicOptions_Input + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): Void + + """Update user settings""" + updateUserSettings(input: UserSettingsOptions_Input): [UserSettings] + + """Add email addresses""" + userAddEmail(input: CreateEmailOption_Input): [Email] + + """creates a new OAuth2 application""" + userCreateOAuth2Application(input: CreateOAuth2ApplicationOptions_Input!): OAuth2Application_represents_an_OAuth2_application_ + + """Create an access token""" + userCreateToken( + input: CreateAccessTokenOption_Input + + """username of user""" + username: String! + ): AccessToken_represents_an_API_access_token_ + + """Unfollow a user""" + userCurrentDeleteFollow( + """username of user to unfollow""" + username: String! + ): Void + + """Remove a GPG key""" + userCurrentDeleteGPGKey( + """id of key to delete""" + id: BigInt! + ): Void + + """Delete a public key""" + userCurrentDeleteKey( + """id of key to delete""" + id: BigInt! + ): Void + + """Unstar the given repo""" + userCurrentDeleteStar( + """owner of the repo to unstar""" + owner: String! + + """name of the repo to unstar""" + repo: String! + ): Void + + """Unwatch a repo""" + userCurrentDeleteSubscription( + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): Void + + """Create a GPG key""" + userCurrentPostGPGKey(input: CreateGPGKeyOption_Input): GPGKey + + """Create a public key""" + userCurrentPostKey(input: CreateKeyOption_Input): PublicKey + + """Follow a user""" + userCurrentPutFollow( + """username of user to follow""" + username: String! + ): Void + + """Star the given repo""" + userCurrentPutStar( + """owner of the repo to star""" + owner: String! + + """name of the repo to star""" + repo: String! + ): Void + + """Watch a repo""" + userCurrentPutSubscription( + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): WatchInfo + + """delete an access token""" + userDeleteAccessToken( + """token to be deleted, identified by ID and if not available by name""" + token: String! + + """username of user""" + username: String! + ): Void + + """Delete email addresses""" + userDeleteEmail(input: DeleteEmailOption_Input): Void + + """delete an OAuth2 Application""" + userDeleteOAuth2Application( + """token to be deleted""" + id: BigInt! + ): Void + + """ + update an OAuth2 Application, this includes regenerating the client secret + """ + userUpdateOAuth2Application( + """application to be updated""" + id: BigInt! + input: CreateOAuth2ApplicationOptions_Input! + ): OAuth2Application_represents_an_OAuth2_application_ + + """Verify a GPG key""" + userVerifyGPGKey: GPGKey +} + +""" +NodeInfo contains standardized way of exposing metadata about a server running one of the distributed social networks +""" +type NodeInfo { + metadata: JSON + openRegistrations: Boolean + protocols: [String] + services: NodeInfoServices + software: NodeInfoSoftware + usage: NodeInfoUsage + version: String +} + +""" +NodeInfoServices contains the third party sites this server can connect to via their application API +""" +type NodeInfoServices { + inbound: [String] + outbound: [String] +} + +"""NodeInfoSoftware contains Metadata about server software in use""" +type NodeInfoSoftware { + homepage: String + name: String + repository: String + version: String +} + +"""NodeInfoUsage contains usage statistics for this server""" +type NodeInfoUsage { + localComments: BigInt + localPosts: BigInt + users: NodeInfoUsageUsers +} + +"""NodeInfoUsageUsers contains statistics about the users of this server""" +type NodeInfoUsageUsers { + activeHalfyear: BigInt + activeMonth: BigInt + total: BigInt +} + +"""Integers that will have a value of 0 or more.""" +scalar NonNegativeInt + +"""Note contains information related to a git note""" +type Note { + commit: Commit_contains_information_generated_from_a_Git_commit_ + message: String +} + +"""Notification""" +type Notification { + acknowledged: Boolean + creationTime: DateTime + + """EventId from Eventlog""" + eventId: String + + """Notification Id for GET and POST calls""" + id: String + message: String + title: String +} + +"""NotificationCount number of unread notifications""" +type NotificationCount { + new: BigInt +} + +""" +NotificationSubject contains the notification subject (Issue/Pull/Commit) +""" +type NotificationSubject { + html_url: String + latest_comment_html_url: String + latest_comment_url: String + + """StateType issue state type""" + state: String + title: String + + """NotifySubjectType represent type of notification subject""" + type: String + url: String +} + +"""NotificationThread expose Notification on API""" +type NotificationThread { + id: BigInt + pinned: Boolean + repository: Repository + subject: NotificationSubject + unread: Boolean + updated_at: DateTime + url: String +} + +type OAuth2Application_represents_an_OAuth2_application_ { + client_id: String + client_secret: String + confidential_client: Boolean + created: DateTime + id: BigInt + name: String + redirect_uris: [String] +} + +scalar ObjMap + +"""Organization represents an organization""" +type Organization { + avatar_url: String + description: String + full_name: String + id: BigInt + location: String + name: String + repo_admin_change_team_access: Boolean + + """deprecated""" + username: String + visibility: String + website: String +} + +""" +OrganizationPermissions list different users permissions on an organization +""" +type OrganizationPermissions { + can_create_repository: Boolean + can_read: Boolean + can_write: Boolean + is_admin: Boolean + is_owner: Boolean +} + +"""PRBranchInfo information about a branch""" +type PRBranchInfo { + label: String + ref: String + repo: Repository + repo_id: BigInt + sha: String +} + +"""Package represents a package""" +type Package { + created_at: DateTime + creator: User + id: BigInt + name: String + owner: User + repository: Repository + type: String + version: String +} + +"""PackageFile represents a package file""" +type PackageFile { + Size: BigInt + id: BigInt + md5: String + name: String + sha1: String + sha256: String + sha512: String +} + +"""PayloadCommit represents a commit""" +type PayloadCommit { + added: [String] + author: PayloadUser + committer: PayloadUser + + """sha1 hash of the commit""" + id: String + message: String + modified: [String] + removed: [String] + timestamp: DateTime + url: String + verification: PayloadCommitVerification +} + +"""PayloadCommitVerification represents the GPG verification of a commit""" +type PayloadCommitVerification { + payload: String + reason: String + signature: String + signer: PayloadUser + verified: Boolean +} + +"""PayloadUser represents the author or committer of a commit""" +type PayloadUser { + email: EmailAddress + + """Full name of the commit author""" + name: String + username: String +} + +"""Permission represents a set of permissions""" +type Permission { + admin: Boolean + pull: Boolean + push: Boolean +} + +type PlatformConfig { + mail: AddonConfig + mongodb: AddonConfig + mysql: AddonConfig + postgresql: AddonConfig +} + +input PlatformConfig_Input { + mail: AddonConfig_Input + mongodb: AddonConfig_Input + mysql: AddonConfig_Input + postgresql: AddonConfig_Input +} + +""" +Object of port bindings. If an app uses other TCP/UDP ports, new port bindings have to be specified to avoid conflict +""" +type PortBindings { + EXAMPLE_PORT: Int +} + +""" +Object of port bindings. If an app uses other TCP/UDP ports, new port bindings have to be specified to avoid conflict +""" +input PortBindings_Input { + EXAMPLE_PORT: Int +} + +"""Integers that will have a value greater than 0.""" +scalar PositiveInt + +"""VPS provider name tag""" +enum Provider { + ami + azure + cloudscale + contabo + digitalocean + ec2 + exoscale + galaxygate + gce + generic + hetzner + interox + lightsail + linode + netcup + ovh + rosehosting + scaleway + skysilk + time4vps + upcloud + vultr +} + +"""PublicKey publickey is a user key to push code to repository""" +type PublicKey { + created_at: DateTime + fingerprint: String + id: BigInt + key: String + key_type: String + read_only: Boolean + title: String + url: String + user: User +} + +"""PullRequest represents a pull request""" +type PullRequest { + allow_maintainer_edit: Boolean + assignee: User + assignees: [User] + base: PRBranchInfo + body: String + closed_at: DateTime + comments: BigInt + created_at: DateTime + diff_url: String + due_date: DateTime + head: PRBranchInfo + html_url: String + id: BigInt + is_locked: Boolean + labels: [Label] + merge_base: String + merge_commit_sha: String + mergeable: Boolean + merged: Boolean + merged_at: DateTime + merged_by: User + milestone: Milestone + number: BigInt + patch_url: String + + """StateType issue state type""" + state: String + title: String + updated_at: DateTime + url: String + user: User +} + +"""PullRequestMeta PR info if an issue is a PR""" +type PullRequestMeta { + merged: Boolean + merged_at: DateTime +} + +"""PullReview represents a pull request review""" +type PullReview { + body: String + comments_count: BigInt + commit_id: String + dismissed: Boolean + html_url: String + id: BigInt + official: Boolean + pull_request_url: String + stale: Boolean + + """ReviewStateType review state type""" + state: String + submitted_at: DateTime + team: Team + updated_at: DateTime + user: User +} + +"""PullReviewComment represents a comment on a pull request review""" +type PullReviewComment { + body: String + commit_id: String + created_at: DateTime + diff_hunk: String + html_url: String + id: BigInt + original_commit_id: String + original_position: Int + path: String + position: Int + pull_request_review_id: BigInt + pull_request_url: String + resolver: User + updated_at: DateTime + user: User +} + +""" +PullReviewRequestOptions are options to add or remove pull review requests +""" +input PullReviewRequestOptions_Input { + reviewers: [String] + team_reviewers: [String] +} + +"""PushMirror represents information of a push mirror""" +type PushMirror { + created: String + interval: String + last_error: String + last_update: String + remote_address: String + remote_name: String + repo_name: String + sync_on_commit: Boolean +} + +type Query { + """Gets the tag object of an annotated tag (not lightweight tags)""" + GetAnnotatedTag( + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + + """ + sha of the tag. The Git tags API only supports annotated tag objects, not lightweight tags. + """ + sha: String! + ): AnnotatedTag + + """Gets the blob of a repository.""" + GetBlob( + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + + """sha of the commit""" + sha: String! + ): GitBlobResponse + + """Gets the tree of a repository.""" + GetTree( + """owner of the repo""" + owner: String! + + """ + page number; the 'truncated' field in the response will be true if there are still more items after this page, false if the last page + """ + page: Int + + """number of items per page""" + per_page: Int + + """show all directories and files""" + recursive: Boolean + + """name of the repo""" + repo: String! + + """sha of the commit""" + sha: String! + ): GitTreeResponse + + """Returns the Person actor for a user""" + activitypubPerson( + """user ID of the user""" + user_id: Int! + ): ActivityPub + + """List cron tasks""" + adminCronList( + """page size of results""" + limit: Int + + """page number of results to return (1-based)""" + page: Int + ): [Cron] + + """List all organizations""" + adminGetAllOrgs( + """page size of results""" + limit: Int + + """page number of results to return (1-based)""" + page: Int + ): [Organization] + + """List all users""" + adminGetAllUsers( + """page size of results""" + limit: Int + + """page number of results to return (1-based)""" + page: Int + ): [User] + + """Get a hook""" + adminGetHook( + """id of the hook to get""" + id: BigInt! + ): Hook + + """List system's webhooks""" + adminListHooks( + """page size of results""" + limit: Int + + """page number of results to return (1-based)""" + page: Int + ): [Hook] + + """List unadopted repositories""" + adminUnadoptedList( + """page size of results""" + limit: Int + + """page number of results to return (1-based)""" + page: Int + + """pattern of repositories to search for""" + pattern: String + ): [String] + + """List installed apps""" + apps: apps_200_response + + """Get installed app""" + apps_by_appid: App + + """Return a list of all backups for this app""" + apps_by_appid_backups(page: Int = 1, per_page: Int = 25): apps_by_appid_backups_200_response + + """ + For format `plain` simple text lines are returned. When format is `json` each log line looks like `{ realtimeTimestamp: timestamp, message: message, source: appId }` + """ + apps_by_appid_logs( + format: queryInput_apps_by_appid_logs_format = json + + """Number of log lines to fetch. Starting at latest.""" + lines: String = "10" + ): String + + """ + A logstream is of type [EventSource](https://developer.mozilla.org/en-US/docs/Web/API/EventSource). For format `plain` simple text lines are returned. When format is `json` each log line looks like `{ realtimeTimestamp: timestamp, message: message, source: appId }` + """ + apps_by_appid_logstream( + format: queryInput_apps_by_appid_logstream_format = json + + """Number of log lines to fetch. Starting at latest.""" + lines: String = "10" + ): String + + """Get Subscription""" + appstore_subscription: appstore_subscription_200_response + + """List Backups""" + backups(page: Int = 1, per_page: Int = 25): backups_200_response + + """Public route to get status information for this Cloudron.""" + cloudron_status: cloudron_status_200_response + + """This config object contains the platform configuration.""" + config: config_200_response + + """Get all domains""" + domains: domains_200_response + + """Get Domain""" + domains_by_domain( + """Domain""" + domain: String! + ): domains_by_domain_200_response + + """Check DNS Records""" + domains_by_domain_dns_check( + """Domain""" + domain: String! + + """The subdomain to check the DNS record for""" + subdomain: String + ): domains_by_domain_dns_check_200_response + + """Get instance's global settings for api""" + getGeneralAPISettings: GeneralAPISettings + + """Get instance's global settings for Attachment""" + getGeneralAttachmentSettings: GeneralAttachmentSettings + + """Get instance's global settings for repositories""" + getGeneralRepositorySettings: GeneralRepoSettings + + """Get instance's global settings for ui""" + getGeneralUISettings: GeneralUISettings + + """Returns the nodeinfo of the Gitea application""" + getNodeInfo: NodeInfo + + """Gets a package""" + getPackage( + """name of the package""" + name: String! + + """owner of the package""" + owner: String! + + """type of the package""" + type: String! + + """version of the package""" + version: String! + ): Package + + """Get default signing-key.gpg""" + getSigningKey: String + + """Get user settings""" + getUserSettings: [UserSettings] + + """Get a Token to verify""" + getVerificationToken: String + + """Returns the version of the Gitea application""" + getVersion: ServerVersion + + """List groups""" + groups: groups_200_response + + """Get group""" + groups_by_groupId( + """Group ID""" + groupId: String! + ): GroupWithMembers + + """Check if user is subscribed to an issue""" + issueCheckSubscription( + """index of the issue""" + index: BigInt! + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): WatchInfo + + """Get a comment""" + issueGetComment( + """id of the comment""" + id: BigInt! + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): issueGetComment_response + + """Get a list of reactions from a comment of an issue""" + issueGetCommentReactions( + """id of the comment to edit""" + id: BigInt! + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): [Reaction] + + """List all comments on an issue""" + issueGetComments( + """ + if provided, only comments updated before the provided time are returned. + """ + before: DateTime + + """index of the issue""" + index: BigInt! + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + + """ + if provided, only comments updated since the specified time are returned. + """ + since: DateTime + ): [Comment] + + """List all comments and events on an issue""" + issueGetCommentsAndTimeline( + """ + if provided, only comments updated before the provided time are returned. + """ + before: DateTime + + """index of the issue""" + index: BigInt! + + """page size of results""" + limit: Int + + """owner of the repo""" + owner: String! + + """page number of results to return (1-based)""" + page: Int + + """name of the repo""" + repo: String! + + """ + if provided, only comments updated since the specified time are returned. + """ + since: DateTime + ): [TimelineComment] + + """Get an issue""" + issueGetIssue( + """index of the issue to get""" + index: BigInt! + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): Issue + + """Get an issue attachment""" + issueGetIssueAttachment( + """id of the attachment to get""" + attachment_id: BigInt! + + """index of the issue""" + index: BigInt! + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): Attachment + + """Get a comment attachment""" + issueGetIssueCommentAttachment( + """id of the attachment to get""" + attachment_id: BigInt! + + """id of the comment""" + id: BigInt! + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): Attachment + + """Get a list reactions of an issue""" + issueGetIssueReactions( + """index of the issue""" + index: BigInt! + + """page size of results""" + limit: Int + + """owner of the repo""" + owner: String! + + """page number of results to return (1-based)""" + page: Int + + """name of the repo""" + repo: String! + ): [Reaction] + + """Get a single label""" + issueGetLabel( + """id of the label to get""" + id: BigInt! + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): Label + + """Get an issue's labels""" + issueGetLabels( + """index of the issue""" + index: BigInt! + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): [Label] + + """Get a milestone""" + issueGetMilestone( + """the milestone to get, identified by ID and if not available by name""" + id: String! + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): Milestone + + """Get all of a repository's opened milestones""" + issueGetMilestonesList( + """page size of results""" + limit: Int + + """filter by milestone name""" + name: String + + """owner of the repo""" + owner: String! + + """page number of results to return (1-based)""" + page: Int + + """name of the repo""" + repo: String! + + """ + Milestone state, Recognized values are open, closed and all. Defaults to "open" + """ + state: String + ): [Milestone] + + """List all comments in a repository""" + issueGetRepoComments( + """ + if provided, only comments updated before the provided time are returned. + """ + before: DateTime + + """page size of results""" + limit: Int + + """owner of the repo""" + owner: String! + + """page number of results to return (1-based)""" + page: Int + + """name of the repo""" + repo: String! + + """ + if provided, only comments updated since the provided time are returned. + """ + since: DateTime + ): [Comment] + + """List issue's attachments""" + issueListIssueAttachments( + """index of the issue""" + index: BigInt! + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): [Attachment] + + """List comment's attachments""" + issueListIssueCommentAttachments( + """id of the comment""" + id: BigInt! + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): [Attachment] + + """List a repository's issues""" + issueListIssues( + """Only show items for which the given user is assigned""" + assigned_by: String + + """ + Only show items updated before the given time. This is a timestamp in RFC 3339 format + """ + before: DateTime + + """Only show items which were created by the the given user""" + created_by: String + + """ + comma separated list of labels. Fetch only issues that have any of this labels. Non existent labels are discarded + """ + labels: String + + """page size of results""" + limit: Int + + """Only show items in which the given user was mentioned""" + mentioned_by: String + + """ + comma separated list of milestone names or ids. It uses names and fall back to ids. Fetch only issues that have any of this milestones. Non existent milestones are discarded + """ + milestones: String + + """owner of the repo""" + owner: String! + + """page number of results to return (1-based)""" + page: Int + + """search string""" + q: String + + """name of the repo""" + repo: String! + + """ + Only show items updated after the given time. This is a timestamp in RFC 3339 format + """ + since: DateTime + state: queryInput_issueListIssues_state + type: queryInput_issueListIssues_type + ): [Issue] + + """Get all of a repository's labels""" + issueListLabels( + """page size of results""" + limit: Int + + """owner of the repo""" + owner: String! + + """page number of results to return (1-based)""" + page: Int + + """name of the repo""" + repo: String! + ): [Label] + + """Search for issues across the repositories that the user has access to""" + issueSearchIssues( + """filter (issues / pulls) assigned to you, default is false""" + assigned: Boolean + + """ + Only show notifications updated before the given time. This is a timestamp in RFC 3339 format + """ + before: DateTime + + """filter (issues / pulls) created by you, default is false""" + created: Boolean + + """ + comma separated list of labels. Fetch only issues that have any of this labels. Non existent labels are discarded + """ + labels: String + + """page size of results""" + limit: Int + + """filter (issues / pulls) mentioning you, default is false""" + mentioned: Boolean + + """ + comma separated list of milestone names. Fetch only issues that have any of this milestones. Non existent are discarded + """ + milestones: String + + """filter by owner""" + owner: String + + """page number of results to return (1-based)""" + page: Int + + """repository to prioritize in the results""" + priority_repo_id: BigInt + + """search string""" + q: String + + """filter pulls requesting your review, default is false""" + review_requested: Boolean + + """ + Only show notifications updated after the given time. This is a timestamp in RFC 3339 format + """ + since: DateTime + + """whether issue is open or closed""" + state: String + + """filter by team (requires organization owner parameter to be provided)""" + team: String + + """filter by type (issues / pulls) if set""" + type: String + ): [Issue] + + """Get users who subscribed on an issue.""" + issueSubscriptions( + """index of the issue""" + index: BigInt! + + """page size of results""" + limit: Int + + """owner of the repo""" + owner: String! + + """page number of results to return (1-based)""" + page: Int + + """name of the repo""" + repo: String! + ): [User] + + """List an issue's tracked times""" + issueTrackedTimes( + """ + Only show times updated before the given time. This is a timestamp in RFC 3339 format + """ + before: DateTime + + """index of the issue""" + index: BigInt! + + """page size of results""" + limit: Int + + """owner of the repo""" + owner: String! + + """page number of results to return (1-based)""" + page: Int + + """name of the repo""" + repo: String! + + """ + Only show times updated after the given time. This is a timestamp in RFC 3339 format + """ + since: DateTime + + """optional filter by user (available for issue managers)""" + user: String + ): [TrackedTime] + + """List a repository's forks""" + listForks( + """page size of results""" + limit: Int + + """owner of the repo""" + owner: String! + + """page number of results to return (1-based)""" + page: Int + + """name of the repo""" + repo: String! + ): [Repository] + + """Gets all files of a package""" + listPackageFiles( + """name of the package""" + name: String! + + """owner of the package""" + owner: String! + + """type of the package""" + type: String! + + """version of the package""" + version: String! + ): [PackageFile] + + """Gets all packages of an owner""" + listPackages( + """page size of results""" + limit: Int + + """owner of the packages""" + owner: String! + + """page number of results to return (1-based)""" + page: Int + + """name filter""" + q: String + type: queryInput_listPackages_type + ): [Package] + + """Get Mail Domain Info""" + mail_by_domain( + """Domain""" + domain: String! + ): Domain + + """Get mailbox count.""" + mail_by_domain_mailbox_count( + """Domain""" + domain: String! + ): mail_by_domain_mailbox_count_200_response + + """List mailboxes for this domain.""" + mail_by_domain_mailboxes( + """Domain""" + domain: String! + page: Int = 1 + per_page: Int = 25 + search: String + ): mail_by_domain_mailboxes_200_response + + """Get mailbox information.""" + mail_by_domain_mailboxes_by_name( + """Domain""" + domain: String! + + """Mailbox""" + name: String! + ): Mailbox + + """Get Mail Domain Status""" + mail_by_domain_status( + """Domain""" + domain: String! + ): mail_by_domain_status_200_response + + """List notifications.""" + notifications( + """Filter by acknowledged status""" + acknowledged: Boolean + page: Int = 1 + per_page: Int = 25 + ): notifications_200_response + + """Get notification""" + notifications_by_notificationId( + """Notification Id""" + notificationId: String! + ): Notification + + """List users's notification threads""" + notifyGetList( + """If true, show notifications marked as read. Default value is false""" + all: Boolean + + """ + Only show notifications updated before the given time. This is a timestamp in RFC 3339 format + """ + before: DateTime + + """page size of results""" + limit: Int + + """page number of results to return (1-based)""" + page: Int + + """ + Only show notifications updated after the given time. This is a timestamp in RFC 3339 format + """ + since: DateTime + + """ + Show notifications with the provided status types. Options are: unread, read and/or pinned. Defaults to unread & pinned. + """ + status_types: [String] + + """filter notifications by subject type""" + subject_type: [queryInput_notifyGetList_subject_type_items] + ): [NotificationThread] + + """List users's notification threads on a specific repo""" + notifyGetRepoList( + """If true, show notifications marked as read. Default value is false""" + all: Boolean + + """ + Only show notifications updated before the given time. This is a timestamp in RFC 3339 format + """ + before: DateTime + + """page size of results""" + limit: Int + + """owner of the repo""" + owner: String! + + """page number of results to return (1-based)""" + page: Int + + """name of the repo""" + repo: String! + + """ + Only show notifications updated after the given time. This is a timestamp in RFC 3339 format + """ + since: DateTime + + """ + Show notifications with the provided status types. Options are: unread, read and/or pinned. Defaults to unread & pinned + """ + status_types: [String] + + """filter notifications by subject type""" + subject_type: [queryInput_notifyGetRepoList_subject_type_items] + ): [NotificationThread] + + """Get notification thread by ID""" + notifyGetThread( + """id of notification thread""" + id: String! + ): NotificationThread + + """Check if unread notifications exist""" + notifyNewAvailable: NotificationCount + + """Get an organization""" + orgGet( + """name of the organization to get""" + org: String! + ): Organization + + """Get list of organizations""" + orgGetAll( + """page size of results""" + limit: Int + + """page number of results to return (1-based)""" + page: Int + ): [Organization] + + """Get a hook""" + orgGetHook( + """id of the hook to get""" + id: BigInt! + + """name of the organization""" + org: String! + ): Hook + + """Get a single label""" + orgGetLabel( + """id of the label to get""" + id: BigInt! + + """name of the organization""" + org: String! + ): Label + + """Get a team""" + orgGetTeam( + """id of the team to get""" + id: BigInt! + ): Team + + """Get user permissions in organization""" + orgGetUserPermissions( + """name of the organization""" + org: String! + + """username of user""" + username: String! + ): OrganizationPermissions + + """Check if a user is a member of an organization""" + orgIsMember( + """name of the organization""" + org: String! + + """username of the user""" + username: String! + ): Void + + """Check if a user is a public member of an organization""" + orgIsPublicMember( + """name of the organization""" + org: String! + + """username of the user""" + username: String! + ): Void + + """List the current user's organizations""" + orgListCurrentUserOrgs( + """page size of results""" + limit: Int + + """page number of results to return (1-based)""" + page: Int + ): [Organization] + + """List an organization's webhooks""" + orgListHooks( + """page size of results""" + limit: Int + + """name of the organization""" + org: String! + + """page number of results to return (1-based)""" + page: Int + ): [Hook] + + """List an organization's labels""" + orgListLabels( + """page size of results""" + limit: Int + + """name of the organization""" + org: String! + + """page number of results to return (1-based)""" + page: Int + ): [Label] + + """List an organization's members""" + orgListMembers( + """page size of results""" + limit: Int + + """name of the organization""" + org: String! + + """page number of results to return (1-based)""" + page: Int + ): [User] + + """List an organization's public members""" + orgListPublicMembers( + """page size of results""" + limit: Int + + """name of the organization""" + org: String! + + """page number of results to return (1-based)""" + page: Int + ): [User] + + """List an organization's repos""" + orgListRepos( + """page size of results""" + limit: Int + + """name of the organization""" + org: String! + + """page number of results to return (1-based)""" + page: Int + ): [Repository] + + """List a particular member of team""" + orgListTeamMember( + """id of the team""" + id: BigInt! + + """username of the member to list""" + username: String! + ): User + + """List a team's members""" + orgListTeamMembers( + """id of the team""" + id: BigInt! + + """page size of results""" + limit: Int + + """page number of results to return (1-based)""" + page: Int + ): [User] + + """List a particular repo of team""" + orgListTeamRepo( + """id of the team""" + id: BigInt! + + """organization that owns the repo to list""" + org: String! + + """name of the repo to list""" + repo: String! + ): Repository + + """List a team's repos""" + orgListTeamRepos( + """id of the team""" + id: BigInt! + + """page size of results""" + limit: Int + + """page number of results to return (1-based)""" + page: Int + ): [Repository] + + """List an organization's teams""" + orgListTeams( + """page size of results""" + limit: Int + + """name of the organization""" + org: String! + + """page number of results to return (1-based)""" + page: Int + ): [Team] + + """List a user's organizations""" + orgListUserOrgs( + """page size of results""" + limit: Int + + """page number of results to return (1-based)""" + page: Int + + """username of user""" + username: String! + ): [Organization] + + """Check if a user is a collaborator of a repository""" + repoCheckCollaborator( + """username of the collaborator""" + collaborator: String! + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): Void + + """Check if a team is assigned to a repository""" + repoCheckTeam( + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + + """team name""" + team: String! + ): Team + + """Get a commit's diff or patch""" + repoDownloadCommitDiffOrPatch( + diffType: queryInput_repoDownloadCommitDiffOrPatch_diffType! + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + + """SHA of the commit to get""" + sha: String! + ): String + + """Get a pull request diff or patch""" + repoDownloadPullDiffOrPatch( + """ + whether to include binary file changes. if true, the diff is applicable with `git apply` + """ + binary: Boolean + diffType: queryInput_repoDownloadPullDiffOrPatch_diffType! + + """index of the pull request to get""" + index: BigInt! + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): String + + """Get a repository""" + repoGet( + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): Repository + + """Get a list of all commits from a repository""" + repoGetAllCommits( + """page size of results (ignored if used with 'path')""" + limit: Int + + """owner of the repo""" + owner: String! + + """page number of results to return (1-based)""" + page: Int + + """filepath of a file/dir""" + path: String + + """name of the repo""" + repo: String! + + """SHA or branch to start listing commits from (usually 'master')""" + sha: String + + """ + include diff stats for every commit (disable for speedup, default 'true') + """ + stat: Boolean + ): [repoGetAllCommits_response] + + """Get an archive of a repository""" + repoGetArchive( + """ + the git reference for download with attached archive format (e.g. master.zip) + """ + archive: String! + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): JSON + + """Return all users that have write access and can be assigned to issues""" + repoGetAssignees( + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): [User] + + """ + Retrieve a specific branch from a repository, including its effective branch protection + """ + repoGetBranch( + """branch to get""" + branch: String! + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): Branch + + """Get a specific branch protection for the repository""" + repoGetBranchProtection( + """name of protected branch""" + name: String! + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): BranchProtection + + """Get a repository by id""" + repoGetByID( + """id of the repo to get""" + id: BigInt! + ): Repository + + """Get a commit's combined status, by branch/tag/commit reference""" + repoGetCombinedStatusByRef( + """page size of results""" + limit: Int + + """owner of the repo""" + owner: String! + + """page number of results to return (1-based)""" + page: Int + + """name of branch/tag/commit""" + ref: String! + + """name of the repo""" + repo: String! + ): CombinedStatus + + """ + Gets the metadata and contents (if a file) of an entry in a repository, or a list of entries if a dir + """ + repoGetContents( + """path of the dir, file, symlink or submodule in the repo""" + filepath: String! + + """owner of the repo""" + owner: String! + + """ + The name of the commit/branch/tag. Default the repository’s default branch (usually master) + """ + ref: String + + """name of the repo""" + repo: String! + ): ContentsResponse + + """Gets the metadata of all the entries of the root dir""" + repoGetContentsList( + """owner of the repo""" + owner: String! + + """ + The name of the commit/branch/tag. Default the repository’s default branch (usually master) + """ + ref: String + + """name of the repo""" + repo: String! + ): [ContentsResponse] + + """Get the EditorConfig definitions of a file in a repository""" + repoGetEditorConfig( + """filepath of file to get""" + filepath: String! + + """owner of the repo""" + owner: String! + + """ + The name of the commit/branch/tag. Default the repository’s default branch (usually master) + """ + ref: String + + """name of the repo""" + repo: String! + ): JSON + + """Get a Git hook""" + repoGetGitHook( + """id of the hook to get""" + id: String! + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): GitHook + + """Get a hook""" + repoGetHook( + """id of the hook to get""" + id: BigInt! + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): Hook + + """Get available issue templates for a repository""" + repoGetIssueTemplates( + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): [IssueTemplate] + + """Get a repository's key by id""" + repoGetKey( + """id of the key to get""" + id: BigInt! + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): DeployKey + + """Get languages and number of bytes of code written""" + repoGetLanguages( + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): JSON + + """ + Gets the most recent non-prerelease, non-draft release of a repository, sorted by created_at + """ + repoGetLatestRelease( + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): Release + + """Get a note corresponding to a single commit from a repository""" + repoGetNote( + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + + """a git ref or commit sha""" + sha: String! + ): Note + + """Get a pull request""" + repoGetPullRequest( + """index of the pull request to get""" + index: BigInt! + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): PullRequest + + """Get commits for a pull request""" + repoGetPullRequestCommits( + """index of the pull request to get""" + index: BigInt! + + """page size of results""" + limit: Int + + """owner of the repo""" + owner: String! + + """page number of results to return (1-based)""" + page: Int + + """name of the repo""" + repo: String! + ): [Commit_contains_information_generated_from_a_Git_commit_] + + """Get changed files for a pull request""" + repoGetPullRequestFiles( + """index of the pull request to get""" + index: BigInt! + + """page size of results""" + limit: Int + + """owner of the repo""" + owner: String! + + """page number of results to return (1-based)""" + page: Int + + """name of the repo""" + repo: String! + + """skip to given file""" + skip_to: String + whitespace: queryInput_repoGetPullRequestFiles_whitespace + ): [ChangedFile] + + """Get a specific review for a pull request""" + repoGetPullReview( + """id of the review""" + id: BigInt! + + """index of the pull request""" + index: BigInt! + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): PullReview + + """Get a specific review for a pull request""" + repoGetPullReviewComments( + """id of the review""" + id: BigInt! + + """index of the pull request""" + index: BigInt! + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): [PullReviewComment] + + """Get push mirror of the repository by remoteName""" + repoGetPushMirrorByRemoteName( + """remote name of push mirror""" + name: String! + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): PushMirror + + """Get a file from a repository""" + repoGetRawFile( + """filepath of the file to get""" + filepath: String! + + """owner of the repo""" + owner: String! + + """ + The name of the commit/branch/tag. Default the repository’s default branch (usually master) + """ + ref: String + + """name of the repo""" + repo: String! + ): JSON + + """Get a file or it's LFS object from a repository""" + repoGetRawFileOrLFS( + """filepath of the file to get""" + filepath: String! + + """owner of the repo""" + owner: String! + + """ + The name of the commit/branch/tag. Default the repository’s default branch (usually master) + """ + ref: String + + """name of the repo""" + repo: String! + ): JSON + + """Get a release""" + repoGetRelease( + """id of the release to get""" + id: BigInt! + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): Release + + """Get a release attachment""" + repoGetReleaseAttachment( + """id of the attachment to get""" + attachment_id: BigInt! + + """id of the release""" + id: BigInt! + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): Attachment + + """Get a release by tag name""" + repoGetReleaseByTag( + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + + """tag name of the release to get""" + tag: String! + ): Release + + """Get repository permissions for a user""" + repoGetRepoPermissions( + """username of the collaborator""" + collaborator: String! + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): RepoCollaboratorPermission + + """Return all users that can be requested to review in this repo""" + repoGetReviewers( + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): [User] + + """Get a single commit from a repository""" + repoGetSingleCommit( + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + + """a git ref or commit sha""" + sha: String! + ): Commit_contains_information_generated_from_a_Git_commit_ + + """Get the tag of a repository by tag name""" + repoGetTag( + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + + """name of tag""" + tag: String! + ): Tag + + """Get a wiki page""" + repoGetWikiPage( + """owner of the repo""" + owner: String! + + """name of the page""" + pageName: String! + + """name of the repo""" + repo: String! + ): WikiPage + + """Get revisions of a wiki page""" + repoGetWikiPageRevisions( + """owner of the repo""" + owner: String! + + """page number of results to return (1-based)""" + page: Int + + """name of the page""" + pageName: String! + + """name of the repo""" + repo: String! + ): WikiCommitList + + """Get all wiki pages""" + repoGetWikiPages( + """page size of results""" + limit: Int + + """owner of the repo""" + owner: String! + + """page number of results to return (1-based)""" + page: Int + + """name of the repo""" + repo: String! + ): [WikiPageMetaData] + + """Get specified ref or filtered repository's refs""" + repoListAllGitRefs( + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): [Reference_represents_a_Git_reference_] + + """List branch protections for a repository""" + repoListBranchProtection( + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): [BranchProtection] + + """List a repository's branches""" + repoListBranches( + """page size of results""" + limit: Int + + """owner of the repo""" + owner: String! + + """page number of results to return (1-based)""" + page: Int + + """name of the repo""" + repo: String! + ): [Branch] + + """List a repository's collaborators""" + repoListCollaborators( + """page size of results""" + limit: Int + + """owner of the repo""" + owner: String! + + """page number of results to return (1-based)""" + page: Int + + """name of the repo""" + repo: String! + ): [User] + + """List the Git hooks in a repository""" + repoListGitHooks( + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): [GitHook] + + """Get specified ref or filtered repository's refs""" + repoListGitRefs( + """owner of the repo""" + owner: String! + + """part or full name of the ref""" + ref: String! + + """name of the repo""" + repo: String! + ): [Reference_represents_a_Git_reference_] + + """List the hooks in a repository""" + repoListHooks( + """page size of results""" + limit: Int + + """owner of the repo""" + owner: String! + + """page number of results to return (1-based)""" + page: Int + + """name of the repo""" + repo: String! + ): [Hook] + + """List a repository's keys""" + repoListKeys( + """fingerprint of the key""" + fingerprint: String + + """the key_id to search for""" + key_id: Int + + """page size of results""" + limit: Int + + """owner of the repo""" + owner: String! + + """page number of results to return (1-based)""" + page: Int + + """name of the repo""" + repo: String! + ): [DeployKey] + + """List a repo's pull requests""" + repoListPullRequests( + """Label IDs""" + labels: [BigInt] + + """page size of results""" + limit: Int + + """ID of the milestone""" + milestone: BigInt + + """owner of the repo""" + owner: String! + + """page number of results to return (1-based)""" + page: Int + + """name of the repo""" + repo: String! + sort: queryInput_repoListPullRequests_sort + state: queryInput_repoListPullRequests_state + ): [PullRequest] + + """List all reviews for a pull request""" + repoListPullReviews( + """index of the pull request""" + index: BigInt! + + """page size of results""" + limit: Int + + """owner of the repo""" + owner: String! + + """page number of results to return (1-based)""" + page: Int + + """name of the repo""" + repo: String! + ): [PullReview] + + """Get all push mirrors of the repository""" + repoListPushMirrors( + """page size of results""" + limit: Int + + """owner of the repo""" + owner: String! + + """page number of results to return (1-based)""" + page: Int + + """name of the repo""" + repo: String! + ): [PushMirror] + + """List release's attachments""" + repoListReleaseAttachments( + """id of the release""" + id: BigInt! + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): [Attachment] + + """List a repo's releases""" + repoListReleases( + """ + filter (exclude / include) drafts, if you dont have repo write access none will show + """ + draft: Boolean + + """page size of results""" + limit: Int + + """owner of the repo""" + owner: String! + + """page number of results to return (1-based)""" + page: Int + + """page size of results, deprecated - use limit""" + per_page: Int + + """filter (exclude / include) pre-releases""" + pre_release: Boolean + + """name of the repo""" + repo: String! + ): [Release] + + """List a repo's stargazers""" + repoListStargazers( + """page size of results""" + limit: Int + + """owner of the repo""" + owner: String! + + """page number of results to return (1-based)""" + page: Int + + """name of the repo""" + repo: String! + ): [User] + + """Get a commit's statuses""" + repoListStatuses( + """page size of results""" + limit: Int + + """owner of the repo""" + owner: String! + + """page number of results to return (1-based)""" + page: Int + + """name of the repo""" + repo: String! + + """sha of the commit""" + sha: String! + sort: queryInput_repoListStatuses_sort + state: queryInput_repoListStatuses_state + ): [CommitStatus] + + """Get a commit's statuses, by branch/tag/commit reference""" + repoListStatusesByRef( + """page size of results""" + limit: Int + + """owner of the repo""" + owner: String! + + """page number of results to return (1-based)""" + page: Int + + """name of branch/tag/commit""" + ref: String! + + """name of the repo""" + repo: String! + sort: queryInput_repoListStatusesByRef_sort + state: queryInput_repoListStatusesByRef_state + ): [CommitStatus] + + """List a repo's watchers""" + repoListSubscribers( + """page size of results""" + limit: Int + + """owner of the repo""" + owner: String! + + """page number of results to return (1-based)""" + page: Int + + """name of the repo""" + repo: String! + ): [User] + + """List a repository's tags""" + repoListTags( + """page size of results, default maximum page size is 50""" + limit: Int + + """owner of the repo""" + owner: String! + + """page number of results to return (1-based)""" + page: Int + + """name of the repo""" + repo: String! + ): [Tag] + + """List a repository's teams""" + repoListTeams( + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): [Team] + + """Get list of topics that a repository has""" + repoListTopics( + """page size of results""" + limit: Int + + """owner of the repo""" + owner: String! + + """page number of results to return (1-based)""" + page: Int + + """name of the repo""" + repo: String! + ): TopicName + + """Check if a pull request has been merged""" + repoPullRequestIsMerged( + """index of the pull request""" + index: BigInt! + + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): Void + + """Search for repositories""" + repoSearch( + """show only archived, non-archived or all repositories (defaults to all)""" + archived: Boolean + + """if `uid` is given, search only for repos that the user owns""" + exclusive: Boolean + + """include search of keyword within repository description""" + includeDesc: Boolean + + """show only pubic, private or all repositories (defaults to all)""" + is_private: Boolean + + """page size of results""" + limit: Int + + """ + type of repository to search for. Supported values are "fork", "source", "mirror" and "collaborative" + """ + mode: String + + """ + sort order, either "asc" (ascending) or "desc" (descending). Default is "asc", ignored if "sort" is not specified. + """ + order: String + + """page number of results to return (1-based)""" + page: Int + + """repo owner to prioritize in the results""" + priority_owner_id: BigInt + + """ + include private repositories this user has access to (defaults to true) + """ + private: Boolean + + """keyword""" + q: String + + """ + sort repos by attribute. Supported values are "alpha", "created", "updated", "size", and "id". Default is "alpha" + """ + sort: String + + """search only for repos that the user with the given id has starred""" + starredBy: BigInt + + """search only for repos that belong to the given team id""" + team_id: BigInt + + """ + include template repositories this user has access to (defaults to true) + """ + template: Boolean + + """Limit search to repositories with keyword as topic""" + topic: Boolean + + """ + search only for repos that the user with the given id owns or contributes to + """ + uid: BigInt + ): SearchResults + + """Get signing-key.gpg for given repository""" + repoSigningKey( + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): String + + """List a repo's tracked times""" + repoTrackedTimes( + """ + Only show times updated before the given time. This is a timestamp in RFC 3339 format + """ + before: DateTime + + """page size of results""" + limit: Int + + """owner of the repo""" + owner: String! + + """page number of results to return (1-based)""" + page: Int + + """name of the repo""" + repo: String! + + """ + Only show times updated after the given time. This is a timestamp in RFC 3339 format + """ + since: DateTime + + """optional filter by user (available for issue managers)""" + user: String + ): [TrackedTime] + + """Get Services""" + services: services_200_response + + """Get Service""" + services_by_service(service: ServiceName_parameter!): Service + + """Get Service Logs""" + services_by_service_logs(service: ServiceName_parameter!): File + + """ + The log stream is in [EventSource](https://developer.mozilla.org/en-US/docs/Web/API/EventSource) format + """ + services_by_service_logstream(service: ServiceName_parameter!): JSON + + """Get Apps Autoupdate Pattern""" + settings_app_autoupdate_pattern: UpdatePattern + + """Get Backup Config""" + settings_backup_config: BackupConfig + + """ + Gets the pattern that the Cloudron uses to automatically update itself and installed apps. Patterns are matched based on the Cloudron's timezone. + """ + settings_box_autoupdate_pattern: UpdatePattern + + """Get Cloudron Avatar""" + settings_cloudron_avatar: File + + """Get Cloudron Name""" + settings_cloudron_name: CloudronNameConfig + + """Get Dynamic DNS State""" + settings_dynamic_dns: settings_dynamic_dns_200_response + + """Get External LDAP Config""" + settings_external_ldap_config: ExternalLdapConfig + + """Get Platform Config""" + settings_platform_config: PlatformConfig + + """Get Registry Config""" + settings_registry_config: RegistryConfig + + """Get Sysinfo Config""" + settings_sysinfo_config: SysinfoConfig + + """Get Timezone""" + settings_time_zone: TimezoneConfig + + """Get Unstable Apps State""" + settings_unstable_apps: settings_unstable_apps_200_response + + """List Tasks""" + tasks(page: Int = 1, per_page: Int = 25, type: queryInput_tasks_type): tasks_200_response + + """Get Task""" + tasks_by_taskId( + """Task ID""" + taskId: Int! + ): Task + + """Get Task Logs""" + tasks_by_taskId_logs( + """Task ID""" + taskId: Int! + ): File + + """ + The log stream is in [EventSource](https://developer.mozilla.org/en-US/docs/Web/API/EventSource) format + """ + tasks_by_taskId_logstream( + """Task ID""" + taskId: Int! + ): JSON + + """Search for teams within an organization""" + teamSearch( + """include search within team description (defaults to true)""" + include_desc: Boolean + + """page size of results""" + limit: Int + + """name of the organization""" + org: String! + + """page number of results to return (1-based)""" + page: Int + + """keywords to search""" + q: String + ): teamSearch_200_response + + """search topics via keyword""" + topicSearch( + """page size of results""" + limit: Int + + """page number of results to return (1-based)""" + page: Int + + """keywords to search""" + q: String! + ): [TopicResponse] + + """Check if one user is following another user""" + userCheckFollowing( + """username of followed user""" + target: String! + + """username of following user""" + username: String! + ): Void + + """Check whether a user is followed by the authenticated user""" + userCurrentCheckFollowing( + """username of followed user""" + username: String! + ): Void + + """Whether the authenticated is starring the repo""" + userCurrentCheckStarring( + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): Void + + """Check if the current user is watching a repo""" + userCurrentCheckSubscription( + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + ): WatchInfo + + """Get a GPG key""" + userCurrentGetGPGKey( + """id of key to get""" + id: BigInt! + ): GPGKey + + """Get a public key""" + userCurrentGetKey( + """id of key to get""" + id: BigInt! + ): PublicKey + + """List the authenticated user's followers""" + userCurrentListFollowers( + """page size of results""" + limit: Int + + """page number of results to return (1-based)""" + page: Int + ): [User] + + """List the users that the authenticated user is following""" + userCurrentListFollowing( + """page size of results""" + limit: Int + + """page number of results to return (1-based)""" + page: Int + ): [User] + + """List the authenticated user's GPG keys""" + userCurrentListGPGKeys( + """page size of results""" + limit: Int + + """page number of results to return (1-based)""" + page: Int + ): [GPGKey] + + """List the authenticated user's public keys""" + userCurrentListKeys( + """fingerprint of the key""" + fingerprint: String + + """page size of results""" + limit: Int + + """page number of results to return (1-based)""" + page: Int + ): [PublicKey] + + """List the repos that the authenticated user owns""" + userCurrentListRepos( + """page size of results""" + limit: Int + + """page number of results to return (1-based)""" + page: Int + ): [Repository] + + """The repos that the authenticated user has starred""" + userCurrentListStarred( + """page size of results""" + limit: Int + + """page number of results to return (1-based)""" + page: Int + ): [Repository] + + """List repositories watched by the authenticated user""" + userCurrentListSubscriptions( + """page size of results""" + limit: Int + + """page number of results to return (1-based)""" + page: Int + ): [Repository] + + """List the current user's tracked times""" + userCurrentTrackedTimes( + """ + Only show times updated before the given time. This is a timestamp in RFC 3339 format + """ + before: DateTime + + """page size of results""" + limit: Int + + """page number of results to return (1-based)""" + page: Int + + """ + Only show times updated after the given time. This is a timestamp in RFC 3339 format + """ + since: DateTime + ): [TrackedTime] + + """Get a user""" + userGet( + """username of user to get""" + username: String! + ): User + + """Get the authenticated user""" + userGetCurrent: User + + """Get a user's heatmap""" + userGetHeatmapData( + """username of user to get""" + username: String! + ): [UserHeatmapData] + + """get an OAuth2 Application""" + userGetOAuth2Application( + """Application ID to be found""" + id: BigInt! + ): OAuth2Application_represents_an_OAuth2_application_ + + """List the authenticated user's oauth2 applications""" + userGetOauth2Application( + """page size of results""" + limit: Int + + """page number of results to return (1-based)""" + page: Int + ): [OAuth2Application_represents_an_OAuth2_application_] + + """Get list of all existing stopwatches""" + userGetStopWatches( + """page size of results""" + limit: Int + + """page number of results to return (1-based)""" + page: Int + ): [StopWatch] + + """List the authenticated user's access tokens""" + userGetTokens( + """page size of results""" + limit: Int + + """page number of results to return (1-based)""" + page: Int + + """username of user""" + username: String! + ): [AccessToken_represents_an_API_access_token_] + + """List the authenticated user's email addresses""" + userListEmails: [Email] + + """List the given user's followers""" + userListFollowers( + """page size of results""" + limit: Int + + """page number of results to return (1-based)""" + page: Int + + """username of user""" + username: String! + ): [User] + + """List the users that the given user is following""" + userListFollowing( + """page size of results""" + limit: Int + + """page number of results to return (1-based)""" + page: Int + + """username of user""" + username: String! + ): [User] + + """List the given user's GPG keys""" + userListGPGKeys( + """page size of results""" + limit: Int + + """page number of results to return (1-based)""" + page: Int + + """username of user""" + username: String! + ): [GPGKey] + + """List the given user's public keys""" + userListKeys( + """fingerprint of the key""" + fingerprint: String + + """page size of results""" + limit: Int + + """page number of results to return (1-based)""" + page: Int + + """username of user""" + username: String! + ): [PublicKey] + + """List the repos owned by the given user""" + userListRepos( + """page size of results""" + limit: Int + + """page number of results to return (1-based)""" + page: Int + + """username of user""" + username: String! + ): [Repository] + + """The repos that the given user has starred""" + userListStarred( + """page size of results""" + limit: Int + + """page number of results to return (1-based)""" + page: Int + + """username of user""" + username: String! + ): [Repository] + + """List the repositories watched by a user""" + userListSubscriptions( + """page size of results""" + limit: Int + + """page number of results to return (1-based)""" + page: Int + + """username of the user""" + username: String! + ): [Repository] + + """List all the teams a user belongs to""" + userListTeams( + """page size of results""" + limit: Int + + """page number of results to return (1-based)""" + page: Int + ): [Team] + + """Search for users""" + userSearch( + """page size of results""" + limit: Int + + """page number of results to return (1-based)""" + page: Int + + """keyword""" + q: String + + """ID of the user to search for""" + uid: BigInt + ): userSearch_200_response + + """List a user's tracked times in a repo""" + userTrackedTimes( + """owner of the repo""" + owner: String! + + """name of the repo""" + repo: String! + + """username of user""" + user: String! + ): [TrackedTime] + + """Get all users""" + users(page: Int = 1, per_page: Int = 25, search: String): users_200_response + + """Get user""" + users_by_userId( + """User ID""" + userId: String! + ): User + + """ + Get an invite link. This will create a new one, if the previous is expired. This only works for local users, not LDAP/ActiveDirectory users. + """ + users_by_userId_invite_link( + """User ID""" + userId: String! + ): users_by_userId_invite_link_200_response +} + +"""Reaction contain one reaction""" +type Reaction { + content: String + created_at: DateTime + user: User +} + +type Reference_represents_a_Git_reference_ { + object: GitObject_represents_a_Git_object_ + ref: String + url: String +} + +type RegistryConfig { + email: EmailAddress + password: String + serverAddress: String! + username: String +} + +input RegistryConfig_Input { + email: EmailAddress + password: String + serverAddress: String! + username: String +} + +"""Release represents a repository release""" +type Release { + assets: [Attachment] + author: User + body: String + created_at: DateTime + draft: Boolean + html_url: String + id: BigInt + name: String + prerelease: Boolean + published_at: DateTime + tag_name: String + tarball_url: String + target_commitish: String + url: String + zipball_url: String +} + +""" +RepoCollaboratorPermission to get repository permission for a collaborator +""" +type RepoCollaboratorPermission { + permission: String + role_name: String + user: User +} + +type RepoCommit_contains_information_of_a_commit_in_the_context_of_a_repository_ { + author: CommitUser_contains_information_of_a_user_in_the_context_of_a_commit_ + committer: CommitUser_contains_information_of_a_user_in_the_context_of_a_commit_ + message: String + tree: CommitMeta_contains_meta_information_of_a_commit_in_terms_of_API_ + url: String + verification: PayloadCommitVerification +} + +"""RepoTopicOptions a collection of repo topic names""" +input RepoTopicOptions_Input { + """list of topic names""" + topics: [String] +} + +"""RepoTransfer represents a pending repo transfer""" +type RepoTransfer { + doer: User + recipient: User + teams: [Team] +} + +"""Repository represents a repository""" +type Repository { + allow_merge_commits: Boolean + allow_rebase: Boolean + allow_rebase_explicit: Boolean + allow_rebase_update: Boolean + allow_squash_merge: Boolean + archived: Boolean + avatar_url: String + clone_url: String + created_at: DateTime + default_allow_maintainer_edit: Boolean + default_branch: String + default_delete_branch_after_merge: Boolean + default_merge_style: String + description: String + empty: Boolean + external_tracker: ExternalTracker + external_wiki: ExternalWiki + fork: Boolean + forks_count: BigInt + full_name: String + has_issues: Boolean + has_projects: Boolean + has_pull_requests: Boolean + has_wiki: Boolean + html_url: String + id: BigInt + ignore_whitespace_conflicts: Boolean + internal: Boolean + internal_tracker: InternalTracker + language: String + languages_url: String + link: String + mirror: Boolean + mirror_interval: String + mirror_updated: DateTime + name: String + open_issues_count: BigInt + open_pr_counter: BigInt + original_url: String + owner: User + + """Repository represents a repository""" + parent: Repository + permissions: Permission + private: Boolean + release_counter: BigInt + repo_transfer: RepoTransfer + size: BigInt + ssh_url: String + stars_count: BigInt + template: Boolean + updated_at: DateTime + watchers_count: BigInt + website: String +} + +"""RepositoryMeta basic repository information""" +type RepositoryMeta { + full_name: String + id: BigInt + name: String + owner: String +} + +"""SearchResults results of a successful search""" +type SearchResults { + data: [Repository] + ok: Boolean +} + +"""ServerVersion wraps the version of the server""" +type ServerVersion { + version: String +} + +type Service { + config: query_services_by_service_config + error: String + memoryPercent: Int + memoryUsed: Int + name: query_services_by_service_name + status: query_services_by_service_status +} + +"""Service Name""" +enum ServiceName_parameter { + docker + graphite + mail + mongodb + mysql + nginx + postgresql + sftp + unbound +} + +"""StopWatch represent a running stopwatch""" +type StopWatch { + created: DateTime + duration: String + issue_index: BigInt + issue_title: String + repo_name: String + repo_owner_name: String + seconds: BigInt +} + +"""SubmitPullReviewOptions are options to submit a pending pull review""" +input SubmitPullReviewOptions_Input { + body: String + + """ReviewStateType review state type""" + event: String +} + +input SysConfig_Input { + provider: mutationInput_post_cloudron_setup_input_domainConfig_sysinfoConfig_provider +} + +type SysinfoConfig { + """Only applies to the `network-interface` provider""" + ifname: String + + """Only applies to the `fixed` provider""" + ip: String + provider: mutationInput_post_cloudron_restore_input_sysinfoConfig_provider! +} + +input SysinfoConfig_Input { + """Only applies to the `network-interface` provider""" + ifname: String + + """Only applies to the `fixed` provider""" + ip: String + provider: mutationInput_post_cloudron_restore_input_sysinfoConfig_provider! = generic +} + +"""Tag represents a repository tag""" +type Tag { + commit: CommitMeta_contains_meta_information_of_a_commit_in_terms_of_API_ + id: String + message: String + name: String + tarball_url: String + zipball_url: String +} + +type Task { + """ + Determines if this task is currently active. Progress can be tracked with `message` and `percent` + """ + active: Boolean + + """Creation time UTC timestamp""" + creationTime: Int + error: query_tasks_tasks_items_error + id: Int + + """For display purpose to show more informed progress""" + message: String + percent: NonNegativeInt + result: JSON + + """ + Determines if the task was successful. If `false` check `error` or `active` properties. + """ + success: Boolean + + """Last modified UTC timestamp""" + ts: Int + type: TaskType +} + +enum TaskType { + app + backup + cleanBackups + prepareDashboardDomain + renewcerts + syncExternalLdap + update +} + +"""Team represents a team in an organization""" +type Team { + can_create_org_repo: Boolean + description: String + id: BigInt + includes_all_repositories: Boolean + name: String + organization: Organization + permission: query_notifyGetList_items_repository_repo_transfer_teams_items_permission + units: [String] + units_map: query_notifyGetList_items_repository_repo_transfer_teams_items_units_map +} + +""" +TimelineComment represents a timeline comment (comment of any type) on a commit or issue +""" +type TimelineComment { + assignee: User + assignee_team: Team + body: String + created_at: DateTime + dependent_issue: Issue + html_url: String + id: BigInt + issue_url: String + label: Label + milestone: Milestone + new_ref: String + new_title: String + old_milestone: Milestone + old_project_id: BigInt + old_ref: String + old_title: String + project_id: BigInt + pull_request_url: String + ref_action: String + ref_comment: Comment + + """commit SHA where issue/PR was referenced""" + ref_commit_sha: String + ref_issue: Issue + + """whether the assignees were removed or added""" + removed_assignee: Boolean + resolve_doer: User + review_id: BigInt + tracked_time: TrackedTime + type: String + updated_at: DateTime + user: User +} + +type TimezoneConfig { + """ + Timezone is automatically set based on the IP address from where the Cloudron was activated. This timezone is used with the auto update pattern to trigger updates at the correct time. See the [Tz database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) for a list of valid values. + """ + timeZone: String! +} + +input TimezoneConfig_Input { + """ + Timezone is automatically set based on the IP address from where the Cloudron was activated. This timezone is used with the auto update pattern to trigger updates at the correct time. See the [Tz database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) for a list of valid values. + """ + timeZone: String! = "America/Los_Angeles" +} + +input TlsConfig_Input { + provider: mutationInput_post_cloudron_setup_input_domainConfig_tlsConfig_provider + wildcard: Boolean +} + +"""TopicName a list of repo topic names""" +type TopicName { + topics: [String] +} + +"""TopicResponse for returning topics""" +type TopicResponse { + created: DateTime + id: BigInt + repo_count: BigInt + topic_name: String + updated: DateTime +} + +"""TrackedTime worked time for an issue / pr""" +type TrackedTime { + created: DateTime + id: BigInt + issue: Issue + + """deprecated (only for backwards compatibility)""" + issue_id: BigInt + + """Time in seconds""" + time: BigInt + + """deprecated (only for backwards compatibility)""" + user_id: BigInt + user_name: String +} + +"""TransferRepoOption options when transfer a repository's ownership""" +input TransferRepoOption_Input { + new_owner: String! + + """ + ID of the team or teams to add to the repository. Teams can only be added to organization-owned repositories. + """ + team_ids: [BigInt] +} + +""" +A field whose value conforms to the standard URL format as specified in RFC3986: https://www.ietf.org/rfc/rfc3986.txt. +""" +scalar URL + +""" +UpdateFileOptions options for updating files +Note: `author` and `committer` are optional (if only one is given, it will be used for the other, otherwise the authenticated user will be used) +""" +input UpdateFileOptions_Input { + author: Identity_Input + + """ + branch (optional) to base this file from. if not given, the default branch is used + """ + branch: String + committer: Identity_Input + + """content must be base64 encoded""" + content: String! + dates: CommitDateOptions_Input + + """ + from_path (optional) is the path of the original file which will be moved/renamed to the path in the URL + """ + from_path: String + + """ + message (optional) for the commit of this file. if not supplied, a default message will be used + """ + message: String + + """ + new_branch (optional) will make a new branch from `branch` before creating the file + """ + new_branch: String + + """sha is the SHA for the file that already exists""" + sha: String! + + """ + Add a Signed-off-by trailer by the committer at the end of the commit log message. + """ + signoff: Boolean +} + +type UpdatePattern { + """ + The format listed in the [node-cron](https://github.com/ncb000gt/node-cron#cron-ranges) page. Note that unlike classic crontab format, the pattern contains seconds as the first part. Setting pattern to `never` disables auto update. Some examples of patterns are + * `00 00 1,3,5,23 * * *` would run updates at 1am, 3am, 5am, 11pm every night. + * `0 030 4 1,15 * 5` would run updates at 4:30 am on the 1st and 15th of each month, plus every Friday. + """ + pattern: String! +} + +input UpdatePattern_Input { + """ + The format listed in the [node-cron](https://github.com/ncb000gt/node-cron#cron-ranges) page. Note that unlike classic crontab format, the pattern contains seconds as the first part. Setting pattern to `never` disables auto update. Some examples of patterns are + * `00 00 1,3,5,23 * * *` would run updates at 1am, 3am, 5am, 11pm every night. + * `0 030 4 1,15 * 5` would run updates at 4:30 am on the 1st and 15th of each month, plus every Friday. + """ + pattern: String! +} + +type User { + active: Boolean + admin: Boolean + + """URL to the user's avatar""" + avatar_url: String + created: DateTime + + """the user's description""" + description: String + displayName: String + email: EmailAddress + fallbackEmail: EmailAddress + + """user counts""" + followers_count: BigInt + following_count: BigInt + + """the user's full name""" + full_name: String + groupIds: [JSON] + id: String + + """Is the user an administrator""" + is_admin: Boolean + + """User locale""" + language: String + last_login: DateTime + + """the user's location""" + location: String + + """the user's username""" + login: String + + """the user's authentication sign-in name.""" + login_name: String + + """Is user login prohibited""" + prohibit_login: Boolean + + """Is user restricted""" + restricted: Boolean + source: mutation_post_users_source + starred_repos_count: BigInt + username: String + + """User visibility level option: public, limited, private""" + visibility: String + + """the user's website""" + website: String +} + +"""UserHeatmapData represents the data needed to create a heatmap""" +type UserHeatmapData { + contributions: BigInt + + """TimeStamp defines a timestamp""" + timestamp: BigInt +} + +"""UserSettings represents user settings""" +type UserSettings { + description: String + diff_view_style: String + full_name: String + hide_activity: Boolean + + """Privacy""" + hide_email: Boolean + language: String + location: String + theme: String + website: String +} + +"""UserSettingsOptions represents options to change user settings""" +input UserSettingsOptions_Input { + description: String + diff_view_style: String + full_name: String + hide_activity: Boolean + + """Privacy""" + hide_email: Boolean + language: String + location: String + theme: String + website: String +} + +"""Represents empty values""" +scalar Void + +type Void_container { + Void: Void +} + +"""WatchInfo represents an API watch status of one repository""" +type WatchInfo { + created_at: DateTime + ignored: Boolean + reason: JSON + repository_url: String + subscribed: Boolean + url: String +} + +"""WikiCommit page commit/revision""" +type WikiCommit { + author: CommitUser_contains_information_of_a_user_in_the_context_of_a_commit_ + commiter: CommitUser_contains_information_of_a_user_in_the_context_of_a_commit_ + message: String + sha: String +} + +"""WikiCommitList commit/revision list""" +type WikiCommitList { + commits: [WikiCommit] + count: BigInt +} + +"""WikiPage a wiki page""" +type WikiPage { + commit_count: BigInt + + """Page content, base64 encoded""" + content_base64: String + footer: String + html_url: String + last_commit: WikiCommit + sidebar: String + sub_url: String + title: String +} + +"""WikiPageMetaData wiki page meta information""" +type WikiPageMetaData { + html_url: String + last_commit: WikiCommit + sub_url: String + title: String +} + +type apps_200_response { + apps: [App] +} + +type apps_by_appid_backups_200_response { + backups: [query_apps_by_appid_backups_backups_items] +} + +type appstore_subscription_200_response { + cancel_at: DateTime + canceled_at: DateTime + cloudronCreatedAt: DateTime + cloudronId: String + current_period_end: DateTime + email: EmailAddress + features: String + plan: String + status: String +} + +type backups_200_response { + backups: [query_backups_backups_items] +} + +type cloudron_status_200_response { + """ + Indicates if this Cloudron was already activated. This is true once the first user was created during setup. + """ + activated: Boolean + + """The FQDN of the Cloudron dashboard""" + adminFqdn: String + + """The API endpoint to make App Store requests""" + apiServerOrigin: URL + + """Name of the Cloudron used in the login screen, nav bar""" + cloudronName: String + + """Markdown formatted footer content""" + footer: String + provider: Provider + restore: query_cloudron_status_restore + setup: query_cloudron_status_setup + + """Cloudron version""" + version: String + + """The Web endpoint for App Store assets (docs, images, etc)""" + webServerOrigin: URL +} + +type config_200_response { + """ + The main domain for this Cloudron. `adminFqdn` and `mailFqdn` depend on this + """ + adminDomain: String + + """Subdomain where the dashboard is reachable.""" + adminFqdn: String + apiServerOrigin: String + + """Same as /api/v1/settings/clouron_name""" + cloudronName: String + isDemo: Boolean + + """Subdomain where the mail server is reachable.""" + mailFqdn: String + provider: Provider + uiSpec: JSON + + """Cloudron version""" + version: String + webServerOrigin: String +} + +input delete_mail_by_domain_mailboxes_by_name_request_Input { + """Also delete emails in mailbox.""" + deleteMails: Boolean +} + +type domains_200_response { + domains: [JSON] +} + +type domains_by_domain_200_response { + config: query_domains_by_domain_config + domain: String + fallbackCertificate: query_domains_by_domain_fallbackCertificate + locked: Boolean + provider: String + tlsConfig: query_domains_by_domain_tlsConfig + zoneName: String +} + +type domains_by_domain_dns_check_200_response { + needsOverwrite: Boolean +} + +type groups_200_response { + groups: [Group] +} + +union issueEditCommentDeprecated_response = Comment | Void_container + +union issueEditComment_response = Comment | Void_container + +union issueGetComment_response = Comment | Void_container + +type mail_by_domain_mailbox_count_200_response { + count: Float +} + +type mail_by_domain_mailboxes_200_response { + mailboxes: [Mailbox] +} + +type mail_by_domain_status_200_response { + dns: query_mail_by_domain_status_dns + rbl: query_mail_by_domain_status_rbl + relay: query_mail_by_domain_status_relay +} + +enum mutationInput_adminCreateHook_input_type { + dingtalk + discord + feishu + gitea + gogs + msteams + packagist + slack + telegram + wechatwork +} + +"""possible values are `public` (default), `limited` or `private`""" +enum mutationInput_adminCreateOrg_input_visibility { + limited + private + public +} + +"""TrustModel of the repository""" +enum mutationInput_adminCreateRepo_input_trust_model { + collaborator + collaboratorcommitter + committer + default +} + +enum mutationInput_issueCreateMilestone_input_state { + closed + open +} + +enum mutationInput_orgCreateTeam_input_permission { + admin + read + write +} + +input mutationInput_orgCreateTeam_input_units_map_Input { + repo_code: String + repo_ext_issues: String + repo_ext_wiki: String + repo_issues: String + repo_projects: String + repo_pulls: String + repo_releases: String + repo_wiki: String +} + +enum mutationInput_orgEditTeam_input_permission { + admin + read + write +} + +input mutationInput_orgEditTeam_input_units_map_Input { + repo_code: String + repo_ext_issues: String + repo_ext_wiki: String + repo_issues: String + repo_projects: String + repo_pulls: String + repo_releases: String + repo_wiki: String +} + +"""possible values are `public`, `limited` or `private`""" +enum mutationInput_orgEdit_input_visibility { + limited + private + public +} + +"""only for gcs provider""" +type mutationInput_post_cloudron_restore_input_backupConfig_credentials { + client_email: String + private_key: String +} + +"""only for gcs provider""" +input mutationInput_post_cloudron_restore_input_backupConfig_credentials_Input { + client_email: String + private_key: String +} + +enum mutationInput_post_cloudron_restore_input_backupConfig_provider { + digitalocean_spaces + exoscale_sos + filesystem + gcs + minio + noop + s3 + s3_v4_compat + scaleway_objectstorage + wasabi +} + +enum mutationInput_post_cloudron_restore_input_sysinfoConfig_provider { + fixed + generic + network_interface +} + +input mutationInput_post_cloudron_setup_input_domainConfig_Input { + config: mutationInput_post_cloudron_setup_input_domainConfig_config_Input! + domain: String! + provider: DnsProvider! + sysinfoConfig: SysConfig_Input + tlsConfig: TlsConfig_Input + zoneName: String +} + +""" +DNS provider specific configuration, for example API tokens and secrets +""" +input mutationInput_post_cloudron_setup_input_domainConfig_config_Input { + token: String +} + +""" +Currently the sysinfo provider is only used to determine the public IP of the server. Which in turn is used in the DNS logic to setup records. +""" +enum mutationInput_post_cloudron_setup_input_domainConfig_sysinfoConfig_provider { + fixed + generic + network_interface +} + +enum mutationInput_post_cloudron_setup_input_domainConfig_tlsConfig_provider { + fallback + letsencrypt_prod + letsencrypt_staging +} + +input mutationInput_post_domains_input_allOf_1_fallbackCertificate_Input { + cert: String + key: String +} + +enum mutationInput_post_settings_external_ldap_config_input_provider { + ad + jumpcloud + noop + okta + other +} + +enum mutationInput_repoMergePullRequest_input_Do { + manually_merged + merge + rebase + rebase_merge + squash +} + +enum mutationInput_repoMigrate_input_service { + git + gitea + github + gitlab +} + +"""how to update pull request""" +enum mutationInput_repoUpdatePullRequest_style { + merge + rebase +} + +""" +A value of `ldap` indicates, this user if from an LDAP/ActiveDirectory user, otherwise a local user +""" +enum mutation_post_users_source { + _ + ldap +} + +type notifications_200_response { + notifications: [Notification] +} + +type post_apps_by_appid_backup_202_response { + """taskId to track backup process via the task API""" + taskId: String +} + +input post_apps_by_appid_backups_by_backupId_request_Input { + """ + Time to keep this backup in seconds (1 week is 604800 seconds). This number + `creationTime` determines if a backup is kept or removed + """ + preserveSecs: Int +} + +type post_apps_by_appid_clone_201_response { + """appId of the newly created clone instance""" + id: String + + """taskId to track clone process via the task API""" + taskId: String +} + +input post_apps_by_appid_clone_request_Input { + """BackupID of the backup the clone should be based off""" + backupId: String! + + """domain""" + domain: String! + overwriteDns: Boolean + portBindings: PortBindings_Input = {} + + """skipping DNS setup allows dry-runs for backup/restore testing""" + skipDnsSetup: Boolean + + """subdomain""" + subdomain: String! +} + +input post_apps_by_appid_configure_access_restriction_request_Input { + accessRestriction: AccessRestriction_Input! +} + +type post_apps_by_appid_configure_automatic_backup_202_response { + """taskId to track start process via the task API""" + taskId: String +} + +input post_apps_by_appid_configure_automatic_backup_request_Input { + """true/false to enable or disable the automatic backup""" + enable: JSON! +} + +type post_apps_by_appid_configure_location_202_response { + """taskId to track stop process via the task API""" + taskId: String +} + +input post_apps_by_appid_configure_location_request_Input { + """list of alias domains - uncapitalized chars only""" + aliasDomains: [JSON] = [] + + """ + list of alternate domains redirecting to the main fqdn - uncapitalized chars only + """ + alternateDomains: [JSON] = [] + + """the main domain""" + domain: String! + + """to overwrite the dns""" + overwriteDns: Boolean! + portBindings: PortBindings_Input = {} + + """the main subdomain of the app""" + subdomain: String! +} + +type post_apps_by_appid_configure_memory_limit_202_response { + """taskId to track start process via the task API""" + taskId: String +} + +input post_apps_by_appid_configure_memory_limit_request_Input { + """the memory limit in bytes""" + memoryLimit: Float! +} + +type post_apps_by_appid_restart_202_response { + """taskId to track restart process via the task API""" + taskId: String +} + +type post_apps_by_appid_restore_202_response { + """taskId to track restore process via the task API""" + taskId: String +} + +input post_apps_by_appid_restore_request_Input { + """ + BackupID of the backup to restore to. The Backup ID can be obtained by listing backups of this app. + """ + backupId: String +} + +type post_apps_by_appid_start_202_response { + """taskId to track start process via the task API""" + taskId: String +} + +type post_apps_by_appid_stop_202_response { + """taskId to track stop process via the task API""" + taskId: String +} + +type post_apps_by_appid_uninstall_202_response { + """taskId to track start process via the task API""" + taskId: String +} + +type post_apps_install_200_response { + id: String + taskId: String +} + +input post_apps_install_request_Input { + accessRestriction: AccessRestriction_Input! + alternateDomains: [JSON] = [] + appStoreId: String + domain: String! + enableAutomaticUpdate: Boolean = true + enableBackup: Boolean = true + icon: String + label: String + manifest: AppManifest_Input + + """ + Memory limit as a number of `MB * 1024 * 1024`. So 600MB memory limit is 629145600 + """ + memoryLimit: Int + + """ + If set to `true` Cloudron will overwrite any existing DNS records. This should not be required in most cases. + """ + overwriteDns: Boolean + portBindings: PortBindings_Input = {} + + """For apps with `optionalSso` set in the manifest.""" + sso: Boolean = true + + """ + Subdomain the app is installed at. This may be an empty string if the app is installed directly at `domain` + """ + subdomain: String! +} + +input post_appstore_register_cloudron_request_Input { + email: EmailAddress! + password: String! + + """ + If `true` a new cloudron.io account will be created. If an account already exists, this request will return an error. Otherwise, this Cloudron will be assigned to the existing account. + """ + signup: Boolean! + + """ + 2FA token. Required when the cloudron.io account already exists and was setup with 2FA. + """ + totpToken: String +} + +type post_backups_cleanup_202_response { + """ + This id can be used with the /api/v1/tasks routes to determine state and get logs + """ + taskId: Int +} + +type post_backups_create_202_response { + """ + This id can be used with the /api/v1/tasks routes to determine state and get logs + """ + taskId: Int +} + +type post_cloudron_activate_201_response { + """Expiry time of token""" + expires: DateTime + + """ + A token that will authenticate the user for future API requests. Pass this as `?access_token=`. + """ + token: String + + """Unique ID of the created user""" + userId: String +} + +input post_cloudron_activate_request_Input { + """Full name of the user.""" + displayName: String + + """Primary email of the user.""" + email: EmailAddress! + + """Password. Minimum of 8 characters required.""" + password: String! + + """Username. The first user is also called the Owner.""" + username: String! +} + +type post_cloudron_login_200_response { + expiresAt: DateTime + token: String +} + +input post_cloudron_login_request_Input { + password: String! + username: String! +} + +type post_cloudron_renew_certs_202_response { + """taskId to track restart process via the task API""" + taskId: String +} + +input post_cloudron_renew_certs_request_Input { + domain: String +} + +input post_cloudron_restore_request_Input { + backupConfig: BackupConfig_Input! + backupId: String! + sysinfoConfig: SysinfoConfig_Input + version: String! +} + +input post_cloudron_setup_request_Input { + domainConfig: mutationInput_post_cloudron_setup_input_domainConfig_Input! +} + +input post_domains_request_Input { + config: JSON! + domain: String! + fallbackCertificate: mutationInput_post_domains_input_allOf_1_fallbackCertificate_Input + hyphenatedSubdomains: Boolean + provider: DnsProvider! + tlsConfig: TlsConfig_Input + wildcard: Boolean + zoneName: String +} + +input post_mail_by_domain_banner_request_Input { + html: String + text: String! +} + +input post_mail_by_domain_catch_all_request_Input { + addresses: [JSON]! +} + +input post_mail_by_domain_mailboxes_request_Input { + name: String! + ownerId: String! + ownerType: String! +} + +input post_mail_by_domain_relay_request_Input { + acceptSelfSignedCerts: Boolean + host: String + password: String + port: Float + provider: MailRelayProvider! + username: String +} + +input post_mail_by_domain_send_test_mail_request_Input { + to: EmailAddress! +} + +input post_services_by_service_request_Input { + memory: Int +} + +input post_settings_cloudron_avatar_request_Input { + avatar: File! +} + +input post_users_by_userId_password_request_Input { + password: String! +} + +input post_users_by_userId_request_Input { + active: Boolean + admin: Boolean + + """If not specified, the new user will have to set it during onboarding""" + displayName: String + email: EmailAddress + fallbackEmail: EmailAddress + + """If not specified, the new user will have to set it during onboarding""" + username: String +} + +input post_users_by_userId_send_invite_email_request_Input { + email: JSON! +} + +input post_users_request_Input { + admin: Boolean + + """If not specified, the new user will have to set it during onboarding""" + displayName: String + email: EmailAddress! + + """If not specified, the new user will have to set it during onboarding""" + password: String + + """If not specified, the new user will have to set it during onboarding""" + username: String +} + +input put_groups_by_groupId_members_request_Input { + userIds: [String]! +} + +input put_users_by_userId_groups_request_Input { + groupIds: [JSON]! +} + +"""Log type""" +enum queryInput_apps_by_appid_logs_format { + json + plain +} + +"""Log type""" +enum queryInput_apps_by_appid_logstream_format { + json + plain +} + +"""whether issue is open or closed""" +enum queryInput_issueListIssues_state { + all + closed + open +} + +"""filter by type (issues / pulls) if set""" +enum queryInput_issueListIssues_type { + issues + pulls +} + +"""package type filter""" +enum queryInput_listPackages_type { + cargo + chef + composer + conan + conda + container + generic + helm + maven + npm + nuget + pub + pypi + rubygems + vagrant +} + +enum queryInput_notifyGetList_subject_type_items { + commit + issue + pull + repository +} + +enum queryInput_notifyGetRepoList_subject_type_items { + commit + issue + pull + repository +} + +"""whether the output is diff or patch""" +enum queryInput_repoDownloadCommitDiffOrPatch_diffType { + diff + patch +} + +"""whether the output is diff or patch""" +enum queryInput_repoDownloadPullDiffOrPatch_diffType { + diff + patch +} + +"""whitespace behavior""" +enum queryInput_repoGetPullRequestFiles_whitespace { + ignore_all + ignore_change + ignore_eol + show_all +} + +"""Type of sort""" +enum queryInput_repoListPullRequests_sort { + leastcomment + leastupdate + mostcomment + oldest + priority + recentupdate +} + +"""State of pull request: open or closed (optional)""" +enum queryInput_repoListPullRequests_state { + all + closed + open +} + +"""type of sort""" +enum queryInput_repoListStatusesByRef_sort { + highestindex + leastindex + leastupdate + oldest + recentupdate +} + +"""type of state""" +enum queryInput_repoListStatusesByRef_state { + error + failure + pending + success + warning +} + +"""type of sort""" +enum queryInput_repoListStatuses_sort { + highestindex + leastindex + leastupdate + oldest + recentupdate +} + +"""type of state""" +enum queryInput_repoListStatuses_state { + error + failure + pending + success + warning +} + +enum queryInput_tasks_type { + app + backup + cleanBackups + prepareDashboardDomain + renewcerts + syncExternalLdap + update +} + +type query_apps_by_appid_backups_backups_items { + creationTime: DateTime + + """Always an empty array for apps""" + dependsOn: [JSON] + + """Only set if encryption was used.""" + encryptionVersion: String + format: BackupFormat + id: String + + """contains the appId""" + identifier: String + label: String + manifest: JSON + + """ + Time to keep this backup in seconds (1 week is 604800 seconds). This number + `creationTime` determines if a backup is kept or removed + """ + preserveSecs: Int + remotePath: String + state: query_apps_by_appid_backups_backups_items_state + + """Is always `app` since this API returns the list of app backups.""" + type: String +} + +enum query_apps_by_appid_backups_backups_items_state { + creating + error + normal +} + +type query_backups_backups_items { + creationTime: DateTime + + """Contains a list of backup IDs referencing the app backups""" + dependsOn: [String] + format: BackupFormat + id: String + manifest: JSON + + """ + Time to keep this backup in seconds (1 week is 604800 seconds). This number + `creationTime` determines if a backup is kept or removed + """ + preserveSecs: Int + state: query_backups_backups_items_state + + """ + Is always `box` since this API returns the list of platform backups. Individual app backups can be retrieved with the /api/v1/apps/ routes. + """ + type: String + + """Cloudron version that backups was made for""" + version: String +} + +enum query_backups_backups_items_state { + creating + error + normal +} + +type query_cloudron_status_restore { + """Indicates if a restore is currently in progress.""" + active: Boolean + errorMessage: String + + """Restore process status messages for ongoing progress display""" + message: String +} + +type query_cloudron_status_setup { + """ + Indicates if a DNS setup is currently in progress. This happens after /api/v1/cloudron/setup was issued. + """ + active: Boolean + errorMessage: String + + """Setup process status messages for ongoing progress display""" + message: String +} + +type query_domains_by_domain_config { + hyphenatedSubdomains: Boolean +} + +type query_domains_by_domain_fallbackCertificate { + cert: String + key: String +} + +type query_domains_by_domain_tlsConfig { + provider: String + wildcard: Boolean +} + +"""Text and HTML mail signature""" +type query_mail_by_domain_banner { + html: String + text: String +} + +type query_mail_by_domain_relay { + provider: MailRelayProvider +} + +type query_mail_by_domain_status_dns { + dkim: query_mail_by_domain_status_dns_dkim + dmarc: query_mail_by_domain_status_dns_dmarc + mx: query_mail_by_domain_status_dns_mx + ptr: query_mail_by_domain_status_dns_ptr + spf: query_mail_by_domain_status_dns_spf +} + +type query_mail_by_domain_status_dns_dkim { + domain: String + expected: String + name: String + status: Boolean + type: String + value: String +} + +type query_mail_by_domain_status_dns_dmarc { + domain: String + expected: String + name: String + status: Boolean + type: String + value: String +} + +type query_mail_by_domain_status_dns_mx { + domain: String + expected: String + name: String + status: Boolean + type: String + value: String +} + +type query_mail_by_domain_status_dns_ptr { + domain: String + expected: String + name: String + status: Boolean + type: String + value: String +} + +type query_mail_by_domain_status_dns_spf { + domain: String + expected: String + name: String + status: Boolean + type: String + value: String +} + +type query_mail_by_domain_status_rbl { + ip: String + servers: [JSON] + status: Boolean +} + +type query_mail_by_domain_status_relay { + status: Boolean + value: String +} + +enum query_notifyGetList_items_repository_repo_transfer_teams_items_permission { + admin + none + owner + read + write +} + +type query_notifyGetList_items_repository_repo_transfer_teams_items_units_map { + additionalProperties: JSON + repo_code: String + repo_ext_issues: String + repo_ext_wiki: String + repo_issues: String + repo_projects: String + repo_pulls: String + repo_releases: String + repo_wiki: String +} + +""" +If `memory` and `memorySwap` is not set, then they cannot be configured +""" +type query_services_by_service_config { + memory: Int + memorySwap: Int +} + +enum query_services_by_service_name { + docker + graphite + mail + mongodb + mysql + nginx + postgresql + sftp + unbound +} + +enum query_services_by_service_status { + active + starting + stopped +} + +enum query_services_services_items { + docker + graphite + mail + mongodb + mysql + nginx + postgresql + sftp + unbound +} + +type query_tasks_tasks_items_error { + code: query_tasks_tasks_items_error_code + message: String +} + +enum query_tasks_tasks_items_error_code { + crashed + stopped + timeout +} + +union repoGetAllCommits_response = APIError | Commit_contains_information_generated_from_a_Git_commit_ + +type services_200_response { + services: [query_services_services_items] +} + +type settings_dynamic_dns_200_response { + enabled: Boolean +} + +type settings_unstable_apps_200_response { + enabled: Boolean +} + +type tasks_200_response { + tasks: [Task] +} + +type teamSearch_200_response { + data: [Team] + ok: Boolean +} + +type userSearch_200_response { + data: [User] + ok: Boolean +} + +type users_200_response { + users: [JSON] +} + +type users_by_userId_invite_link_200_response { + inviteLink: JSON +} diff --git a/src/client.ts b/src/client.ts new file mode 100644 index 0000000..445f940 --- /dev/null +++ b/src/client.ts @@ -0,0 +1,15 @@ +import { HoudiniClient } from '$houdini'; + +export default new HoudiniClient({ + url: 'https://graphql.andert.me/api/graphql' + + // uncomment this to configure the network call (for things like authentication) + // for more information, please visit here: https://www.houdinigraphql.com/guides/authentication + // fetchParams({ session }) { + // return { + // headers: { + // Authentication: `Bearer ${session.token}`, + // } + // } + // } +}) diff --git a/src/routes/test/+page.gql b/src/routes/test/+page.gql new file mode 100644 index 0000000..bddea90 --- /dev/null +++ b/src/routes/test/+page.gql @@ -0,0 +1,6 @@ +query queryTest { + repoGet(owner: "samuelandert.eth", repo: "learn") { + id + name + } +} diff --git a/src/routes/test/+page.svelte b/src/routes/test/+page.svelte index aa2dcbf..bf765bd 100644 --- a/src/routes/test/+page.svelte +++ b/src/routes/test/+page.svelte @@ -1,5 +1,9 @@ - + + diff --git a/svelte.config.js b/svelte.config.js index dce3364..c201ce4 100644 --- a/svelte.config.js +++ b/svelte.config.js @@ -1,14 +1,22 @@ import adapter from '@sveltejs/adapter-auto'; import { vitePreprocess } from '@sveltejs/kit/vite'; + /** @type {import('@sveltejs/kit').Config} */ const config = { - kit: { - adapter: adapter() - }, - ssr: { - // Other SSR options... - dynamicImportShim: false - }, - preprocess: vitePreprocess(), + // Consult https://kit.svelte.dev/docs/integrations#preprocessors + // for more information about preprocessors + preprocess: vitePreprocess(), + + kit: { + adapter: adapter(), + alias: { + $houdini: './$houdini', + } + }, + ssr: { + // Other SSR options... + dynamicImportShim: false + }, }; -export default config; \ No newline at end of file + +export default config; diff --git a/tsconfig.json b/tsconfig.json index 3edcc5a..83740ae 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,24 +1,29 @@ { - "extends": "./.svelte-kit/tsconfig.json", - "compilerOptions": { - "allowJs": true, - "checkJs": true, - "esModuleInterop": true, - "forceConsistentCasingInFileNames": true, - "resolveJsonModule": true, - "skipLibCheck": true, - "sourceMap": true, - "strict": true, - "types": ["jest", "node"] - }, - "include": [ - "src/**/*.ts", - "src/**/*.d.ts", - "src/**/*.svelte", - "tests/**/*.ts" -, "tests/provider.test.js" ] - // Path aliases are handled by https://kit.svelte.dev/docs/configuration#alias - // - // If you want to overwrite includes/excludes, make sure to copy over the relevant includes/excludes - // from the referenced tsconfig.json - TypeScript does not merge them in -} + "extends": "./.svelte-kit/tsconfig.json", + "compilerOptions": { + "allowJs": true, + "checkJs": true, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "resolveJsonModule": true, + "skipLibCheck": true, + "sourceMap": true, + "strict": true, + "types": [ + "jest", + "node" + ], + "rootDirs": [ + ".", + "./.svelte-kit/types", + "./$houdini/types" + ] + }, + "include": [ + "src/**/*.ts", + "src/**/*.d.ts", + "src/**/*.svelte", + "tests/**/*.ts", + "tests/provider.test.js" + ] +} \ No newline at end of file diff --git a/vite.config.ts b/vite.config.ts index 387440a..1540f05 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,3 +1,7 @@ +import houdini from 'houdini/vite' +import { sveltekit } from '@sveltejs/kit/vite' + +import { defineConfig } from 'vite' import { sveltekit } from '@sveltejs/kit/vite'; import { defineConfig } from 'vite'; import * as fs from 'fs'; @@ -52,6 +56,7 @@ function getRecursiveDataFiles(dir) { export default defineConfig({ plugins: [ + houdini(), sveltekit(), { name: 'components-resolver', @@ -129,4 +134,4 @@ export default defineConfig({ test: { include: ['src/**/*.{test,spec}.{js,ts}'] } -}); \ No newline at end of file +});